Webboard

Pełna wersja: Jak dodać dodatkowe pole gadu gadu/skype w informacje kontaktowe
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Dla wersji MyBB: 1.4.x
Opis: Jak dodać pole gadu gadu w "Dodatkowe informacje kontaktowe" oraz status gg. (Nie wiem czy to się komuś przyda, ale wstawię :)

1. Na początek dodajemy nowe pole w bazie danych w tabeli mybb_users. Najlepiej za MSN, żeby mieć wszystko pod koło siebie :)
[Obrazek: gszov3czsfrxxrhhcmc_thumb.jpg]
2. Następnie otwieramy plik member.php (w głównym katalogu). Szukamy
Kod:
if(!empty($memprofile['icq']))
    {
        $memprofile['icq'] = intval($memprofile['icq']);
    }
    else
    {
        $memprofile['icq'] = '';
    }
i wklejamy za tym
Kod:
if(!empty($memprofile['gg']))
    {
        $memprofile['gg'] = intval($memprofile['gg']);
        $gg = "<img src=\"http://www.gadu-gadu.pl/users/status.asp?id={$memprofile['gg']}\" alt=\"{$memprofile['gg']}\">";
    }
    else
    {
        $memprofile['gg'] = '';
    }

3. Otwieramy plik usercp.php (główny katalog) i szukamy
Kod:
"msn" => $mybb->input['msn'],

za tym wklejamy

"gg" => intval($mybb->input['gg']),

i szukamy jeszcze w tym samym pliku

Kod:
if($user['icq'] != "0")
    {
        $user['icq'] = intval($user['icq']);
    }
    if($user['icq'] == 0)
    {
        $user['icq'] = "";
    }

i wklejamy za tym
if($user['gg'] != "0")
    {
        $user['gg'] = intval($user['gg']);
    }
    if($user['gg'] == 0)
    {
        $user['gg'] = "";
    }

4. Teraz otwieramy plik inc\datahandlers\user.php i tam musimy trochę dodać. Szukamy
Kod:
function verify_msn()
    {
        $msn = &$this->data['msn'];

        if($msn != '' && validate_email_format($msn) == false)
        {
            $this->set_error("invalid_msn_address");
            return false;
        }
        return true;
    }

i dodajemy

    function verify_gg()
    {
        $gg = &$this->data['gg'];

        if($gg != '' && !is_numeric($gg))
        {
            $this->set_error("invalid_gg_number");
            return false;
        }
        $gg = intval($gg);
        return true;
    }

-------------------------------------------------------------------------
szukamy

if($this->method == "insert" || array_key_exists('msn', $user))
        {
            $this->verify_msn();
        }

wklejamy pod tym

[i]if($this->method == "insert" || array_key_exists('gg', $user))
        {
            $this->verify_gg();
        }[/i]

-------------------------------------------------------------------------
znowu szukamy

"msn" => $db->escape_string(htmlspecialchars($user['msn'])),

i wklejamy pod tym

"gg" => intval($user['gg']),

-------------------------------------------------------------------------
znowu szukamy

if(isset($user['msn']))
        {
            $this->user_update_data['msn'] = $db->escape_string(htmlspecialchars($user['msn']));
        }

wklejamy

[i]if(isset($user['gg']))
        {
            $this->user_update_data['gg'] = intval($user['gg']);
        }

5. Teraz musimy zmienić nasz szablon :) Wchodzimy do panelu admina->Style i szablony (lub z szybkiego dostępu wybieramy szablony)->Szablony->Klikamy na szablon, który aktualnie mamy aktywny->Szukamy "Podgląd profilu - Szablony" otwieramy do edycji->Szukamy member_profile->Edytuj. Znajdź:

Kod:
<tr>
<td class="trow2"><strong>{$lang->msn}</strong></td>
<td class="trow2"><a href="javascript:;" onclick="MyBB.popupWindow('misc.php?action=imcenter&amp;imtype=msn&amp;uid={$uid}', 'imcenter', 450, 300);">{$memprofile['msn']}</a></td>
</tr>

