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

index.php

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


001  <?php
002  /***************************************************************************
003   *                                index.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_INDEX);
032  init_userprefs($userdata);
033  //
034  // End session management
035  //
036   
037  $viewcat = ( !empty($HTTP_GET_VARS[POST_CAT_URL]) ) ? $HTTP_GET_VARS[POST_CAT_URL] : -1;
038   
039  if( isset($HTTP_GET_VARS['mark']) || isset($HTTP_POST_VARS['mark']) )
040  {
041      $mark_read = ( isset($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : $HTTP_GET_VARS['mark'];
042  }
043  else
044  {
045      $mark_read = '';
046  }
047   
048  //
049  // Handle marking posts
050  //
051  if( $mark_read == 'forums' )
052  {
053      if( $userdata['session_logged_in'] )
054      {
055          setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
056      }
057   
058      $template->assign_vars(array(
059          "META" => '<meta http-equiv="refresh" content="3;url='  .append_sid("index.$phpEx") . '">')
060      );
061   
062      $message = $lang['Forums_marked_read'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a> ');
063   
064      message_die(GENERAL_MESSAGE, $message);
065  }
066  //
067  // End handle marking posts
068  //
069   
070  $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_t"]) : array();
071  $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_f"]) : array();
072   
073  //
074  // If you don't use these stats on your index you may want to consider
075  // removing them
076  //
077  $total_posts = get_db_stat('postcount');
078  $total_users = get_db_stat('usercount');
079  $newest_userdata = get_db_stat('newestuser');
080  $newest_user = $newest_userdata['username'];
081  $newest_uid = $newest_userdata['user_id'];
082   
083  if( $total_posts == 0 )
084  {
085      $l_total_post_s = $lang['Posted_articles_zero_total'];
086  }
087  else if( $total_posts == 1 )
088  {
089      $l_total_post_s = $lang['Posted_article_total'];
090  }
091  else
092  {
093      $l_total_post_s = $lang['Posted_articles_total'];
094  }
095   
096  if( $total_users == 0 )
097  {
098      $l_total_user_s = $lang['Registered_users_zero_total'];
099  }
100  else if( $total_users == 1 )
101  {
102      $l_total_user_s = $lang['Registered_user_total'];
103  }
104  else
105  {
106      $l_total_user_s = $lang['Registered_users_total'];
107  }
108   
109   
110  //
111  // Start page proper
112  //
113  $sql = "SELECT c.cat_id, c.cat_title, c.cat_order
114      FROM " . CATEGORIES_TABLE . " c 
115      ORDER BY c.cat_order";
116  if( !($result = $db->sql_query($sql)) )
117  {
118      message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
119  }
120   
121  $category_rows = array();
122  while ($row = $db->sql_fetchrow($result))
123  {
124      $category_rows[] = $row;
125  }
126  $db->sql_freeresult($result);
127   
128  if( ( $total_categories = count($category_rows) ) )
129  {
130      //
131      // Define appropriate SQL
132      //
133      switch(SQL_LAYER)
134      {
135          case 'postgresql':
136              $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id 
137                  FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
138                  WHERE p.post_id = f.forum_last_post_id 
139                      AND u.user_id = p.poster_id  
140                      UNION (
141                          SELECT f.*, NULL, NULL, NULL, NULL
142                          FROM " . FORUMS_TABLE . " f
143                          WHERE NOT EXISTS (
144                              SELECT p.post_time
145                              FROM " . POSTS_TABLE . " p
146                              WHERE p.post_id = f.forum_last_post_id  
147                          )
148                      )
149                      ORDER BY cat_id, forum_order";
150              break;
151   
152          case 'oracle':
153              $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id 
154                  FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
155                  WHERE p.post_id = f.forum_last_post_id(+)
156                      AND u.user_id = p.poster_id(+)
157                  ORDER BY f.cat_id, f.forum_order";
158              break;
159   
160          default:
161              $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
162                  FROM (( " . FORUMS_TABLE . " f
163                  LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
164                  LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
165                  ORDER BY f.cat_id, f.forum_order";
166              break;
167      }
168      if ( !($result = $db->sql_query($sql)) )
169      {
170          message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
171      }
172   
173      $forum_data = array();
174      while( $row = $db->sql_fetchrow($result) )
175      {
176          $forum_data[] = $row;
177      }
178      $db->sql_freeresult($result);
179   
180      if ( !($total_forums = count($forum_data)) )
181      {
182          message_die(GENERAL_MESSAGE, $lang['No_forums']);
183      }
184   
185      //
186      // Obtain a list of topic ids which contain
187      // posts made since user last visited
188      //
189      if ($userdata['session_logged_in'])
190      {
191          // 60 days limit
192          if ($userdata['user_lastvisit'] < (time() - 5184000))
193          {
194              $userdata['user_lastvisit'] = time() - 5184000;
195          }
196   
197          $sql = "SELECT t.forum_id, t.topic_id, p.post_time 
198              FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p 
199              WHERE p.post_id = t.topic_last_post_id 
200                  AND p.post_time > " . $userdata['user_lastvisit'] . 
201                  AND t.topic_moved_id = 0"; 
202          if ( !($result = $db->sql_query($sql)) )
203          {
204              message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
205          }
206   
207          $new_topic_data = array();
208          while( $topic_data = $db->sql_fetchrow($result) )
209          {
210              $new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
211          }
212          $db->sql_freeresult($result);
213      }
214   
215      //
216      // Obtain list of moderators of each forum
217      // First users, then groups ... broken into two queries
218      //
219      $sql = "SELECT aa.forum_id, u.user_id, u.username 
220          FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
221          WHERE aa.auth_mod = " . TRUE . 
222              AND g.group_single_user = 1 
223              AND ug.group_id = aa.group_id 
224              AND g.group_id = aa.group_id 
225              AND u.user_id = ug.user_id 
226          GROUP BY u.user_id, u.username, aa.forum_id 
227          ORDER BY aa.forum_id, u.user_id";
228      if ( !($result = $db->sql_query($sql)) )
229      {
230          message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
231      }
232   
233      $forum_moderators = array();
234      while( $row = $db->sql_fetchrow($result) )
235      {
236          $forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
237      }
238      $db->sql_freeresult($result);
239   
240      $sql = "SELECT aa.forum_id, g.group_id, g.group_name 
241          FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g 
242          WHERE aa.auth_mod = " . TRUE . 
243              AND g.group_single_user = 0 
244              AND g.group_type <> " . GROUP_HIDDEN . "
245              AND ug.group_id = aa.group_id 
246              AND g.group_id = aa.group_id 
247          GROUP BY g.group_id, g.group_name, aa.forum_id 
248          ORDER BY aa.forum_id, g.group_id";
249      if ( !($result = $db->sql_query($sql)) )
250      {
251          message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
252      }
253   
254      while( $row = $db->sql_fetchrow($result) )
255      {
256          $forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
257      }
258      $db->sql_freeresult($result);
259   
260      //
261      // Find which forums are visible for this user
262      //
263      $is_auth_ary = array();
264      $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);
265   
266      //
267      // Start output of page
268      //
269      define('SHOW_ONLINE', true);
270      $page_title = $lang['Index'];
271      include($phpbb_root_path . 'includes/page_header.'.$phpEx);
272   
273      $template->set_filenames(array(
274          'body' => 'index_body.tpl')
275      );
276   
277      $template->assign_vars(array(
278          'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
279          'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
280          'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'), 
281   
282          'FORUM_IMG' => $images['forum'],
283          'FORUM_NEW_IMG' => $images['forum_new'],
284          'FORUM_LOCKED_IMG' => $images['forum_locked'],
285   
286          'L_FORUM' => $lang['Forum'],
287          'L_TOPICS' => $lang['Topics'],
288          'L_REPLIES' => $lang['Replies'],
289          'L_VIEWS' => $lang['Views'],
290          'L_POSTS' => $lang['Posts'],
291          'L_LASTPOST' => $lang['Last_Post'], 
292          'L_NO_NEW_POSTS' => $lang['No_new_posts'],
293          'L_NEW_POSTS' => $lang['New_posts'],
294          'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], 
295          'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], 
296          'L_ONLINE_EXPLAIN' => $lang['Online_explain'], 
297   
298          'L_MODERATOR' => $lang['Moderators'], 
299          'L_FORUM_LOCKED' => $lang['Forum_is_locked'],
300          'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'], 
301   
302          'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
303      );
304   
305      //
306      // Let's decide which categories we should display
307      //
308      $display_categories = array();
309   
310      for ($i = 0; $i < $total_forums; $i++ )
311      {
312          if ($is_auth_ary[$forum_data[$i]['forum_id']]['auth_view'])
313          {
314              $display_categories[$forum_data[$i]['cat_id']] = true;
315          }
316      }
317   
318      //
319      // Okay, let's build the index
320      //
321      for($i = 0; $i < $total_categories; $i++)
322      {
323          $cat_id = $category_rows[$i]['cat_id'];
324   
325          //
326          // Yes, we should, so first dump out the category
327          // title, then, if appropriate the forum list
328          //
329          if (isset($display_categories[$cat_id]) && $display_categories[$cat_id])
330          {
331              $template->assign_block_vars('catrow', array(
332                  'CAT_ID' => $cat_id,
333                  'CAT_DESC' => $category_rows[$i]['cat_title'],
334                  'U_VIEWCAT' => append_sid("index.$phpEx?" . POST_CAT_URL . "=$cat_id"))
335              );
336   
337              if ( $viewcat == $cat_id || $viewcat == -1 )
338              {
339                  for($j = 0; $j < $total_forums; $j++)
340                  {
341                      if ( $forum_data[$j]['cat_id'] == $cat_id )
342                      {
343                          $forum_id = $forum_data[$j]['forum_id'];
344   
345                          if ( $is_auth_ary[$forum_id]['auth_view'] )
346                          {
347                              if ( $forum_data[$j]['forum_status'] == FORUM_LOCKED )
348                              {
349                                  $folder_image = $images['forum_locked']; 
350                                  $folder_alt = $lang['Forum_locked'];
351                              }
352                              else
353                              {
354                                  $unread_topics = false;
355                                  if ( $userdata['session_logged_in'] )
356                                  {
357                                      if ( !empty($new_topic_data[$forum_id]) )
358                                      {
359                                          $forum_last_post_time = 0;
360   
361                                          while( list($check_topic_id, $check_post_time) = @each($new_topic_data[$forum_id]) )
362                                          {
363                                              if ( empty($tracking_topics[$check_topic_id]) )
364                                              {
365                                                  $unread_topics = true;
366                                                  $forum_last_post_time = max($check_post_time, $forum_last_post_time);
367   
368                                              }
369                                              else
370                                              {
371                                                  if ( $tracking_topics[$check_topic_id] < $check_post_time )
372                                                  {
373                                                      $unread_topics = true;
374                                                      $forum_last_post_time = max($check_post_time, $forum_last_post_time);
375                                                  }
376                                              }
377                                          }
378   
379                                          if ( !empty($tracking_forums[$forum_id]) )
380                                          {
381                                              if ( $tracking_forums[$forum_id] > $forum_last_post_time )
382                                              {
383                                                  $unread_topics = false;
384                                              }
385                                          }
386   
387                                          if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
388                                          {
389                                              if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $forum_last_post_time )
390                                              {
391                                                  $unread_topics = false;
392                                              }
393                                          }
394   
395                                      }
396                                  }
397   
398                                  $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum']; 
399                                  $folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts']; 
400                              }
401   
402                              $posts = $forum_data[$j]['forum_posts'];
403                              $topics = $forum_data[$j]['forum_topics'];
404   
405                              if ( $forum_data[$j]['forum_last_post_id'] )
406                              {
407                                  $last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']);
408   
409                                  $last_post = $last_post_time . '<br />';
410   
411                                  $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';
412                                  
413                                  $last_post .= '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>';
414                              }
415                              else
416                              {
417                                  $last_post = $lang['No_Posts'];
418                              }
419   
420                              if ( count($forum_moderators[$forum_id]) > 0 )
421                              {
422                                  $l_moderators = ( count($forum_moderators[$forum_id]) == 1 ) ? $lang['Moderator'] : $lang['Moderators'];
423                                  $moderator_list = implode(', ', $forum_moderators[$forum_id]);
424                              }
425                              else
426                              {
427                                  $l_moderators = '&nbsp;';
428                                  $moderator_list = '&nbsp;';
429                              }
430   
431                              $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
432                              $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
433   
434                              $template->assign_block_vars('catrow.forumrow',    array(
435                                  'ROW_COLOR' => '#' . $row_color,
436                                  'ROW_CLASS' => $row_class,
437                                  'FORUM_FOLDER_IMG' => $folder_image, 
438                                  'FORUM_NAME' => $forum_data[$j]['forum_name'],
439                                  'FORUM_DESC' => $forum_data[$j]['forum_desc'],
440                                  'POSTS' => $forum_data[$j]['forum_posts'],
441                                  'TOPICS' => $forum_data[$j]['forum_topics'],
442                                  'LAST_POST' => $last_post,
443                                  'MODERATORS' => $moderator_list,
444   
445                                  'L_MODERATOR' => $l_moderators, 
446                                  'L_FORUM_FOLDER_ALT' => $folder_alt, 
447   
448                                  'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
449                              );
450                          }
451                      }
452                  }
453              }
454          }
455      } // for ... categories
456   
457  }// if ... total_categories
458  else
459  {
460      message_die(GENERAL_MESSAGE, $lang['No_forums']);
461  }
462   
463  //
464  // Generate the page
465  //
466  $template->pparse('body');
467   
468  include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
469   
470  ?>