Logowanie jak w phpbb

Inne  Założony przez  Zmarszczak.

wersja skryptu MyBB: 1.6.6
adres forum: www.grywus.y0.pl/forum
na czym polega problem (screen, opis, komunikaty, nazwa stylu/theme/szablonu):
Chciałbym na moim forum dodać pole logowania pod forami tak, jak jest na wielu stronach opartych na phpbb (jak np. SafeGroup):
[Obrazek: scaled.php?server=40&filename=obraz015.png&res=medium]
Chodzi mi o formularz, a nie rozwijane menu, ale na dole strony.
Czy wie ktoś jak coś takiego dodać?
W ACP -> Style i Szablony -> nazwa stylu -> Strona Główna -> index_boardstats
Dodaj
<tr id="login_stats" style="display: none;">
<td class="tcat"><span class="smalltext"><strong><a href="{$mybb->settings['bburl']}/member.php?action=lostpw" class="lost_password">Przywróć hasło</a>  •  <a href="{$mybb->settings['bburl']}/member.php?action=register" class="register">Zarejestruj się</a></span></td>
</tr>
<tr id="login_stats2" style="display: none;">
<td class="trow1"><span class="smalltext">
<form method="post" action="member.php">
  <input name="action" type="hidden" value="do_login">
  <input name="url" type="hidden" value="{$mybb->settings['bburl']}/index.php">
  <input name="quick_login" type="hidden" value="1">
