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

acp_ban.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 6.16 KiB


 001  <?php
 002  /**
 003  *
 004  * @package acp
 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  if (!defined('IN_PHPBB'))
 015  {
 016      exit;
 017  }
 018   
 019  /**
 020  * @package acp
 021  */
 022  class acp_ban
 023  {
 024      var $u_action;
 025   
 026      function main($id, $mode)
 027      {
 028          global $config, $db, $user, $auth, $template, $cache;
 029          global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix;
 030   
 031          include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
 032   
 033          $bansubmit    = (isset($_POST['bansubmit'])) ? true : false;
 034          $unbansubmit = (isset($_POST['unbansubmit'])) ? true : false;
 035          $current_time = time();
 036   
 037          $user->add_lang(array('acp/ban', 'acp/users'));
 038          $this->tpl_name = 'acp_ban';
 039          $form_key = 'acp_ban';
 040          add_form_key($form_key);
 041   
 042          if (($bansubmit || $unbansubmit) && !check_form_key($form_key))
 043          {
 044              trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
 045          }
 046   
 047          // Ban submitted?
 048          if ($bansubmit)
 049          {
 050              // Grab the list of entries
 051              $ban                = utf8_normalize_nfc(request_var('ban', '', true));
 052              $ban_len            = request_var('banlength', 0);
 053              $ban_len_other        = request_var('banlengthother', '');
 054              $ban_exclude        = request_var('banexclude', 0);
 055              $ban_reason            = utf8_normalize_nfc(request_var('banreason', '', true));
 056              $ban_give_reason    = utf8_normalize_nfc(request_var('bangivereason', '', true));
 057   
 058              if ($ban)
 059              {
 060                  user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason);
 061   
 062                  trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
 063              }
 064          }
 065          else if ($unbansubmit)
 066          {
 067              $ban = request_var('unban', array(''));
 068   
 069              if ($ban)
 070              {
 071                  user_unban($mode, $ban);
 072   
 073                  trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
 074              }
 075          }
 076   
 077          // Define language vars
 078          $this->page_title = $user->lang[strtoupper($mode) . '_BAN'];
 079   
 080          $l_ban_explain = $user->lang[strtoupper($mode) . '_BAN_EXPLAIN'];
 081          $l_ban_exclude_explain = $user->lang[strtoupper($mode) . '_BAN_EXCLUDE_EXPLAIN'];
 082          $l_unban_title = $user->lang[strtoupper($mode) . '_UNBAN'];
 083          $l_unban_explain = $user->lang[strtoupper($mode) . '_UNBAN_EXPLAIN'];
 084          $l_no_ban_cell = $user->lang[strtoupper($mode) . '_NO_BANNED'];
 085   
 086          switch ($mode)
 087          {
 088              case 'user':
 089                  $l_ban_cell = $user->lang['USERNAME'];
 090              break;
 091   
 092              case 'ip':
 093                  $l_ban_cell = $user->lang['IP_HOSTNAME'];
 094              break;
 095   
 096              case 'email':
 097                  $l_ban_cell = $user->lang['EMAIL_ADDRESS'];
 098              break;
 099          }
 100   
 101          $this->display_ban_options($mode);
 102   
 103          $template->assign_vars(array(
 104              'L_TITLE'                => $this->page_title,
 105              'L_EXPLAIN'                => $l_ban_explain,
 106              'L_UNBAN_TITLE'            => $l_unban_title,
 107              'L_UNBAN_EXPLAIN'        => $l_unban_explain,
 108              'L_BAN_CELL'            => $l_ban_cell,
 109              'L_BAN_EXCLUDE_EXPLAIN'    => $l_ban_exclude_explain,
 110              'L_NO_BAN_CELL'            => $l_no_ban_cell,
 111   
 112              'S_USERNAME_BAN'    => ($mode == 'user') ? true : false,
 113              
 114              'U_ACTION'            => $this->u_action,
 115              'U_FIND_USERNAME'    => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&amp;form=acp_ban&amp;field=ban'),
 116          ));
 117      }
 118   
 119      /**
 120      * Display ban options
 121      */
 122      function display_ban_options($mode)
 123      {
 124          global $user, $db, $template;
 125   
 126          // Ban length options
 127          $ban_end_text = array(0 => $user->lang['PERMANENT'], 30 => $user->lang['30_MINS'], 60 => $user->lang['1_HOUR'], 360 => $user->lang['6_HOURS'], 1440 => $user->lang['1_DAY'], 10080 => $user->lang['7_DAYS'], 20160 => $user->lang['2_WEEKS'], 40320 => $user->lang['1_MONTH'], -1 => $user->lang['UNTIL'] . ' -&gt; ');
 128   
 129          $ban_end_options = '';
 130          foreach ($ban_end_text as $length => $text)
 131          {
 132              $ban_end_options .= '<option value="' . $length . '">' . $text . '</option>';
 133          }
 134   
 135          switch ($mode)
 136          {
 137              case 'user':
 138   
 139                  $field = 'username';
 140                  $l_ban_cell = $user->lang['USERNAME'];
 141   
 142                  $sql = 'SELECT b.*, u.user_id, u.username, u.username_clean
 143                      FROM ' . BANLIST_TABLE . ' b, ' . USERS_TABLE . ' u
 144                      WHERE (b.ban_end >= ' . time() . '
 145                              OR b.ban_end = 0)
 146                          AND u.user_id = b.ban_userid
 147                      ORDER BY u.username_clean ASC';
 148              break;
 149   
 150              case 'ip':
 151   
 152                  $field = 'ban_ip';
 153                  $l_ban_cell = $user->lang['IP_HOSTNAME'];
 154   
 155                  $sql = 'SELECT *
 156                      FROM ' . BANLIST_TABLE . '
 157                      WHERE (ban_end >= ' . time() . "
 158                              OR ban_end = 0)
 159                          AND ban_ip <> ''";
 160              break;
 161   
 162              case 'email':
 163   
 164                  $field = 'ban_email';
 165                  $l_ban_cell = $user->lang['EMAIL_ADDRESS'];
 166   
 167                  $sql = 'SELECT *
 168                      FROM ' . BANLIST_TABLE . '
 169                      WHERE (ban_end >= ' . time() . "
 170                              OR ban_end = 0)
 171                          AND ban_email <> ''";
 172              break;
 173          }
 174          $result = $db->sql_query($sql);
 175   
 176          $banned_options = '';
 177          $ban_length = $ban_reasons = $ban_give_reasons = array();
 178   
 179          while ($row = $db->sql_fetchrow($result))
 180          {
 181              $banned_options .= '<option' . (($row['ban_exclude']) ? ' class="sep"' : '') . ' value="' . $row['ban_id'] . '">' . $row[$field] . '</option>';
 182   
 183              $time_length = ($row['ban_end']) ? ($row['ban_end'] - $row['ban_start']) / 60 : 0;
 184              $ban_length[$row['ban_id']] = (isset($ban_end_text[$time_length])) ? $ban_end_text[$time_length] : $user->lang['UNTIL'] . ' -> ' . $user->format_date($row['ban_end']);
 185   
 186              $ban_reasons[$row['ban_id']] = $row['ban_reason'];
 187              $ban_give_reasons[$row['ban_id']] = $row['ban_give_reason'];
 188          }
 189          $db->sql_freeresult($result);
 190   
 191          if (sizeof($ban_length))
 192          {
 193              foreach ($ban_length as $ban_id => $length)
 194              {
 195                  $template->assign_block_vars('ban_length', array(
 196                      'BAN_ID'    => (int) $ban_id,
 197                      'LENGTH'    => $length,
 198                      'A_LENGTH'    => addslashes($length),
 199                  ));
 200              }
 201          }
 202   
 203          if (sizeof($ban_reasons))
 204          {
 205              foreach ($ban_reasons as $ban_id => $reason)
 206              {
 207                  $template->assign_block_vars('ban_reason', array(
 208                      'BAN_ID'    => $ban_id,
 209                      'REASON'    => $reason,
 210                      'A_REASON'    => addslashes(htmlspecialchars_decode($reason)),
 211                  ));
 212              }
 213          }
 214   
 215          if (sizeof($ban_give_reasons))
 216          {
 217              foreach ($ban_give_reasons as $ban_id => $reason)
 218              {
 219                  $template->assign_block_vars('ban_give_reason', array(
 220                      'BAN_ID'    => $ban_id,
 221                      'REASON'    => $reason,
 222                      'A_REASON'    => addslashes(htmlspecialchars_decode($reason)),
 223                  ));
 224              }
 225          }
 226   
 227          $template->assign_vars(array(
 228              'S_BAN_END_OPTIONS'    => $ban_end_options,
 229              'S_BANNED_OPTIONS'    => ($banned_options) ? true : false,
 230              'BANNED_OPTIONS'    => $banned_options)
 231          );
 232      }
 233  }
 234   
 235  ?>