Seite 1 von 3

Anzahl onlineuser anzeigen auf startseite!

Verfasst: 27.12.2002 22:01
von Warren
Hi Leute,

ich wollte fragen....

Ich habe eine Homepage...auf dieser Homepage hat es auch ein Forum, nun möchte ich auf der Startseite nebst den aktuellsten Diskussionen(schon gemacht), auch die anzahl gerade im forum aktiver user anzeigen, kann mir jemand helfen?

Verfasst: 28.12.2002 13:17
von Warren
kann mir niemand einen tipp geben?

Verfasst: 28.12.2002 13:26
von esperitox
Wenn die Seite innerhalb vom phpBB ist (also header+-footer eingebunden sind) kannst du überall im template {TOTAL_USERS_ONLINE} verwenden um die liste der User die Online sind auszugeben.

esperitox

Verfasst: 28.12.2002 17:11
von Warren
ist sie allerdings nicht!

Verfasst: 28.12.2002 17:43
von sidragon
da gibt es einen Mod für... schon mal auf den einschlägigen Seiten gesucht?

Verfasst: 28.12.2002 17:50
von esperitox
Vieleicht hilt dir das weiter:

Code: Alles auswählen

<?php

/***************************************************************************
## Mod Title:   Who's online on any other page
## Filename: online.php 
## Mod Version: 1.0.0 
## Author:       Acid <acid_junky@web.de> , Germany, Berlin 
## Modified by : Roman Malarev <roman@malarev.com> , Italy, Milan 
## Description:  Shows on index page who is online on forum now 
## 
## Installation Level:  easy 
## Installation Time:   1 Minute
######################################################## 
## 
## Pre-Installation Notes: 
## This only works with MySQL.  
## 
## Installation Notes: 
## <?php include('online.php'); ?> must be the first line at the 
## index page (to avoid warnings "Cannot add header information...") 
## 
## put <?php echo $onlinet; ?> -  to show online users on forum -
## wherever you want @ your index page
 ***************************************************************************/

$phpbb_root_path = "board/"; //path to below files!!!! 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

$userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length); 
init_userprefs($userdata); 

$user_forum_sql = ( !empty($forum_id) ) ? "AND ( u.user_session_page = $forum_id 
   OR s.session_page = $forum_id)" : ""; 

$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip 
   FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s 
   WHERE u.user_id = s.session_user_id 
      AND ( s.session_time >= ".( time() - 300 ) . " 
         OR u.user_session_time >= " . ( time() - 300 ) . " ) 
      $user_forum_sql 
   ORDER BY u.username ASC"; 
$result = $db->sql_query($sql); 
if(!$result) 
{ 
   message_die(GENERAL_ERROR, "Couldn't obtain user/online information.", "", __LINE__, __FILE__, $sql); 
} 

$userlist_ary = array(); 
$userlist_visible = array(); 

$logged_visible_online = 0; 
$logged_hidden_online = 0; 
$guests_online = 0; 
$online_userlist = ""; 

$prev_user_id = 0; 

