Last-Visit-Mods & die Gastanzeige

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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.
Antworten
Gast

Last-Visit-Mods & die Gastanzeige

Beitrag 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?
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag 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.
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Gast

Beitrag 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.
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag von Chaze »

Zeig doch bitte mal die URL zu dem Mod.
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Gast

Beitrag 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.
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag 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'; 
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Gast

Beitrag 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.
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag von Chaze »

Das solltest Du in der /language/lang_german/lang_main.php finden.
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Antworten

Zurück zu „phpBB 2.0: Mod Support“