Nazwa użytkownika: <input name="quick_username" id="quick_login_username" type="text" class="textbox" > Hasło: <input name="quick_password" id="quick_login_password" type="password" class="textbox"> <span class="remember_me"> | <label for="quick_login_remember"> Loguj mnie automatycznie</label> <input name="quick_remember" id="quick_login_remember" type="checkbox" value="yes" class="checkbox" checked="checked"></span> <input name="submit" type="submit" value="Zaloguj się" class="button">
</form><br /></span></td>
</tr>
<script type="text/javascript">
onload = loging_into_stats();
function loging_into_stats() {
var abc = {$mybb->user['usergroup']};
if (abc == 1) {
document.getElementById('login_stats').style.display = '';
document.getElementById('login_stats2').style.display = '';
document.getElementById('log_stat_info').innerHTML = '<strong>Logowanie</strong>';
}
}
</script>
Po:
<div><strong>{$lang->boardstats}</strong></div>
</td>
</tr>
</thead>
<tbody style="{$collapsed['boardstats_e']}" id="boardstats_e">
Zamień
<div><strong>{$lang->boardstats}</strong></div>
na
<div id="log_stat_info"><strong>{$lang->boardstats}</strong></div>
Co prawda nie będzie identycznie, jak w phpBB, ale wydaje mi się, że tak też może być ;)
Nic to nie daje :| Nadal jest tak jak było :(
A dajesz ten kod do odpowiedniego stylu?


Pozdrawiam!
Na pewno daje do odpowiedniego stylu. Czy szablon na pewno ma wyglądać tak?
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<thead>
<tr>
<td class="thead">
<div class="expcolimage"><img src="{$theme['imgdir']}/collapse{$collapsedimg['boardstats']}.gif" id="boardstats_img" class="expander" alt="[-]" title="[-]" /></div>
<div id="log_stat_info"><strong>{$lang->boardstats}</strong></div>
</td>
</tr>
</thead>
<tbody style="{$collapsed['boardstats_e']}" id="boardstats_e">
<tr id="login_stats" style="display: none;">
<td class="tcat"><span class="smalltext"><strong><a href="{$mybb->settings['bburl']}/member.php?action=lostpw" class="lost_password">Przywróć hasło</a>  •  <a href="{$mybb->settings['bburl']}/member.php?action=register" class="register">Zarejestruj się</a></span></td>
</tr>
<tr id="login_stats2" style="display: none;">
<td class="trow1"><span class="smalltext">
<form method="post" action="member.php">
  <input name="action" type="hidden" value="do_login">
  <input name="url" type="hidden" value="{$mybb->settings['bburl']}/index.php">
  <input name="quick_login" type="hidden" value="1">
Nazwa użytkownika: <input name="quick_username" id="quick_login_username" type="text" class="textbox" > Hasło: <input name="quick_password" id="quick_login_password" type="password" class="textbox"> <span class="remember_me"> | <label for="quick_login_remember"> Loguj mnie automatycznie</label> <input name="quick_remember" id="quick_login_remember" type="checkbox" value="yes" class="checkbox" checked="checked"></span> <input name="submit" type="submit" value="Zaloguj się" class="button">
</form><br /></span></td>
</tr>
<script type="text/javascript">
onload = loging_into_stats();
function loging_into_stats() {
var abc = {$mybb->user['usergroup']};
if (abc == 1) {
document.getElementById('login_stats').style.displ​ay = '';
document.getElementById('login_stats2').style.disp​lay = '';
document.getElementById('log_stat_info').innerHTML​ = '<strong>Logowanie</strong>';
}
}
</script>
{$whosonline}
{$birthdays}
{$forumstats}
<tr>
    <td class="tfoot" style="text-align: right">
        <span class="smalltext">
            {$logoutlink}
            <a href="misc.php?action=markread{$post_code_string}">{$lang->markread}</a> |
            <a href="showteam.php">{$lang->forumteam}</a> |
            <a href="stats.php">{$lang->forumstats}</a>
        </span>
    </td>
</tr>
</tbody>
</table>
<br />
1. Wylogowałeś się i sprawdziłeś?
2. Tak powinien wyglądać.
3. U mnie na forum to działa więc upewnij się, jak napisano wyżej, czy dodałeś to do odpowiedniego stylu.
5. Spróbuj linijki:
<script type="text/javascript">
onload = loging_into_stats();
function loging_into_stats() {
var abc = {$mybb->user['usergroup']};
if (abc == 1) {
document.getElementById('login_stats').style.displ​ay = '';
document.getElementById('login_stats2').style.disp​lay = '';
document.getElementById('log_stat_info').innerHTML​ = '<strong>Logowanie</strong>';
}
}
</script>
zmienić na:
<script type="text/javascript">
onload = abcdefghijklmnoprstuwxyz2();
function abcdefghijklmnoprstuwxyz2() {
var abcdefghijklmnoprstuwxyz = {$mybb->user['usergroup']};
if (abcdefghijklmnoprstuwxyz == 1) {
document.getElementById('login_stats').style.displ​ay = '';
document.getElementById('login_stats2').style.disp​lay = '';
document.getElementById('log_stat_info').innerHTML​ = '<strong>Logowanie</strong>';
}
}
</script>
Bo być może nazwa zmiennej koliduje z javascriptem dodającym reklamy.
Dodałem to do wszystkich styli. Nie wiem dlaczego, ale nie działa :|
Dodaj
<script type="text/javascript">
onload = abcdefghijklmnoprstuwxyz2();
function abcdefghijklmnoprstuwxyz2() {
var abcdefghijklmnoprstuwxyz = {$mybb->user['usergroup']};
if (abcdefghijklmnoprstuwxyz == 1) {
document.getElementById('login_stats').style.displ​​ay = '';
document.getElementById('login_stats2').style.disp​​lay = '';
document.getElementById('log_stat_info').innerHTML​​ = '<strong>Logowanie</strong>';
}
}
</script>
Do ACP -> Style i Szablony -> Szablony -> Nazwa stylu -> Niezgrupowane -> headerinclude.
Oraz usuń
<script type="text/javascript">
onload = abcdefghijklmnoprstuwxyz2();
function abcdefghijklmnoprstuwxyz2() {
var abcdefghijklmnoprstuwxyz = {$mybb->user['usergroup']};
if (abcdefghijklmnoprstuwxyz == 1) {
document.getElementById('login_stats').style.displ​​ay = '';
document.getElementById('login_stats2').style.disp​​lay = '';
document.getElementById('log_stat_info').innerHTML​​ = '<strong>Logowanie</strong>';
}
}
</script>
Z ACP -> Style i Szablony -> Szablony -> Nazwa stylu -> Strona główna -> index_boardstats
Jeżeli to nie zadziała to obstawiam, że to wina reklam narzucanych Ci na stronę przez cba.pl.
Niestety, ale i tak nie działa :( Widzę, że, aby znaleźć rozwiązanie warto uderzyć w trochę coś innego, ale o bardzo podobnym efekcie. Znalazłem kod, który po dodaniu w szablonie index dawał świetny efekt, poza kilkoma szczegółami, które trzeba będzie edytować. Kod wygląda tak:
<form action="member.php" method="post" sourceindex="0">
<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<tbody><tr>
<td class="thead" colspan="2"><strong><a href="http://grywus.y0.pl/forum/member.php?action=login">Zaloguj się</a> • <a href="http://grywus.y0.pl/forum/member.php?action=register">Zarejestruj się</a></strong></td>
</tr>
<tr>
<td>
<strong>{$lang->login_username}:</strong>
<input type="text" class="textbox" name="username" size="25" maxlength="{$mybb->settings['maxnamelength']}" style="width: 120px; margin-bottom: 2px;" /><br />
</td>
<td>
<strong>{$lang->login_password}:</strong>
<input type="password" class="textbox" name="password" size="25" style="width: 120px;" /><br />
</td>
</tr>
<tr>
<td class="trow1" colspan="2" align="center"><label title="Jeżeli to pole zostanie zaznaczone, wszystkie wpisane dane zostaną zapamiętane na tym komputerze. W przeciwnym wypadku dane te zostaną wyczyszczone po zamknięciu przeglądarki."><input type="checkbox" class="checkbox" name="remember" checked="checked" value="yes" sourceindex="3"> Zapamiętaj mnie</label></td>
</tr>
<td>
<div align="center"><input type="submit" class="button" name="submit" value="Zaloguj" sourceindex="4"></div>
<input type="hidden" name="action" value="do_login">
<input type="hidden" name="url" value="">
</td>
</tbody></table>
<br>
</form>
Obecnie po zalogowaniu i przed widać takie coś:
[Obrazek: scaled.php?server=4&filename=obraz017.png&res=medium]
Nie jest to może piorunujący efekt, ale myślę, że jest w miarę ok. Da się to przecież trochę zmienić. Teraz pytanie, czy ktoś może mi ten kod zedytować tak, by był ułożony tak jak na załączonym w pierwszym poście obrazku. Chodzi o to, aby było wszystko w jednej linii. Następna sprawa dotycząca tego kody to to, aby pole znikało po zalogowaniu się. Czy wie ktoś jak wprowadzić taki warunek?
Właśnie taki kod Ci dałem, ale najwyraźniej gryzie się z czymś innym na Twojej stronie...
Ostatnia próba:
Z ACP -> Style i Szablony -> Szablony -> Nazwa stylu -> Niezgrupowane -> headerinclude
Usuwasz:
<script type="text/javascript">
onload = abcdefghijklmnoprstuwxyz2();
function abcdefghijklmnoprstuwxyz2() {
var abcdefghijklmnoprstuwxyz = {$mybb->user['usergroup']};
if (abcdefghijklmnoprstuwxyz == 1) {
document.getElementById('login_stats').style.displ​​​ay = '';
document.getElementById('login_stats2').style.disp​​​lay = '';
document.getElementById('log_stat_info').innerHTML​​​ = '<strong>Logowanie</strong>';
}
}
</script>
Za:
{$stylesheets}
Dodajesz:
<script type="text/javascript">
function loging_into_stats() {
var abc = {$mybb->user['usergroup']};
if (abc == 1) {
document.getElementById('login_stats').style.display = 'table';
}
}
</script>
W W ACP -> Style i Szablony -> nazwa stylu -> Strona Główna -> index_boardstats
Usuwasz:
<form action="member.php" method="post" sourceindex="0">
<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<tbody><tr>
<td class="thead" colspan="2"><strong><a href="http://grywus.y0.pl/forum/member.php?action=login">Zaloguj się</a> • <a href="http://grywus.y0.pl/forum/member.php?action=register">Zarejestruj się</a></strong></td>
</tr>
<tr>
<td>
<strong>{$lang->login_username}:</strong>
<input type="text" class="textbox" name="username" size="25" maxlength="{$mybb->settings['maxnamelength']}" style="width: 120px; margin-bottom: 2px;" /><br />
</td>
<td>
<strong>{$lang->login_password}:</strong>
<input type="password" class="textbox" name="password" size="25" style="width: 120px;" /><br />
</td>
</tr>
<tr>
<td class="trow1" colspan="2" align="center"><label title="Jeżeli to pole zostanie zaznaczone, wszystkie wpisane dane zostaną zapamiętane na tym komputerze. W przeciwnym wypadku dane te zostaną wyczyszczone po zamknięciu przeglądarki."><input type="checkbox" class="checkbox" name="remember" checked="checked" value="yes" sourceindex="3"> Zapamiętaj mnie</label></td>
</tr>
<td>
<div align="center"><input type="submit" class="button" name="submit" value="Zaloguj" sourceindex="4"></div>
<input type="hidden" name="action" value="do_login">
<input type="hidden" name="url" value="">
</td>
</tbody></table>
<br>
</form>
Usuwasz:
<tr id="login_stats" style="display: none;">
<td class="tcat"><span class="smalltext"><strong><a href="{$mybb->settings['bburl']}/member.php?action=lostpw" class="lost_password">Przywróć hasło</a>  •  <a href="{$mybb->settings['bburl']}/member.php?action=register" class="register">Zarejestruj się</a></span></td>
</tr>
<tr id="login_stats2" style="display: none;">
<td class="trow1"><span class="smalltext">
<form method="post" action="member.php">
   <input name="action" type="hidden" value="do_login">
   <input name="url" type="hidden" value="{$mybb->settings['bburl']}/index.php">
   <input name="quick_login" type="hidden" value="1">
Nazwa użytkownika: <input name="quick_username" id="quick_login_username" type="text" class="textbox" > Hasło: <input name="quick_password" id="quick_login_password" type="password" class="textbox"> <span class="remember_me"> | <label for="quick_login_remember"> Loguj mnie automatycznie</label> <input name="quick_remember" id="quick_login_remember" type="checkbox" value="yes" class="checkbox" checked="checked"></span> <input name="submit" type="submit" value="Zaloguj się" class="button">
</form><br /></span></td>
</tr>
Na samym początku dodajesz:
<table id="login_stats" border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="display: none;" >
<thead>
<tr>
<td class="thead">
<div id="log_stat_info"><strong><a href="{$mybb->settings['bburl']}/member.php?action=login">Zaloguj się</a> • <a href="{$mybb->settings['bburl']}/member.php?action=register" class="register">Zarejestruj się</a></strong></div>
</td>
</tr>
</thead>
<tbody>
<tr>
</tr>
<tr>
<td class="trow1"><span class="smalltext">
<form method="post" action="member.php">
  <input name="action" type="hidden" value="do_login">
  <input name="url" type="hidden" value="{$mybb->settings['bburl']}/index.php">
  <input name="quick_login" type="hidden" value="1">
Nazwa użytkownika: <input name="quick_username" id="quick_login_username" type="text" class="textbox" > Hasło: <input name="quick_password" id="quick_login_password" type="password" class="textbox"> <span class="remember_me"> | <label for="quick_login_remember"> Loguj mnie automatycznie</label> <input name="quick_remember" id="quick_login_remember" type="checkbox" value="yes" class="checkbox" checked="checked"></span> <input name="submit" type="submit" value="Zaloguj się" class="button">
</form><br /></span></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
loging_into_stats();
</script>
<br />

Co do logowania jeżeli to nie zadziała to nic nie poradzę. Kod od reklam się wywala tym samym blokując kod od sprawdzania czy ktoś jest zalogowany. Pozostają dwie opcje jak nie zadziała:
ALBO
<table id="login_stats" border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="display: none;" >
Na
<table id="login_stats" border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" >
Co prawda nadal będzie widoczne jak ktoś będzie zalogowany, ale bardziej przypomina formularz znany z phpBB.
ALBO
Zmień hosting.

W załączniku jest screen-shot jak to wygląda na moim forum.


Załączone pliki Miniatury
   
Niestety to i tak nie działa. Nad zmianą hostingu myślę już od jakiegoś czasu, bo ten zaczął mnie już wkurzać - reklamy, wolne działanie i niewytrzymywanie obciążenia. Nie wiem jednak jaki jest najlepszym darmowym wyjściem.
Może do demonów prędkości nie należy, ale też jakieś bardzo złe nie jest:
http://www.bplaced.net/?location=home
(Na jednym koncie miałem zainstalowane na raz kilka kopii różnych skryptów i nie przyczepili się nawet o generowane obciążenie. Zauważyłem, że skrypty forum za pierwszym otworzeniem po jakimś czasie dłużej się wczytują (możliwe, że szybciej niż na cba.pl), ale każde kolejne jest już ok ;) )
Do tego możesz sobie dorzucić darmową domenę:
http://my.dot.tk/cgi-bin/login01.taloha
albo
http://www.co.cc/



Użytkownicy przeglądający ten wątek:

1 gości