dodaj za pod tym (w zależności pod czym chcesz mieć wyświetlany numer gadu gadu. Ja wybrałem pod MSN na końcu listy w profilu użytkownika)

<tr>
<td class="trow2"><strong>{$lang->gg}</strong></td>
<td class="trow2"><img src="http://www.gadu-gadu.pl/users/status.asp?id={$memprofile['gg']}" title="{$memprofile['gg']}">{$memprofile['gg']}</td>
</tr>

W tym drugim kodzie pojawia nam się "{$lang->gg}". Możemy zamiast tego wpisać Numer Gadu-Gadu lub dodać w pliku inc\languages\polish\member.lang.php (polecam dodać)
Kod:
$l['gg'] = "Numer Gadu-Gadu:";

6. Zapisujemy i wracamy do naszego szablonu. Z tej listy szukamy teraz "Panel użytkownika - Szablony" (u mnie jest o 2 pozycje wyżej niż "Podgląd profilu - Szablony"). Klikamy, żeby edytować. Poszukaj usercp_profile i z opcji wybierz edytuj.
Ja dodałem sobie pole do wpisywania numeru gg pod MSN. Ty możesz zrobić inaczej. Wstawiamy kod
Kod:
<tr>
<td><span class="smalltext">{$lang->gg}</span></td>
</tr>
<tr>
<td><input type="text" class="textbox" name="gg" size="25" value="{$user['gg']}" /></td>
</tr>

W moim przypadku pod

<tr>
<td><span class="smalltext">{$lang->msn}</span></td>
</tr>
<tr>
<td><input type="text" class="textbox" name="msn" size="25" value="{$user['msn']}" /></td>
</tr>

Znowu pojawia się {$lang->gg} gdzie możemy wpisać Numer Gadu-Gadu zamiast tego (ja polecam edytować plik inc\languages\polish\usercp.lang.php jak pisałem już wyżej)

To już wszystko.

Efekt:
[Obrazek: udmyxyc7846tgc4t3fp_thumb.jpg][Obrazek: 4iqsa4fikoajhvuwaob8_thumb.jpg]
Dla wersji MyBB: 1.4.x
Opis: Tym razem jak dodać pole Skype w "Dodatkowe informacje kontaktowe" oraz status użytkownika.

Metoda dodawania będzie taka sama, ale z małymi zmianami :)

1. Znowu dodajemy pole do bazy danych w tabeli mybb_users (nazwa pola skype z właściwościami takimi samymi jak w przypadku GG [obrazek w poprzednim poście]).

2. Otwieramy plik usercp.php (główny katalog) i szukamy
Kod:
"msn" => $mybb->input['msn'],

pod tym wklejamy

"skype" => $mybb->input['skype'],

-------------------------------------------------------------------------
i szukamy w tym samym pliku

Kod:
$user['msn'] = htmlspecialchars_uni($user['msn']);

i wklejamy pod tym

$user['skype'] = htmlspecialchars_uni($user['skype']);

3. Teraz otwieramy plik inc\datahandlers\user.php i tam musimy znowu trochę dodać. Szukamy
Kod:
"msn" => $db->escape_string(htmlspecialchars($user['msn'])),

i dodajemy

"skype" => $db->escape_string(htmlspecialchars($user['skype'])),

-------------------------------------------------------------------------
szukamy

if(isset($user['msn']))
        {
            $this->user_update_data['msn'] = $db->escape_string(htmlspecialchars($user['msn']));
        }

wklejamy pod tym

if(isset($user['skype']))
        {
            $this->user_update_data['skype'] = $db->escape_string(htmlspecialchars($user['skype']));
        }

4. Zmieniamy znowu nasz szablon :) Wchodzimy tam samo jak w przypadku gg do panelu admina->Style i szablony (lub z szybkiego dostępu wybieramy szablony)->Szablony->Klikamy na szablon, który aktualnie mamy aktywny->Szukamy "Podgląd profilu - Szablony" otwieramy do edycji->Szukamy member_profile->Edytuj. Między <head></head> wstawiamy

