Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

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: 8.10 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          /* @var $phpbb_notifications \phpbb\notification\manager */
046          $phpbb_notifications = $phpbb_container->get('notification_manager');
047   
048          $notification = $phpbb_notifications->load_notifications('notification.method.board', array(
049              'notification_id'    => $mark_notification,
050          ));
051   
052          if (isset($notification['notifications'][$mark_notification]))
053          {
054              $notification = $notification['notifications'][$mark_notification];
055   
056              $notification->mark_read();
057   
058              if ($request->is_ajax())
059              {
060                  $json_response = new \phpbb\json_response();
061                  $json_response->send(array(
062                      'success'    => true,
063                  ));
064              }
065   
066              if (($redirect = $request->variable('redirect', '')))
067              {
068                  redirect(append_sid($phpbb_root_path . $redirect));
069              }
070   
071              redirect($notification->get_redirect_url());
072          }
073      }
074  }
075   
076  display_forums('', $config['load_moderators']);
077   
078  $order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
079  // Grab group details for legend display
080  if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
081  {
082      $sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend
083          FROM ' . GROUPS_TABLE . '
084          WHERE group_legend > 0
085          ORDER BY ' . $order_legend . ' ASC';
086  }
087  else
088  {
089      $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, g.group_legend
090          FROM ' . GROUPS_TABLE . ' g
091          LEFT JOIN ' . USER_GROUP_TABLE . ' ug
092              ON (
093                  g.group_id = ug.group_id
094                  AND ug.user_id = ' . $user->data['user_id'] . '
095                  AND ug.user_pending = 0
096              )
097          WHERE g.group_legend > 0
098              AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
099          ORDER BY g.' . $order_legend . ' ASC';
100  }
101  $result = $db->sql_query($sql);
102   
103  /** @var \phpbb\group\helper $group_helper */
104  $group_helper = $phpbb_container->get('group_helper');
105   
106  $legend = array();
107  while ($row = $db->sql_fetchrow($result))
108  {
109      $colour_text = ($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . '"' : '';
110      $group_name = $group_helper->get_name($row['group_name']);
111   
112      if ($row['group_name'] == 'BOTS' || ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')))
113      {
114          $legend[] = '<span' . $colour_text . '>' . $group_name . '</span>';
115      }
116      else
117      {
118          $legend[] = '<a' . $colour_text . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $row['group_id']) . '">' . $group_name . '</a>';
119      }
120  }
121  $db->sql_freeresult($result);
122   
123  $legend = implode($user->lang['COMMA_SEPARATOR'], $legend);
124   
125  // Generate birthday list if required ...
126  $birthdays = $birthday_list = array();
127  if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
128  {
129      $time = $user->create_datetime();
130      $now = phpbb_gmgetdate($time->getTimestamp() + $time->getOffset());
131   
132      // Display birthdays of 29th february on 28th february in non-leap-years
133      $leap_year_birthdays = '';
134      if ($now['mday'] == 28 && $now['mon'] == 2 && !$time->format('L'))
135      {
136          $leap_year_birthdays = " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'";
137      }
138   
139      $sql_ary = array(
140          'SELECT' => 'u.user_id, u.username, u.user_colour, u.user_birthday',
141          'FROM' => array(
142              USERS_TABLE => 'u',
143          ),
144          'LEFT_JOIN' => array(
145              array(
146                  'FROM' => array(BANLIST_TABLE => 'b'),
147                  'ON' => 'u.user_id = b.ban_userid',
148              ),
149          ),
150          'WHERE' => "(b.ban_id IS NULL OR b.ban_exclude = 1)
151              AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays)
152              AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')',
153      );
154   
155      /**
156      * Event to modify the SQL query to get birthdays data
157      *
158      * @event core.index_modify_birthdays_sql
159      * @var    array    now            The assoc array with the 'now' local timestamp data
160      * @var    array    sql_ary        The SQL array to get the birthdays data
161      * @var    object    time        The user related Datetime object
162      * @since 3.1.7-RC1
163      */
164      $vars = array('now', 'sql_ary', 'time');
165      extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_sql', compact($vars)));
166   
167      $sql = $db->sql_build_query('SELECT', $sql_ary);
168      $result = $db->sql_query($sql);
169      $rows = $db->sql_fetchrowset($result);
170      $db->sql_freeresult($result);
171   
172      foreach ($rows as $row)
173      {
174          $birthday_username    = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
175          $birthday_year        = (int) substr($row['user_birthday'], -4);
176          $birthday_age        = ($birthday_year) ? max(0, $now['year'] - $birthday_year) : '';
177   
178          $birthdays[] = array(
179              'USERNAME'    => $birthday_username,
180              'AGE'        => $birthday_age,
181          );
182   
183          // For 3.0 compatibility
184          $birthday_list[] = $birthday_username . (($birthday_age) ? " ({$birthday_age})" : '');
185      }
186   
187      /**
188      * Event to modify the birthdays list
189      *
190      * @event core.index_modify_birthdays_list
191      * @var    array    birthdays        Array with the users birthdays data
192      * @var    array    rows            Array with the birthdays SQL query result
193      * @since 3.1.7-RC1
194      */
195      $vars = array('birthdays', 'rows');
196      extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_list', compact($vars)));
197   
198      $template->assign_block_vars_array('birthdays', $birthdays);
199  }
200   
201  // Assign index specific vars
202  $template->assign_vars(array(
203      'TOTAL_POSTS'    => $user->lang('TOTAL_POSTS_COUNT', (int) $config['num_posts']),
204      'TOTAL_TOPICS'    => $user->lang('TOTAL_TOPICS', (int) $config['num_topics']),
205      'TOTAL_USERS'    => $user->lang('TOTAL_USERS', (int) $config['num_users']),
206      'NEWEST_USER'    => $user->lang('NEWEST_USER', get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),
207   
208      'LEGEND'        => $legend,
209      'BIRTHDAY_LIST'    => (empty($birthday_list)) ? '' : implode($user->lang['COMMA_SEPARATOR'], $birthday_list),
210   
211      'FORUM_IMG'                => $user->img('forum_read', 'NO_UNREAD_POSTS'),
212      'FORUM_UNREAD_IMG'            => $user->img('forum_unread', 'UNREAD_POSTS'),
213      'FORUM_LOCKED_IMG'        => $user->img('forum_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
214      'FORUM_UNREAD_LOCKED_IMG'    => $user->img('forum_unread_locked', 'UNREAD_POSTS_LOCKED'),
215   
216      'S_LOGIN_ACTION'            => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
217      'U_SEND_PASSWORD'           => ($config['email_enable']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=sendpassword') : '',
218      'S_DISPLAY_BIRTHDAY_LIST'    => ($config['load_birthdays']) ? true : false,
219      'S_INDEX'                    => true,
220   
221      '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()) : '',
222      '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) : '')
223  );
224   
225  $page_title = ($config['board_index_text'] !== '') ? $config['board_index_text'] : $user->lang['INDEX'];
226   
227  /**
228  * You can use this event to modify the page title and load data for the index
229  *
230  * @event core.index_modify_page_title
231  * @var    string    page_title        Title of the index page
232  * @since 3.1.0-a1
233  */
234  $vars = array('page_title');
235  extract($phpbb_dispatcher->trigger_event('core.index_modify_page_title', compact($vars)));
236   
237  // Output page
238  page_header($page_title, true);
239   
240  $template->set_filenames(array(
241      'body' => 'index_body.html')
242  );
243   
244  page_footer();
245