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_ranks.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 6.05 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_ranks
023  {
024      var $u_action;
025   
026      function main($id, $mode)
027      {
028          global $db, $user, $auth, $template, $cache;
029          global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
030   
031          $user->add_lang('acp/posting');
032   
033          // Set up general vars
034          $action = request_var('action', '');
035          $action = (isset($_POST['add'])) ? 'add' : $action;
036          $action = (isset($_POST['save'])) ? 'save' : $action;
037          $rank_id = request_var('id', 0);
038   
039          $this->tpl_name = 'acp_ranks';
040          $this->page_title = 'ACP_MANAGE_RANKS';
041   
042          $form_name = 'acp_prune';
043          add_form_key($form_name);
044   
045          switch ($action)
046          {
047              case 'save':
048   
049                  if (!check_form_key($form_name))
050                  {
051                      trigger_error($user->lang['FORM_INVALID']. adm_back_link($this->u_action), E_USER_WARNING);
052                  }
053                  $rank_title = utf8_normalize_nfc(request_var('title', '', true));
054                  $special_rank = request_var('special_rank', 0);
055                  $min_posts = ($special_rank) ? 0 : request_var('min_posts', 0);
056                  $rank_image = request_var('rank_image', '');
057   
058                  // The rank image has to be a jpg, gif or png
059                  if ($rank_image != '' && !preg_match('#(\.gif|\.png|\.jpg|\.jpeg)$#i', $rank_image))
060                  {
061                      $rank_image = '';
062                  }
063   
064                  if (!$rank_title)
065                  {
066                      trigger_error($user->lang['NO_RANK_TITLE'] . adm_back_link($this->u_action), E_USER_WARNING);
067                  }
068   
069                  $sql_ary = array(
070                      'rank_title'        => $rank_title,
071                      'rank_special'        => $special_rank,
072                      'rank_min'            => $min_posts,
073                      'rank_image'        => htmlspecialchars_decode($rank_image)
074                  );
075                  
076                  if ($rank_id)
077                  {
078                      $sql = 'UPDATE ' . RANKS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE rank_id = $rank_id";
079                      $message = $user->lang['RANK_UPDATED'];
080   
081                      add_log('admin', 'LOG_RANK_UPDATED', $rank_title);
082                  }
083                  else
084                  {
085                      $sql = 'INSERT INTO ' . RANKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
086                      $message = $user->lang['RANK_ADDED'];
087   
088                      add_log('admin', 'LOG_RANK_ADDED', $rank_title);
089                  }
090                  $db->sql_query($sql);
091   
092                  $cache->destroy('_ranks');
093   
094                  trigger_error($message . adm_back_link($this->u_action));
095   
096              break;
097   
098              case 'delete':
099   
100                  if (!$rank_id)
101                  {
102                      trigger_error($user->lang['MUST_SELECT_RANK'] . adm_back_link($this->u_action), E_USER_WARNING);
103                  }
104   
105                  if (confirm_box(true))
106                  {
107                      $sql = 'SELECT rank_title
108                          FROM ' . RANKS_TABLE . '
109                          WHERE rank_id = ' . $rank_id;
110                      $result = $db->sql_query($sql);
111                      $rank_title = (string) $db->sql_fetchfield('rank_title');
112                      $db->sql_freeresult($result);
113   
114                      $sql = 'DELETE FROM ' . RANKS_TABLE . "
115                          WHERE rank_id = $rank_id";
116                      $db->sql_query($sql);
117   
118                      $sql = 'UPDATE ' . USERS_TABLE . "
119                          SET user_rank = 0
120                          WHERE user_rank = $rank_id";
121                      $db->sql_query($sql);
122   
123                      $cache->destroy('_ranks');
124   
125                      add_log('admin', 'LOG_RANK_REMOVED', $rank_title);
126                  }
127                  else
128                  {
129                      confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
130                          'i'            => $id,
131                          'mode'        => $mode,
132                          'rank_id'    => $rank_id,
133                          'action'    => 'delete',
134                      )));
135                  }
136   
137              break;
138   
139              case 'edit':
140              case 'add':
141   
142                  $data = $ranks = $existing_imgs = array();
143                  
144                  $sql = 'SELECT *
145                      FROM ' . RANKS_TABLE . '
146                      ORDER BY rank_min ASC, rank_special ASC';
147                  $result = $db->sql_query($sql);
148   
149                  while ($row = $db->sql_fetchrow($result))
150                  {
151                      $existing_imgs[] = $row['rank_image'];
152   
153                      if ($action == 'edit' && $rank_id == $row['rank_id'])
154                      {
155                          $ranks = $row;
156                      }
157                  }
158                  $db->sql_freeresult($result);
159   
160                  $imglist = filelist($phpbb_root_path . $config['ranks_path'], '');
161                  $edit_img = $filename_list = '';
162   
163                  foreach ($imglist as $path => $img_ary)
164                  {
165                      sort($img_ary);
166   
167                      foreach ($img_ary as $img)
168                      {
169                          $img = $path . $img;
170   
171                          if (!in_array($img, $existing_imgs) || $action == 'edit')
172                          {
173                              if ($ranks && $img == $ranks['rank_image'])
174                              {
175                                  $selected = ' selected="selected"';
176                                  $edit_img = $img;
177                              }
178                              else
179                              {
180                                  $selected = '';
181                              }
182   
183                              if (strlen($img) > 255)
184                              {
185                                  continue;
186                              }
187   
188                              $filename_list .= '<option value="' . htmlspecialchars($img) . '"' . $selected . '>' . $img . '</option>';
189                          }
190                      }
191                  }
192   
193                  $filename_list = '<option value=""' . (($edit_img == '') ? ' selected="selected"' : '') . '>----------</option>' . $filename_list;
194                  unset($existing_imgs, $imglist);
195   
196                  $template->assign_vars(array(
197                      'S_EDIT'            => true,
198                      'U_BACK'            => $this->u_action,
199                      'RANKS_PATH'        => $phpbb_root_path . $config['ranks_path'],
200                      'U_ACTION'            => $this->u_action . '&amp;id=' . $rank_id,
201   
202                      'RANK_TITLE'        => (isset($ranks['rank_title'])) ? $ranks['rank_title'] : '',
203                      'S_FILENAME_LIST'    => $filename_list,
204                      'RANK_IMAGE'        => ($edit_img) ? $phpbb_root_path . $config['ranks_path'] . '/' . $edit_img : $phpbb_admin_path . 'images/spacer.gif',
205                      'S_SPECIAL_RANK'    => (!isset($ranks['rank_special']) || $ranks['rank_special']) ? true : false,
206                      'MIN_POSTS'            => (isset($ranks['rank_min']) && !$ranks['rank_special']) ? $ranks['rank_min'] : 0)
207                  );
208                          
209   
210                  return;
211   
212              break;
213          }
214      
215          $template->assign_vars(array(
216              'U_ACTION'        => $this->u_action)
217          );
218   
219          $sql = 'SELECT *
220              FROM ' . RANKS_TABLE . '
221              ORDER BY rank_special DESC, rank_min ASC, rank_title ASC';
222          $result = $db->sql_query($sql);
223   
224          while ($row = $db->sql_fetchrow($result))
225          {
226              $template->assign_block_vars('ranks', array(
227                  'S_RANK_IMAGE'        => ($row['rank_image']) ? true : false,
228                  'S_SPECIAL_RANK'    => ($row['rank_special']) ? true : false,
229   
230                  'RANK_IMAGE'        => $phpbb_root_path . $config['ranks_path'] . '/' . $row['rank_image'],
231                  'RANK_TITLE'        => $row['rank_title'],
232                  'MIN_POSTS'            => $row['rank_min'],
233   
234                  'U_EDIT'            => $this->u_action . '&amp;action=edit&amp;id=' . $row['rank_id'],
235                  'U_DELETE'            => $this->u_action . '&amp;action=delete&amp;id=' . $row['rank_id'])
236              );    
237          }
238          $db->sql_freeresult($result);
239   
240      }
241  }
242   
243  ?>