while( $row = $db->sql_fetchrow($result) ) 
{ 
   // User is logged in and therefor not a guest 
   if( $row['session_logged_in'] ) 
   { 
      // Skip multiple sessions for one user 
      if( $row['user_id'] != $prev_user_id ) 
      { 
         $style_color = ""; 
         if( $row['user_level'] == ADMIN ) 
         { 
            $row['username'] = '<b>' . $row['username'] . '</b>'; 
            $style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; 
         } 
         else if( $row['user_level'] == MOD ) 
         { 
            $row['username'] = '<b>' . $row['username'] . '</b>'; 
            $style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; 
         } 

         if( $row['user_allow_viewonline'] ) 
         { 
            $user_online_link = '<a href="' . append_sid($phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>'; 
            $logged_visible_online++; 
         } 
         else 
         { 
            $user_online_link = '<a href="' . append_sid($phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>'; 
            $logged_hidden_online++; 
         } 
          
         if( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) 
         { 
            $online_userlist .= ( $online_userlist != "" ) ? ", " . $user_online_link : $user_online_link; 
         } 
      } 
   } 
   else 
   { 
      $guests_online++; 
   } 

   $prev_user_id = $row['user_id']; 
} 

if( empty($online_userlist) ) 
{ 
   $online_userlist = $lang['None']; 
} 
$online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . " " . $online_userlist; 

$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online; 

if($total_online_users > $board_config['record_online_users']) 
{ 
   $sql = "UPDATE " . CONFIG_TABLE . " 
      SET config_value = '$total_online_users' 
      WHERE config_name = 'record_online_users'"; 
   if( !$result = $db->sql_query($sql) ) 
   { 
      message_die(GENERAL_ERROR, "Couldn't update online user record (nr of users)", "", __LINE__, __FILE__, $sql); 
   } 

   $sql = "UPDATE " . CONFIG_TABLE . " 
      SET config_value = '" . time() . "' 
      WHERE config_name = 'record_online_date'"; 
   if( !$result = $db->sql_query($sql) ) 
   { 
      message_die(GENERAL_ERROR, "Couldn't update online user record (date)", "", __LINE__, __FILE__, $sql); 
   } 

   $board_config['record_online_users'] = $total_online_users; 
   $board_config['record_online_date'] = time(); 
} 

if( $total_online_users == 0 ) 
{ 
   $l_t_user_s = $lang['Online_users_zero_total']; 
} 
else if( $total_online_users == 1 ) 
{ 
   $l_t_user_s = $lang['Online_user_total']; 
} 
else 
{ 
   $l_t_user_s = $lang['Online_users_total']; 
} 

if( $logged_visible_online == 0 ) 
{ 
   $l_r_user_s = $lang['Reg_users_zero_total']; 
} 
else if( $logged_visible_online == 1 ) 
{ 
   $l_r_user_s = $lang['Reg_user_total']; 
} 
else 
{ 
   $l_r_user_s = $lang['Reg_users_total']; 
} 

if( $logged_hidden_online == 0 ) 
{ 
   $l_h_user_s = $lang['Hidden_users_zero_total']; 
} 
else if( $logged_hidden_online == 1 ) 
{ 
   $l_h_user_s = $lang['Hidden_user_total']; 
} 
else 
{ 
   $l_h_user_s = $lang['Hidden_users_total']; 
} 

if( $guests_online == 0 ) 
{ 
   $l_g_user_s = $lang['Guest_users_zero_total']; 
} 
else if( $guests_online == 1 ) 
{ 
   $l_g_user_s = $lang['Guest_user_total']; 
} 
else 
{ 
   $l_g_user_s = $lang['Guest_users_total']; 
} 

$l_online_users = sprintf($l_t_user_s, $total_online_users); 
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online); 
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online); 
$l_online_users .= sprintf($l_g_user_s, $guests_online); 

$onlinet="$l_online_users<br>$online_userlist<br>"; 

?>
esperitox

Was soll man damit?

Verfasst: 28.12.2002 18:41
von manica
Nettes Script, aber was soll man damit machen? Wohin kopieren etc.

Gibt es kein vernünftiges Backend bei dem die aktuellen User und Artikel angezeigt werden? Bei meinem APP ist das überhaupt kein Problem.

Ich will eigentlich aufs phpbb wechseln, aber nachdem ich die vielen Probleme mit Mods oder Hacks sehe kommen mir Zweifel.

Verfasst: 28.12.2002 21:14
von Acid
## <?php include('online.php'); ?> must be the first line at the
## index page (to avoid warnings "Cannot add header information...")
##
## put <?php echo $onlinet; ?> - to show online users on forum -
## wherever you want @ your index page
..das obige wäre die online.php

Verfasst: 29.12.2002 00:19
von Warren
Acid hat geschrieben:
## <?php include('online.php'); ?> must be the first line at the
## index page (to avoid warnings "Cannot add header information...")
muss der obige teil ins index.php oder in meine indexseite, wo ich die anzahl onlineuser anzeigen will?

Verfasst: 29.12.2002 00:20
von Warren
sidragon hat geschrieben:da gibt es einen Mod für... schon mal auf den einschlägigen Seiten gesucht?
wie meinst du das?