Kod:
<script type="text/javascript" src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js"></script>

Teraz musisz znaleźć:

Kod:
<tr>
<td class="trow2"><strong>{$lang->msn}</strong></td>
<td class="trow2"><a href="javascript:;" onclick="MyBB.popupWindow('misc.php?action=imcenter&amp;imtype=msn&amp;uid={$uid}', 'imcenter', 450, 300);">{$memprofile['msn']}</a></td>
</tr>

dodaj pod tym (w zależności pod czym chcesz mieć wyświetlany numer gadu gadu. Ja wybrałem pod MSN na końcu listy w profilu użytkownika)

<tr>
<td class="trow2"><strong>{$lang->skype}</strong></td>
<td class="trow2"><a href="skype:{$memprofile['skype']}?call"><img src="http://mystatus.skype.com/bigclassic/{$memprofile['skype']}" style="border: none;" width="182" height="44" alt="Mój stan" /></a><br>Użytkownik: {$memprofile['skype']}</td>
</tr>

W tym drugim kodzie pojawia nam się "{$lang->skype}". Możemy zamiast tego wpisać "Nazwa użytkownika Skype:" lub dodać w pliku inc\languages\polish\usercp.lang.php (polecam dodać)
Kod:
$l['skype'] = "Nazwa użytkownika Skype:";

5. Zapisujemy i wracamy do naszego szablonu. Z tej listy szukamy teraz "Panel użytkownika - Szablony" (u mnie jest o 2 pozycje wyżej niż "Podgląd profilu - Szablony"). Klikamy, żeby edytować. Poszukaj usercp_profile i z opcji wybierz edytuj.
Ja dodałem sobie pole do wpisywania nazwy użytkownika Skype pod GG. Ty możesz zrobić inaczej. Wstawiamy kod
Kod:
<tr>
<td><span class="smalltext">{$lang->skype}</span></td>
</tr>
<tr>
<td><input type="text" class="textbox" name="skype" size="25" value="{$user['skype']}" /></td>
</tr>

W moim przypadku pod

<tr>
<td><span class="smalltext">{$lang->gg}</span></td>
</tr>
<tr>
<td><input type="text" class="textbox" name="gg" size="25" value="{$user['gg']}" /></td>
</tr>

Znowu pojawia się {$lang->skype} gdzie możemy wpisać "Nazwa użytkownika Skype:" zamiast tego. Ja polecam edytować plik inc\languages\polish\usercp.lang.php jak pisałem już wyżej.

To już wszystko.

Jeśli ktoś chce wstawić sobie inny obrazek niech wejdzie na stronę http://www.skype.com/intl/pl/share/buttons/ gdzie znajdzie więcej buttonów do wyboru. W miejscu "Wpisz nazwę użytkownika:" wpisujemy {$user['skype']}. Wygenerowany kod kopiujemy (UWAGA!!! Tam w tym wygenerowanym kodzie są podane 2 rzeczy)
1. Kod który wstawiamy w między <head></head>.
2. Kod który wstawiamy w member_profile (tak jak wyżej jest napisane)
Przykład:
Kod:
Zamiast tego:

<a href="skype:{$memprofile['skype']}?call"><img src="http://mystatus.skype.com/bigclassic/{$memprofile['skype']}" style="border: none;" width="182" height="44" alt="Mój stan" /></a>

Wygenerowany kod:

Twój wygenerowany :)

UWAGA!!!
Status Skype będzie wyświetlany tylko wtedy jeśli użytkownik włączy sobie tą opcje. Znajdziemy ją Narzędzia->Opcje->Prywatność->Ustawienia prywatności->Musimy zaznaczyć "Pozwól na wyświetlanie mojego statusu w sieci". Jeśli użytkownik tego nie zaznaczy zawsze będzie miał "Niepodłączony".
[attachment=799]

Efekt:
[attachment=797] [attachment=798]