Last-Visit-Mods & die Gastanzeige
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Last-Visit-Mods & die Gastanzeige
Ich habe in einem phpBB 2.0.1 den Last-Visit-Mod eingebaut und möchte, dass in der Anzeige im Footer der index_body.tpl nicht mehr die Anzahl der Gäste angezeigt wird.
Ich bin schon so weit gekommen, dass dort nicht mehr die einzelne Anzahl der Gäste steht, in der Gesamtzahl sind sie jedoch immernoch hinzuaddiert worden.
Sprich: Niemand soll wissen, wie viele Gäste heute das Board besucht haben. Was nun?
Ich bin schon so weit gekommen, dass dort nicht mehr die einzelne Anzahl der Gäste steht, in der Gesamtzahl sind sie jedoch immernoch hinzuaddiert worden.
Sprich: Niemand soll wissen, wie viele Gäste heute das Board besucht haben. Was nun?
Setze den Eintrag in der index_body.tpl zwischen
und
Du mußt beiden Einträgen eine eigene Zeile spendieren.
Code: Alles auswählen
<!-- BEGIN switch_user_logged_in -->
Code: Alles auswählen
<!-- END switch_user_logged_in -->
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Nein, das meinte ich nicht. Ich weiss schon, wie man gewisse Bereiche für Gäste anzeigt und wie man sie für Gäste ausblendet.
Es geht darum, dass der Last-Visit-Mod Gäste nicht zählen und eben auch nicht ausgeben soll. Es soll dort also nur stehen:
Heute waren 8 Mitglieder online, davon 4 versteckte.
Und nicht: Heute waren 11 Benutzer online, davon 3 Gäste, 4 registrierte und davon 4 versteckte.
Die Gäste sollen einfach nicht gezählt werden.
Es geht darum, dass der Last-Visit-Mod Gäste nicht zählen und eben auch nicht ausgeben soll. Es soll dort also nur stehen:
Heute waren 8 Mitglieder online, davon 4 versteckte.
Und nicht: Heute waren 11 Benutzer online, davon 3 Gäste, 4 registrierte und davon 4 versteckte.
Die Gäste sollen einfach nicht gezählt werden.
Die Url zu dem Mod kenne ich nicht mehr und ich kann nichtmal den Autor oder die Version nennen. Ich weiss nur, dass ich den Mod irgendwo hier im phpBB.de-Forum gefunden habe und dass es schon recht lange her ist (August 2002).
Trotzdem liste ich hier mal einige Codeelemente, die ich auffinden konnte:
in /templates/template/index_body.tpl
Trotzdem liste ich hier mal einige Codeelemente, die ich auffinden konnte:
in /templates/template/index_body.tpl
in index.php<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
<tr>
<td class="catHead" colspan="2" height="28"><span class="cattitle"><a href="{U_VIEWONLINE}" class="cattitle">{L_WHO_IS_ONLINE}</a></span></td>
</tr>
<tr>
<td class="row1" align="center" valign="middle" rowspan="3"><img src="templates/template/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
<td class="row1" align="left" width="100%"><span class="gensmall">{TOTAL_POSTS}<br />{TOTAL_USERS}<br />{NEWEST_USER}</span>
</td>
</tr>
<tr>
<td class="row1" align="left"><span class="gensmall">{L_USERS_TODAY} {L_USERS_LASTHOUR}<br />{USERS_TODAY_LIST}</br></span></td>
</tr>
<tr>
<td class="row1" align="left"><span class="online">{TOTAL_USERS_ONLINE} [ {L_WHOSONLINE_ADMIN} ] [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
</tr>
</table>
<table width="100%" cellpadding="1" cellspacing="1" border="0">
<td align="left" valign="top"><span class="online">{L_ONLINE_EXPLAIN}</span></td>
</table>
in language/lang_german/lang_main.php//show dayly users mod
$current_time=time();
$time1Hour=$current_time-3600;
$minutes = date('is', $current_time);
$hour_now = $current_time - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]);
$dato=create_date('H', $current_time,$board_config['board_timezone']);
$timetoday = $hour_now - (3600*$dato);
$sql = 'SELECT session_ip, MAX(session_time) as session_time FROM '.SESSIONS_TABLE.' WHERE session_user_id="'.ANONYMOUS.'" GROUP BY session_ip';
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve guest user today data", "", __LINE__, __FILE__, $sql);
while( $guest_list = $db->sql_fetchrow($result))
{
if ($guest_list['session_time'] >$time1Hour) $users_lasthour++;
}
$guests_today = $db->sql_numrows($result);
$sql = 'SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon FROM ' . USERS_TABLE . ' WHERE user_lastlogon >= '.$timetoday.' AND user_lastlogon< '.($timetoday+86399).' ORDER BY username';
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve user today data", "", __LINE__, __FILE__, $sql);
while( $todayrow = $db->sql_fetchrow($result))
{
$style_color = "";
if( $todayrow['user_level'] == ADMIN )
{
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if( $todayrow['user_level'] == MOD )
{
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}
if ($todayrow['user_lastlogon']>=$time1Hour)
{
$users_lasthour++;
}
$users_today_list .= ($users_today_list&& ($todayrow['user_allow_viewonline'] || $userdata[user_level]==ADMIN))? ', ':'';
$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'><b>' . $todayrow['username'] . '</b></a>':(($userdata[user_level]==ADMIN)?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'><i>' . $todayrow['username'] . '</i></a>':'');
if (!$todayrow['user_allow_viewonline']) $logged_hidden_today++;
else $logged_visible_today++;
}
$total_users_today = $db->sql_numrows($result)+$guests_today;
if ( empty($total_users_today) )
{
$users_today_list = $lang['None'];
}
$users_today_list = $lang['Registered_users'].' ' . $users_today_list;
$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_today_total'] : $lang['Users_today_total'] ) : $lang['Users_today_zero_total'];
$l_today_r_user_s = ($logged_visible_today) ? ( ( $logged_visible_today == 1 ) ? $lang['Reg_user_total'] : $lang['Reg_users_total'] ) : $lang['Reg_users_zero_total'];
$l_today_h_user_s = ($logged_hidden_today) ? (($logged_hidden_today == 1) ? $lang['Hidden_user_total'] : $lang['Hidden_users_total'] ) : $lang['Hidden_users_zero_total'];
$l_today_g_user_s = ($guests_today) ? (($guests_today == 1) ? $lang['Guest_user_total'] : $lang['Guest_users_total']) : $lang['Guest_users_zero_total'];
$l_today_users = sprintf($l_today_user_s, $total_users_today);
$l_today_users .= sprintf($l_today_r_user_s, $logged_visible_today);
$l_today_users .= sprintf($l_today_h_user_s, $logged_hidden_today);
$l_today_users .= sprintf($l_today_g_user_s, $guests_today);
Ich hoffe, dass Ihr damit etwas anfangen könnt und bin sehr dankbar für jede Hilfe.//add to last visit mod
$lang['Last_logon'] = 'Letzter Besuch';
$lang['Hidde_last_logon'] = 'Versteckt';
$lang['Never_last_logon'] = 'Nie';
$lang['Users_today_zero_total'] = "Insgesamt haben heute <b>0</b> Benutzer das Forum besucht: ";
$lang['User_today_total'] = "Insgesamt hat heute <b>%d</b> Benutzer das Forum besucht: ";
$lang['Users_today_total'] = "Insgesamt haben heute <b>%d</b> Benutzer das Forum besucht: ";
$lang['Users_lasthour_explain'] = "Davon %d innerhalb der letzten Stunde.";
$lang['Users_lasthour_none_explain'] = "davon niemand innerhalb der letzten Stunde."; //Wird angezeigt, wenn innerhalb der letzten Stunde niemand da war.
Mal ein Schnellschuß:
Ersetze mal in der index.php
durch
Ersetze mal in der index.php
Code: Alles auswählen
$guests_today = $db->sql_numrows($result);
Code: Alles auswählen
$guests_today = '0';
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Klasse, vielen Dank Chaze!
So einfach Deine Lösung auch ist, das leeren der Variabel $guests_today funktioniert und liefert auch das richtige Ergebnis. In der index.php habe ich noch folgendes Zeile
P.S. Nicht wundern, die Boardsoftware hat das zweite Leerzeichen entfernt, bei mir befindet es sich aber trotzdem.

entfernt, nun gibt es nur noch ein Problem:$l_today_users .= sprintf($l_today_g_user_s, $guests_today);
Das "Davon" konnte ich problemlos in der lang_main.php kleinschreiben, bloss befindet sich in der Ausgabe immernoch ein doppeltes Leerzeichen zwischen "[...]und davon[...]". Wo finde ich dieses überflüssige Leerzeichen und wo kann ich es entfernen?Insgesamt haben heute W Benutzer das Forum besucht: X registrierte, Y versteckte und davon Z innerhalb der letzten Stunde.
P.S. Nicht wundern, die Boardsoftware hat das zweite Leerzeichen entfernt, bei mir befindet es sich aber trotzdem.