Seite 1 von 1

Last-Visit-Mods & die Gastanzeige

Verfasst: 02.06.2003 16:26
von Gast
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?

Verfasst: 03.06.2003 08:57
von Chaze
Setze den Eintrag in der index_body.tpl zwischen

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
und

Code: Alles auswählen

<!-- END switch_user_logged_in -->
Du mußt beiden Einträgen eine eigene Zeile spendieren.

Verfasst: 03.06.2003 21:36
von Gast
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.

Verfasst: 04.06.2003 09:16
von Chaze
Zeig doch bitte mal die URL zu dem Mod.

Verfasst: 06.06.2003 14:04
von Gast
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
<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}&nbsp;{L_USERS_LASTHOUR}<br />{USERS_TODAY_LIST}</br></span></td>
</tr>
<tr>
<td class="row1" align="left"><span class="online">{TOTAL_USERS_ONLINE} &nbsp; [ {L_WHOSONLINE_ADMIN} ] &nbsp; [ {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 index.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);
in language/lang_german/lang_main.php
//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.
Ich hoffe, dass Ihr damit etwas anfangen könnt und bin sehr dankbar für jede Hilfe.

Verfasst: 06.06.2003 14:44
von Chaze
Mal ein Schnellschuß:
Ersetze mal in der index.php

Code: Alles auswählen

$guests_today = $db->sql_numrows($result); 
durch

Code: Alles auswählen

$guests_today = '0'; 

Verfasst: 06.06.2003 18:22
von Gast
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
$l_today_users .= sprintf($l_today_g_user_s, $guests_today);
entfernt, nun gibt es nur noch ein Problem:
Insgesamt haben heute W Benutzer das Forum besucht: X registrierte, Y versteckte und davon Z innerhalb der letzten Stunde.
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?

P.S. Nicht wundern, die Boardsoftware hat das zweite Leerzeichen entfernt, bei mir befindet es sich aber trotzdem.

Verfasst: 06.06.2003 18:25
von Chaze
Das solltest Du in der /language/lang_german/lang_main.php finden.