Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

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: 6.94 KiB


001  <?php
002  /**
003  *
004  * This file is part of the phpBB Forum Software package.
005  *
006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
007  * @license GNU General Public License, version 2 (GPL-2.0)
008  *
009  * For full copyright and license information, please see
010  * the docs/CREDITS.txt file.
011  *
012  */
013   
014  /**
015  */
016   
017  /**
018  * @ignore
019  */
020  define('IN_PHPBB', true);
021  $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
022  $phpEx = substr(strrchr(__FILE__, '.'), 1);
023  include($phpbb_root_path . 'common.' . $phpEx);
024  include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
025   
026  // Start session management
027  $user->session_begin();
028  $auth->acl($user->data);
029  $user->setup('viewforum');
030   
031  // Mark notifications read
032  if (($mark_notification = $request->variable('mark_notification', 0)))
033  {
034      if ($user->data['user_id'] == ANONYMOUS)
035      {
036          if ($request->is_ajax())
037          {
038              trigger_error('LOGIN_REQUIRED');
039          }
040          login_box('', $user->lang['LOGIN_REQUIRED']);
041      }
042   
043      if (check_link_hash($request->variable('hash', ''), 'mark_notification_read'))
044      {
045          $phpbb_notifications = $phpbb_container->get('notification_manager');
046   
047          $notification = $phpbb_notifications->load_notifications(array(
048              'notification_id'    => $mark_notification,
049          ));
050   
051          if (isset($notification['notifications'][$mark_notification]))
052          {
053              $notification = $notification['notifications'][$mark_notification];
054   
055              $notification->mark_read();
056   
057              if ($request->is_ajax())
058              {
059                  $json_response = new \phpbb\json_response();
060                  $json_response->send(array(
061                      'success'    => true,
062                  ));
063              }
064   
065              if (($redirect = $request->variable('redirect', '')))
066              {
067                  redirect(append_sid($phpbb_root_path . $redirect));
068              }
069   
070              redirect($notification->get_redirect_url());
071          }
072      }
073  }
074   
075  display_forums('', $config['load_moderators']);
076   
077  $order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
078  // Grab group details for legend display
079  if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
080  {
081      $sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend
082          FROM ' . GROUPS_TABLE . '
083          WHERE group_legend > 0
084          ORDER BY ' . $order_legend . ' ASC';
085  }
086  else
087  {
088      $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, g.group_legend
089          FROM ' . GROUPS_TABLE . ' g
090          LEFT JOIN ' . USER_GROUP_TABLE . ' ug
091              ON (
092                  g.group_id = ug.group_id
093                  AND ug.user_id = ' . $user->data['user_id'] . '
094                  AND ug.user_pending = 0
095              )
096          WHERE g.group_legend > 0
097              AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
098          ORDER BY g.' . $order_legend . ' ASC';
099  }
100  $result = $db->sql_query($sql);
101   
102  $legend = array();
103  while ($row = $db->sql_fetchrow($result))
104  {
105      $colour_text = ($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . '"' : '';
106      $group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
107   
108      if ($row['group_name'] == 'BOTS' || ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')))
109      {
110          $legend[] = '<span' . $colour_text . '>' . $group_name . '</span>';
111      }
112      else
113      {
114          $legend[] = '<a' . $colour_text . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $row['group_id']) . '">' . $group_name . '</a>';
115      }
116  }
117  $db->sql_freeresult($result);
118   
119  $legend = implode($user->lang['COMMA_SEPARATOR'], $legend);
120   
121  // Generate birthday list if required ...
122  $birthday_list = array();
123  if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
124  {
125      $time = $user->create_datetime();
126      $now = phpbb_gmgetdate($time->getTimestamp() + $time->getOffset());
127   
128      // Display birthdays of 29th february on 28th february in non-leap-years
129      $leap_year_birthdays = '';
130      if ($now['mday'] == 28 && $now['mon'] == 2 && !$time->format('L'))
131      {
132          $leap_year_birthdays = " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'";
133      }
134   
135      $sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
136          FROM ' . USERS_TABLE . ' u
137          LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
138          WHERE (b.ban_id IS NULL
139              OR b.ban_exclude = 1)
140              AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays)
141              AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
142      $result = $db->sql_query($sql);
143   
144      while ($row = $db->sql_fetchrow($result))
145      {
146          $birthday_username    = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
147          $birthday_year        = (int) substr($row['user_birthday'], -4);
148          $birthday_age        = ($birthday_year) ? max(0, $now['year'] - $birthday_year) : '';
149   
150          $template->assign_block_vars('birthdays', array(
151              'USERNAME'    => $birthday_username,
152              'AGE'        => $birthday_age,
153          ));
154   
155          // For 3.0 compatibility
156          if ($age = (int) substr($row['user_birthday'], -4))
157          {
158              $birthday_list[] = $birthday_username . (($birthday_year) ? ' (' . $birthday_age . ')' : '');
159          }
160      }
161      $db->sql_freeresult($result);
162  }
163   
164  // Assign index specific vars
165  $template->assign_vars(array(
166      'TOTAL_POSTS'    => $user->lang('TOTAL_POSTS_COUNT', (int) $config['num_posts']),
167      'TOTAL_TOPICS'    => $user->lang('TOTAL_TOPICS', (int) $config['num_topics']),
168      'TOTAL_USERS'    => $user->lang('TOTAL_USERS', (int) $config['num_users']),
169      'NEWEST_USER'    => $user->lang('NEWEST_USER', get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),
170   
171      'LEGEND'        => $legend,
172      'BIRTHDAY_LIST'    => (empty($birthday_list)) ? '' : implode($user->lang['COMMA_SEPARATOR'], $birthday_list),
173   
174      'FORUM_IMG'                => $user->img('forum_read', 'NO_UNREAD_POSTS'),
175      'FORUM_UNREAD_IMG'            => $user->img('forum_unread', 'UNREAD_POSTS'),
176      'FORUM_LOCKED_IMG'        => $user->img('forum_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
177      'FORUM_UNREAD_LOCKED_IMG'    => $user->img('forum_unread_locked', 'UNREAD_POSTS_LOCKED'),
178   
179      'S_LOGIN_ACTION'            => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
180      'U_SEND_PASSWORD'           => ($config['email_enable']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=sendpassword') : '',
181      'S_DISPLAY_BIRTHDAY_LIST'    => ($config['load_birthdays']) ? true : false,
182      'S_INDEX'                    => true,
183   
184      'U_MARK_FORUMS'        => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&amp;mark=forums&amp;mark_time=' . time()) : '',
185      'U_MCP'                => ($auth->acl_get('m_') || $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&amp;mode=front', true, $user->session_id) : '')
186  );
187   
188  $page_title = $user->lang['INDEX'];
189   
190  /**
191  * You can use this event to modify the page title and load data for the index
192  *
193  * @event core.index_modify_page_title
194  * @var    string    page_title        Title of the index page
195  * @since 3.1.0-a1
196  */
197  $vars = array('page_title');
198  extract($phpbb_dispatcher->trigger_event('core.index_modify_page_title', compact($vars)));
199   
200  // Output page
201  page_header($page_title, true);
202   
203  $template->set_filenames(array(
204      'body' => 'index_body.html')
205  );
206   
207  page_footer();
208