dayly user Mod - letzte 24h?

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
Benutzeravatar
Helmut71
Mitglied
Beiträge: 1152
Registriert: 07.07.2003 23:03
Wohnort: Hohenau/Österreich

dayly user Mod - letzte 24h?

Beitrag von Helmut71 »

Hallo!!

Ich verwende seit einiger Zei den dayly-users-Mod:

Code: Alles auswählen

//show dayly users mod
$time_now=time();
$time1Hour=$time_now-3600;
$minutes = date('is', $time_now);
$hour_now = $time_now - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]);
$dato=create_date('H', $time_now,$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.'" AND session_time >= '.$timetoday.' AND session_time< '.($timetoday+86399).' 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_id!="'.ANONYMOUS.'" AND user_session_time >= '.$timetoday.' AND user_session_time< '.($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_lastlogon']>=$time1Hour)
	{
		$users_lasthour++;
	}
	switch ($todayrow['user_level'])
	{
		case ADMIN :
		      $todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
      		$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
			break;
		case MOD :
		      $todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
      		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
			break;
	}
 	$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'>' . $todayrow['username'] . '</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++;
}
if ($users_today_list)
{
	$users_today_list[ strlen( $users_today_list)-1] = ' ';
} else
{
	$users_today_list = $lang['None'];
}
$total_users_today = $db->sql_numrows($result)+$guests_today;

$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);
(aus der portal.php)

Jetzt wollte ich mal fragen, ob man den so umprogrammieren kann, dass statt den usern die heute das Board besucht haben (er fängt ja Mitternacht neu zu zählen an), die user gezeight werden, die in den letzten 24 h das Board besucht haben..??
Es tanzt ein Bi Ba Butzemann.
Benutzeravatar
roger
Mitglied
Beiträge: 565
Registriert: 30.10.2002 21:32
Wohnort: Bavaria D.C.

Beitrag von roger »

Ich habe es bei mir so gelöst:


Nach

Code: Alles auswählen

$time1Hour=$time_now-3600;

Code: Alles auswählen

$time24hour=$time_now-86400;
einfügen.

Die erste Datenbankabfrage sieht dann so aus:

Code: Alles auswählen

$sql = 'SELECT session_ip, MAX(session_time) as session_time
		FROM '.SESSIONS_TABLE.'
		WHERE session_user_id="'.ANONYMOUS.'"
			AND session_time >= '.$time24hour.'
			AND session_time< '.($time24hour+86400).'
		GROUP BY session_ip';
Die andere:

Code: Alles auswählen

$sql = 'SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon
		FROM ' . USERS_TABLE . '
		WHERE user_id != ' . ANONYMOUS . '
			AND user_lastlogon >= ' . $time24hour . '
			AND user_lastlogon < ' . ($time24hour+86400) . '
		ORDER BY user_lastlogon';
wobei ich dann aber nach Einlogg-Zeitpunkt sortiere und nicht mehr alphabetisch.


Aus:

Code: Alles auswählen

$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_today_total'] : $lang['Users_today_total'] ) : $lang['Users_today_zero_total'];
wurde:

Code: Alles auswählen

$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_24_total'] : $lang['Users_24_total'] ) : $lang['Users_24_zero_total'];
mit

Code: Alles auswählen

$lang['Users_24_zero_total'] = "In den letzten 24 Stunden haben <b>0</b> Benutzer das Forum besucht: ";
$lang['User_24_total'] = "In den letzten 24 Stunden hat <b>%d</b> Benutzer das Forum besucht: ";
$lang['Users_24_total'] = "In den letzten 24 Stunden haben <b>%d</b> Benutzer das Forum besucht: ";
in der lang_main

roger
Benutzeravatar
Helmut71
Mitglied
Beiträge: 1152
Registriert: 07.07.2003 23:03
Wohnort: Hohenau/Österreich

Beitrag von Helmut71 »

@roger: bei mir hat das so nicht geklappt.

es werden weiterhin nur die seit 12 Uhr angezeigt..

Muss man in der portal_body.tpl auch was umschreiben??
Es tanzt ein Bi Ba Butzemann.
Benutzeravatar
Helmut71
Mitglied
Beiträge: 1152
Registriert: 07.07.2003 23:03
Wohnort: Hohenau/Österreich

Beitrag von Helmut71 »

*schieb*
Es tanzt ein Bi Ba Butzemann.
Benutzeravatar
roger
Mitglied
Beiträge: 565
Registriert: 30.10.2002 21:32
Wohnort: Bavaria D.C.

Beitrag von roger »

Hast du die Änderungen so gemacht, wie von mir angegeben?
Notfalls noch einmal verlinken (die geänderte Version).

roger
Benutzeravatar
Helmut71
Mitglied
Beiträge: 1152
Registriert: 07.07.2003 23:03
Wohnort: Hohenau/Österreich

Beitrag von Helmut71 »

@roger: ich hab mich zumindest bemüht, sie so zu machen wie von dir angegeben ;-)

