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  ?>