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. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
acp_ranks.php
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 . '&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 . '&action=edit&id=' . $row['rank_id'],
235 'U_DELETE' => $this->u_action . '&action=delete&id=' . $row['rank_id'])
236 );
237 }
238 $db->sql_freeresult($result);
239
240 }
241 }
242
243 ?>