Verzeichnisstruktur phpBB-3.0.0


Veröffentlicht
12.12.2007

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

ucp.php

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


001  <?php
002  /**
003  *
004  * @package ucp
005  * @version $Id$
006  * @copyright (c) 2005 phpBB Group
007  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
008  *
009  */
010   
011  /**
012  * @ignore
013  */
014  define('IN_PHPBB', true);
015  $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
016  $phpEx = substr(strrchr(__FILE__, '.'), 1);
017  require($phpbb_root_path . 'common.' . $phpEx);
018  require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
019  require($phpbb_root_path . 'includes/functions_module.' . $phpEx);
020   
021  // Basic parameter data
022  $id     = request_var('i', '');
023  $mode    = request_var('mode', '');
024   
025  if ($mode == 'login' || $mode == 'logout' || $mode == 'confirm')
026  {
027      define('IN_LOGIN', true);
028  }
029   
030  // Start session management
031  $user->session_begin();
032  $auth->acl($user->data);
033  $user->setup('ucp');
034   
035  // Setting a variable to let the style designer know where he is...
036  $template->assign_var('S_IN_UCP', true);
037   
038  $module = new p_master();
039   
040  // Basic "global" modes
041  switch ($mode)
042  {
043      case 'activate':
044          $module->load('ucp', 'activate');
045          $module->display($user->lang['UCP_ACTIVATE']);
046   
047          redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
048      break;
049   
050      case 'resend_act':
051          $module->load('ucp', 'resend');
052          $module->display($user->lang['UCP_RESEND']);
053      break;
054   
055      case 'sendpassword':
056          $module->load('ucp', 'remind');
057          $module->display($user->lang['UCP_REMIND']);
058      break;
059   
060      case 'register':
061          if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
062          {
063              redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
064          }
065   
066          $module->load('ucp', 'register');
067          $module->display($user->lang['REGISTER']);
068      break;
069   
070      case 'confirm':
071          $module->load('ucp', 'confirm');
072          exit_handler();
073      break;
074   
075      case 'login':
076          if ($user->data['is_registered'])
077          {
078              redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
079          }
080   
081          login_box(request_var('redirect', "index.$phpEx"));
082      break;
083   
084      case 'logout':
085          if ($user->data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user->session_id)
086          {
087              $user->session_kill();
088              $user->session_begin();
089              $message = $user->lang['LOGOUT_REDIRECT'];
090          }
091          else
092          {
093              $message = ($user->data['user_id'] == ANONYMOUS) ? $user->lang['LOGOUT_REDIRECT'] : $user->lang['LOGOUT_FAILED'];
094          }
095          meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
096      
097          $message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a> ');
098          trigger_error($message);
099   
100      break;
101   
102      case 'terms':
103      case 'privacy':
104   
105          $message = ($mode == 'terms') ? 'TERMS_OF_USE_CONTENT' : 'PRIVACY_POLICY';
106          $title = ($mode == 'terms') ? 'TERMS_USE' : 'PRIVACY';
107   
108          if (empty($user->lang[$message]))
109          {
110              if ($user->data['is_registered'])
111              {
112                  redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
113              }
114   
115              login_box();
116          }
117   
118          $template->set_filenames(array(
119              'body'        => 'ucp_agreement.html')
120          );
121   
122          // Disable online list
123          page_header($user->lang[$title], false);
124   
125          $template->assign_vars(array(
126              'S_AGREEMENT'            => true,
127              'AGREEMENT_TITLE'        => $user->lang[$title],
128              'AGREEMENT_TEXT'        => sprintf($user->lang[$message], $config['sitename'], generate_board_url()),
129              'U_BACK'                => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
130              'L_BACK'                => $user->lang['BACK_TO_LOGIN'])
131          );
132   
133          page_footer();
134   
135      break;
136   
137      case 'delete_cookies':
138          
139          // Delete Cookies with dynamic names (do NOT delete poll cookies)
140          if (confirm_box(true))
141          {
142              $set_time = time() - 31536000;
143   
144              foreach ($_COOKIE as $cookie_name => $cookie_data)
145              {
146                  $cookie_name = str_replace($config['cookie_name'] . '_', '', $cookie_name);
147   
148                  // Polls are stored as {cookie_name}_poll_{topic_id}, cookie_name_ got removed, therefore checking for poll_
149                  if (strpos($cookie_name, 'poll_') !== 0)
150                  {
151                      $user->set_cookie($cookie_name, '', $set_time);
152                  }
153              }
154   
155              $user->set_cookie('track', '', $set_time);
156              $user->set_cookie('u', '', $set_time);
157              $user->set_cookie('k', '', $set_time);
158              $user->set_cookie('sid', '', $set_time);
159   
160              // We destroy the session here, the user will be logged out nevertheless
161              $user->session_kill();
162              $user->session_begin();
163   
164              meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
165   
166              $message = $user->lang['COOKIES_DELETED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
167              trigger_error($message);
168          }
169          else
170          {
171              confirm_box(false, 'DELETE_COOKIES', '');
172          }
173   
174          redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
175   
176      break;
177   
178      case 'switch_perm':
179   
180          $user_id = request_var('u', 0);
181   
182          $sql = 'SELECT *
183              FROM ' . USERS_TABLE . '
184              WHERE user_id = ' . (int) $user_id;
185          $result = $db->sql_query($sql);
186          $user_row = $db->sql_fetchrow($result);
187          $db->sql_freeresult($result);
188   
189          if (!$auth->acl_get('a_switchperm') || !$user_row || $user_id == $user->data['user_id'])
190          {
191              redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
192          }
193   
194          include($phpbb_root_path . 'includes/acp/auth.' . $phpEx);
195   
196          $auth_admin = new auth_admin();
197          if (!$auth_admin->ghost_permissions($user_id, $user->data['user_id']))
198          {
199              redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
200          }
201   
202          add_log('admin', 'LOG_ACL_TRANSFER_PERMISSIONS', $user_row['username']);
203   
204          $message = sprintf($user->lang['PERMISSIONS_TRANSFERRED'], $user_row['username']) . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
205          trigger_error($message);
206   
207      break;
208   
209      case 'restore_perm':
210   
211          if (!$user->data['user_perm_from'] || !$auth->acl_get('a_switchperm'))
212          {
213              redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
214          }
215   
216          $auth->acl_cache($user->data);
217   
218          $sql = 'UPDATE ' . USERS_TABLE . "
219              SET user_perm_from = 0
220              WHERE user_id = " . $user->data['user_id'];
221          $db->sql_query($sql);
222   
223          $sql = 'SELECT username
224              FROM ' . USERS_TABLE . '
225              WHERE user_id = ' . $user->data['user_perm_from'];
226          $result = $db->sql_query($sql);
227          $username = $db->sql_fetchfield('username');
228          $db->sql_freeresult($result);
229   
230          add_log('admin', 'LOG_ACL_RESTORE_PERMISSIONS', $username);
231   
232          $message = $user->lang['PERMISSIONS_RESTORED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
233          trigger_error($message);
234   
235      break;
236  }
237   
238  // Only registered users can go beyond this point
239  if (!$user->data['is_registered'])
240  {
241      if ($user->data['is_bot'])
242      {
243          redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
244      }
245   
246      login_box('', $user->lang['LOGIN_EXPLAIN_UCP']);
247  }
248   
249  // Instantiate module system and generate list of available modules
250  $module->list_modules('ucp');
251   
252  // Check if the zebra module is set
253  if ($module->is_active('zebra', 'friends'))
254  {
255      // Output listing of friends online
256      $update_time = $config['load_online_time'] * 60;
257   
258      $sql = $db->sql_build_query('SELECT_DISTINCT', array(
259          'SELECT'    => 'u.user_id, u.username, u.username_clean, u.user_colour, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline',
260   
261          'FROM'        => array(
262              USERS_TABLE        => 'u',
263              ZEBRA_TABLE        => 'z'
264          ),
265   
266          'LEFT_JOIN'    => array(
267              array(
268                  'FROM'    => array(SESSIONS_TABLE => 's'),
269                  'ON'    => 's.session_user_id = z.zebra_id'
270              )
271          ),
272   
273          'WHERE'        => 'z.user_id = ' . $user->data['user_id'] . '
274              AND z.friend = 1
275              AND u.user_id = z.zebra_id',
276   
277          'GROUP_BY'    => 'z.zebra_id, u.user_id, u.username_clean, u.user_colour, u.username',
278   
279          'ORDER_BY'    => 'u.username_clean ASC',
280      ));
281   
282      $result = $db->sql_query($sql);
283   
284      while ($row = $db->sql_fetchrow($result))
285      {
286          $which = (time() - $update_time < $row['online_time'] && ($row['viewonline'] || $auth->acl_get('u_viewonline'))) ? 'online' : 'offline';
287   
288          $template->assign_block_vars("friends_{$which}", array(
289              'USER_ID'        => $row['user_id'],
290   
291              'U_PROFILE'        => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
292              'USER_COLOUR'    => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
293              'USERNAME'        => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
294              'USERNAME_FULL'    => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']))
295          );
296      }
297      $db->sql_freeresult($result);
298  }
299   
300  // Do not display subscribed topics/forums if not allowed
301  if (!$config['allow_topic_notify'] && !$config['allow_forum_notify'])
302  {
303      $module->set_display('main', 'subscribed', false);
304  }
305   
306  // Select the active module
307  $module->set_active($id, $mode);
308   
309  // Load and execute the relevant module
310  $module->load_active();
311   
312  // Assign data to the template engine for the list of modules
313  $module->assign_tpl_vars(append_sid("{$phpbb_root_path}ucp.$phpEx"));
314   
315  // Generate the page, do not display/query online list
316  $module->display($module->get_page_title(), false);
317   
318  /**
319  * Function for assigning a template var if the zebra module got included
320  */
321  function _module_zebra($mode, &$module_row)
322  {
323      global $template;
324   
325      $template->assign_var('S_ZEBRA_ENABLED', true);
326   
327      if ($mode == 'friends')
328      {
329          $template->assign_var('S_ZEBRA_FRIENDS_ENABLED', true);
330      }
331   
332      if ($mode == 'foes')
333      {
334          $template->assign_var('S_ZEBRA_FOES_ENABLED', true);
335      }
336  }
337   
338  ?>