Anzahl onlineuser anzeigen auf startseite!

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Warren

Anzahl onlineuser anzeigen auf startseite!

Beitrag 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?
Warren

Beitrag von Warren »

kann mir niemand einen tipp geben?
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag 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
Zuletzt geändert von esperitox am 28.12.2002 17:36, insgesamt 1-mal geändert.
Warren

Beitrag von Warren »

ist sie allerdings nicht!
sidragon
Mitglied
Beiträge: 190
Registriert: 22.07.2002 07:25
Wohnort: Lohr am Main
Kontaktdaten:

Beitrag von sidragon »

da gibt es einen Mod für... schon mal auf den einschlägigen Seiten gesucht?
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag 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
manica
Mitglied
Beiträge: 240
Registriert: 13.10.2002 15:01
Kontaktdaten:

Was soll man damit?

Beitrag 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.
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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
Warren

Beitrag 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?
Warren

Beitrag von Warren »

sidragon hat geschrieben:da gibt es einen Mod für... schon mal auf den einschlägigen Seiten gesucht?
wie meinst du das?
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“