Verzeichnisstruktur phpBB-2.0.0


Veröffentlicht
03.04.2002

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

viewonline.php

Zuletzt modifiziert: 09.10.2024, 12:50 - Dateigröße: 7.00 KiB


001  <?php
002  /***************************************************************************
003   *                              viewonline.php
004   *                            -------------------
005   *   begin                : Saturday, Feb 13, 2001
006   *   copyright            : (C) 2001 The phpBB Group
007   *   email                : support@phpbb.com
008   *
009   *   $Id$
010   *
011   *
012   ***************************************************************************/
013   
014  /***************************************************************************
015   *
016   *   This program is free software; you can redistribute it and/or modify
017   *   it under the terms of the GNU General Public License as published by
018   *   the Free Software Foundation; either version 2 of the License, or
019   *   (at your option) any later version.
020   *
021   ***************************************************************************/
022   
023  define('IN_PHPBB', true);
024  $phpbb_root_path = './';
025  include($phpbb_root_path . 'extension.inc');
026  include($phpbb_root_path . 'common.'.$phpEx);
027   
028  //
029  // Start session management
030  //
031  $userdata = session_pagestart($user_ip, PAGE_VIEWONLINE);
032  init_userprefs($userdata);
033  //
034  // End session management
035  //
036   
037  //
038  // Output page header and load viewonline template
039  //
040  $page_title = $lang['Who_is_Online'];
041  include($phpbb_root_path . 'includes/page_header.'.$phpEx);
042   
043  $template->set_filenames(array(
044      'body' => 'viewonline_body.tpl')
045  );
046  make_jumpbox('viewforum.'.$phpEx);
047   
048  $template->assign_vars(array(
049      'L_WHOSONLINE' => $lang['Who_is_Online'],
050      'L_ONLINE_EXPLAIN' => $lang['Online_explain'],
051      'L_USERNAME' => $lang['Username'],
052      'L_FORUM_LOCATION' => $lang['Forum_Location'],
053      'L_LAST_UPDATE' => $lang['Last_updated'])
054  );
055   
056  //
057  // Forum info
058  //
059  $sql = "SELECT forum_name, forum_id
060      FROM " . FORUMS_TABLE;
061  if ( $result = $db->sql_query($sql) )
062  {
063      while( $row = $db->sql_fetchrow($result) )
064      {
065          $forum_data[$row['forum_id']] = $row['forum_name'];
066      }
067  }
068  else
069  {
070      message_die(GENERAL_ERROR, 'Could not obtain user/online forums information', '', __LINE__, __FILE__, $sql);
071  }
072   
073  //
074  // Get auth data
075  //
076  $is_auth_ary = array();
077  $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
078   
079  //
080  // Get user list
081  //
082  $sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, s.session_ip
083      FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
084      WHERE u.user_id = s.session_user_id
085          AND s.session_time >= ".( time() - 300 ) . "
086      ORDER BY u.username ASC, s.session_ip ASC";
087  if ( !($result = $db->sql_query($sql)) )
088  {
089      message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql);
090  }
091   
092  $guest_users = 0;
093  $registered_users = 0;
094  $hidden_users = 0;
095   
096  $reg_counter = 0;
097  $guest_counter = 0;
098  $prev_user = 0;
099  $prev_ip = '';
100   
101  while ( $row = $db->sql_fetchrow($result) )
102  {
103      $view_online = false;
104   
105      if ( $row['session_logged_in'] ) 
106      {
107          $user_id = $row['user_id'];
108   
109          if ( $user_id != $prev_user )
110          {
111              $username = $row['username'];
112   
113              $style_color = '';
114              if ( $row['user_level'] == ADMIN )
115              {
116                  $username = '<b style="color:#' . $theme['fontcolor3'] . '">' . $username . '</b>';
117              }
118              else if ( $row['user_level'] == MOD )
119              {
120                  $username = '<b style="color:#' . $theme['fontcolor2'] . '">' . $username . '</b>';
121              }
122   
123              if ( !$row['user_allow_viewonline'] )
124              {
125                  $view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
126                  $hidden_users++;
127   
128                  $username = '<i>' . $username . '</i>';
129              }
130              else
131              {
132                  $view_online = true;
133                  $registered_users++;
134              }
135   
136              $which_counter = 'reg_counter';
137              $which_row = 'reg_user_row';
138              $prev_user = $user_id;
139          }
140      }
141      else
142      {
143          if ( $row['session_ip'] != $prev_ip )
144          {
145              $username = $lang['Guest'];
146              $view_online = true;
147              $guest_users++;
148      
149              $which_counter = 'guest_counter';
150              $which_row = 'guest_user_row';
151          }
152      }
153   
154      $prev_ip = $row['session_ip'];
155   
156      if ( $view_online )
157      {
158          if ( $row['session_page'] < 1 || !$is_auth_ary[$row['session_page']]['auth_view'] )
159          {
160              switch( $row['session_page'] )
161              {
162                  case PAGE_INDEX:
163                      $location = $lang['Forum_index'];
164                      $location_url = "index.$phpEx";
165                      break;
166                  case PAGE_POSTING:
167                      $location = $lang['Posting_message'];
168                      $location_url = "index.$phpEx";
169                      break;
170                  case PAGE_LOGIN:
171                      $location = $lang['Logging_on'];
172                      $location_url = "index.$phpEx";
173                      break;
174                  case PAGE_SEARCH:
175                      $location = $lang['Searching_forums'];
176                      $location_url = "search.$phpEx";
177                      break;
178                  case PAGE_PROFILE:
179                      $location = $lang['Viewing_profile'];
180                      $location_url = "index.$phpEx";
181                      break;
182                  case PAGE_VIEWONLINE:
183                      $location = $lang['Viewing_online'];
184                      $location_url = "viewonline.$phpEx";
185                      break;
186                  case PAGE_VIEWMEMBERS:
187                      $location = $lang['Viewing_member_list'];
188                      $location_url = "memberlist.$phpEx";
189                      break;
190                  case PAGE_PRIVMSGS:
191                      $location = $lang['Viewing_priv_msgs'];
192                      $location_url = "privmsg.$phpEx";
193                      break;
194                  case PAGE_FAQ:
195                      $location = $lang['Viewing_FAQ'];
196                      $location_url = "faq.$phpEx";
197                      break;
198                  default:
199                      $location = $lang['Forum_index'];
200                      $location_url = "index.$phpEx";
201              }
202          }
203          else
204          {
205              $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
206              $location = $forum_data[$row['session_page']];
207          }
208   
209          $row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2'];
210          $row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2'];
211   
212          $template->assign_block_vars("$which_row", array(
213              'ROW_COLOR' => '#' . $row_color,
214              'ROW_CLASS' => $row_class,
215              'USERNAME' => $username,
216              'LASTUPDATE' => create_date($board_config['default_dateformat'], $row['session_time'], $board_config['board_timezone']),
217              'FORUM_LOCATION' => $location,
218   
219              'U_USER_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $user_id),
220              'U_FORUM_LOCATION' => append_sid($location_url))
221          );
222   
223          $$which_counter++;
224      }
225  }
226   
227  if( $registered_users == 0 )
228  {
229      $l_r_user_s = $lang['Reg_users_zero_online'];
230  }
231  else if( $registered_users == 1 )
232  {
233      $l_r_user_s = $lang['Reg_user_online'];
234  }
235  else
236  {
237      $l_r_user_s = $lang['Reg_users_online'];
238  }
239   
240  if( $hidden_users == 0 )
241  {
242      $l_h_user_s = $lang['Hidden_users_zero_online'];
243  }
244  else if( $hidden_users == 1 )
245  {
246      $l_h_user_s = $lang['Hidden_user_online'];
247  }
248  else
249  {
250      $l_h_user_s = $lang['Hidden_users_online'];
251  }
252   
253  if( $guest_users == 0 )
254  {
255      $l_g_user_s = $lang['Guest_users_zero_online'];
256  }
257  else if( $guest_users == 1 )
258  {
259      $l_g_user_s = $lang['Guest_user_online'];
260  }
261  else
262  {
263      $l_g_user_s = $lang['Guest_users_online'];
264  }
265   
266  $template->assign_vars(array(
267      'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users), 
268      'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users))
269  );
270   
271  if ( $registered_users + $hidden_users == 0 )
272  {
273      $template->assign_vars(array(
274          'L_NO_REGISTERED_USERS_BROWSING' => $lang['No_users_browsing'])
275      );
276  }
277   
278  if ( $guest_users == 0 )
279  {
280      $template->assign_vars(array(
281          'L_NO_GUESTS_BROWSING' => $lang['No_users_browsing'])
282      );
283  }
284   
285  $template->pparse('body');
286   
287  include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
288   
289  ?>