Das wär jetzt der betreffende Teil der portal.php (bzw. index.php):
//show dayly users mod
$time_now=time();
$time1Hour=$time_now-3600;
$time24hour=$time_now-86400;
$minutes = date('is', $time_now);
$hour_now = $time_now - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]);
$dato=create_date('H', $time_now,$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.'" AND session_time >= '.$timetoday.' AND session_time< '.($timetoday+86399).' GROUP BY session_ip';
$sql = 'SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon
FROM ' . USERS_TABLE . '
WHERE user_id != ' . ANONYMOUS . '
AND user_lastlogon >= ' . $time24hour . '
AND user_lastlogon < ' . ($time24hour+86400) . '
ORDER BY user_lastlogon';
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_id!="'.ANONYMOUS.'" AND user_session_time >= '.$timetoday.' AND user_session_time< '.($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_lastlogon']>=$time1Hour)
{
$users_lasthour++;
}
switch ($todayrow['user_level'])
{
case ADMIN :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
break;
case MOD :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
break;
}
$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'>' . $todayrow['username'] . '</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++;
}
if ($users_today_list)
{
$users_today_list[ strlen( $users_today_list)-1] = ' ';
} else
{
$users_today_list = $lang['None'];
}
$total_users_today = $db->sql_numrows($result)+$guests_today;

$users_today_list = $lang['Registered_users'].' ' . $users_today_list;
$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_24_total'] : $lang['Users_24_total'] ) : $lang['Users_24_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);
Bau ich den aber so ein, werden gar keine User mehr angezeigt.
Es tanzt ein Bi Ba Butzemann.
Benutzeravatar
roger
Mitglied
Beiträge: 565
Registriert: 30.10.2002 21:32
Wohnort: Bavaria D.C.

Beitrag von roger »

//show dayly users mod
$time_now=time();
$time1Hour=$time_now-3600;
$time24hour=$time_now-86400;
$minutes = date('is', $time_now);
$hour_now = $time_now - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]);
$dato=create_date('H', $time_now,$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.'" AND session_time >= '.$timetoday.' AND session_time< '.($timetoday+86399).' GROUP BY session_ip';
$sql = 'SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon
FROM ' . USERS_TABLE . '
WHERE user_id != ' . ANONYMOUS . '
AND user_lastlogon >= ' . $time24hour . '
AND user_lastlogon < ' . ($time24hour+86400) . '
ORDER BY user_lastlogon';

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_id!="'.ANONYMOUS.'" AND user_session_time >= '.$timetoday.' AND user_session_time< '.($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_lastlogon']>=$time1Hour)
{
$users_lasthour++;
}
switch ($todayrow['user_level'])
{
case ADMIN :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
break;
case MOD :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
break;
}
$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'>' . $todayrow['username'] . '</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++;
}
if ($users_today_list)
{
$users_today_list[ strlen( $users_today_list)-1] = ' ';
} else
{
$users_today_list = $lang['None'];
}
$total_users_today = $db->sql_numrows($result)+$guests_today;

$users_today_list = $lang['Registered_users'].' ' . $users_today_list;
$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_24_total'] : $lang['Users_24_total'] ) : $lang['Users_24_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);
Du hast hier falsch eingebaut: Der rot markierte Abschnitt ist an falscher Stelle (du hast die DB-Abfrage zusätzlich eingebaut.)

Richtig ist: Den blau markierten Teil durch den rot markierten ersetzen!

Außerdem hast du den grün markierten Teil nicht angepasst (= "1. Datenbankabfrage").


roger
Benutzeravatar
roger
Mitglied
Beiträge: 565
Registriert: 30.10.2002 21:32
Wohnort: Bavaria D.C.

Beitrag von roger »

Langer Rede....

Es muss so aussehen:

Code: Alles auswählen

//show dayly users mod
	$time_now=time();
	$time1Hour=$time_now-3600;
	$time24hour=$time_now-86400;
	$minutes = date('is', $time_now);
	$hour_now = $time_now - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]);
	$dato=create_date('H', $time_now,$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.'"
			AND session_time >= '.$time24hour.'
			AND session_time< '.($time24hour+86400).'
		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_id != ' . ANONYMOUS . '
			AND user_lastlogon >= ' . $time24hour . '
			AND user_lastlogon < ' . ($time24hour+86400) . '
		ORDER BY user_lastlogon';
	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_lastlogon']>=$time1Hour)
		{
			$users_lasthour++;
		}
		switch ($todayrow['user_level'])
		{
			case ADMIN :
				$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
		      	$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
			break;
			case MOD :
		    	$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
	      		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
			break;
		}
	 	$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'>' . $todayrow['username'] . '</a>,' : (($userdata[user_level] == ADMIN || $userdata[user_level] == MOD || $userdata[user_jadmin] == 'yes') ? ' <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++;
	}
	if ($users_today_list)
	{
		$users_today_list[ strlen( $users_today_list)-1] = ' ';
	}
	else
	{
		$users_today_list = $lang['None'];
	}
	$total_users_today = $db->sql_numrows($result)+$guests_today;

	$users_today_list = $lang['Registered_users'].' ' . $users_today_list;
	$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_24_total'] : $lang['Users_24_total'] ) : 		$lang['Users_24_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);

roger
Benutzeravatar
Helmut71
Mitglied
Beiträge: 1152
Registriert: 07.07.2003 23:03
Wohnort: Hohenau/Österreich

Beitrag von Helmut71 »

hat tadellos geklappt!! Dankeschön! :-)
Es tanzt ein Bi Ba Butzemann.
Antworten

Zurück zu „phpBB 2.0: Mod Support“