root/admin/admin_ranks.php

Revision 246, 7.6 kB (checked in by Nafania, 3 years ago)

--

Line 
1 <?php
2 /***************************************************************************</span>
3 <span class="code-comment"> *                              admin_ranks.php
4  *                            -------------------
5  *   begin                : Thursday, Jul 12, 2001
6  *   copyright            : (C) 2001 The phpBB Group
7  *   email                : support@phpbb.com
8  *
9  *   $Id: admin_ranks.php,v 1.13.2.8 2006/04/13 09:56:48 grahamje Exp $
10  *
11  ***************************************************************************/
12
13 /***************************************************************************
14  *
15  *   This program is free software; you can redistribute it and/or modify
16  *   it under the terms of the GNU General Public License as published by
17  *   the Free Software Foundation; either version 2 of the License, or
18  *   (at your option) any later version.
19  *
20  ***************************************************************************/
21
22 if( !empty($setmodules) )</span>
23 <span class="code-keyword">{
24     $file = basename(__FILE__);
25     $module['users']['ranks'] = $file;
26     return;
27 }
28
29 define('IN_PHPBB', 1);</span>
30 <span class="code-lang">
31 function resync_ranks_level () {
32     global $db, $cache;
33
34     $sql = 'SELECT COUNT(*) AS ranks_count FROM ' . RANKS_TABLE . ' WHERE rank_points < 0';
35     $result = $db->sql_query($sql);
36     $min_ranks_count = ( $row = $db->sql_fetchrow($result) ) ? -$row['ranks_count'] : 0;
37
38     $sql = 'SELECT rank_id, rank_points FROM ' . RANKS_TABLE . ' ORDER BY rank_points';
39     $result = $db->sql_query($sql);
40
41     $i = 0;
42     $counter = 0;
43
44     while ( $row = $db->sql_fetchrow($result) ) {
45         if ( $row['rank_points'] < 0 ) {
46             ++$min_ranks_count;
47             $counter = $min_ranks_count;
48         }
49         else {
50             ++$i;
51             $counter = $i;
52         }
53
54         --$counter;
55
56         $sql = 'UPDATE ' . RANKS_TABLE . ' SET rank_level = ' . $counter . ' WHERE rank_id = ' . $row['rank_id'];
57         $db->sql_query($sql);
58     }
59
60     $cache->destroy('_ranks');
61
62 }
63
64 //</span>
65 <span class="code-comment">// Let's set the root dir for phpBB
66 //
67 $root_path = './../';</span>
68 <span class="code-lang">require($root_path . 'extension.inc');
69 require('./pagestart.' . $phpEx);
70 $cancel = ( isset($_POST['cancel']) ) ? true : false;
71 $no_page_header = $cancel;</span>
72 <span class="code-lang">
73 if ($cancel)
74 {
75     redirect(append_sid("admin_ranks.$phpEx", true));
76 }
77
78 $mode = request_var('mode', '');
79 //</span>
80 <span class="code-comment">// These could be entered via a form button
81 //
82 if( isset($_POST['add']) )</span>
83 <span class="code-keyword">{
84     $mode = "add";
85 }
86 else if( isset($_POST['save']) )
87 {
88     $mode = "save";
89 }
90
91 // Restrict mode input to valid options
92 $mode = ( in_array($mode, array('add', 'edit', 'save', 'delete')) ) ? $mode : '';</span>
93 <span class="code-lang">
94 if( $mode != "" )
95 {
96     if( $mode == "edit" || $mode == "add" )
97     {
98         //
99         // They want to add a new rank, show the form.
100         //
101         $rank_id = request_var('id', 0);
102
103         $s_hidden_fields = "";
104
105         if( $mode == "edit" )
106         {
107             if( empty($rank_id) )
108             {
109                 trigger_error('Must_select_rank');
110             }
111
112             $sql = "SELECT * FROM " . RANKS_TABLE . "
113                 WHERE rank_id = $rank_id";
114             $result = $db->sql_query($sql);
115
116             $rank_info = $db->sql_fetchrow($result);
117             $s_hidden_fields .= '<input type="hidden" name="id" value="' . $rank_id . '" />';
118
119         }
120
121         $s_hidden_fields .= '<input type="hidden" name="mode" value="save" />';
122
123         $template->set_filenames(array(
124             "body" => "../admin/ranks_edit_body.html")
125         );
126
127         $fields_ary = array('rank_name', 'rank_points', 'rank_image', 'rank_simpaty_limit');
128         foreach ( $fields_ary AS $_null => $field ) {
129             $$field = ( isset($rank_info[$field]) ? $rank_info[$field] : '' );
130         }
131
132         $template->assign_vars(array(
133             "RANK" => $rank_name,
134             "MINIMUM" => $rank_points,
135             "SIMPATY_LIMIT" => $rank_simpaty_limit,
136             //"IMAGE" => $rank_image,
137             //"IMAGE_DISPLAY" => ( $rank_image != "" ) ? '<img src="../' . $rank_image . '" />' : "",
138
139             "S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"),
140             "S_HIDDEN_FIELDS" => $s_hidden_fields)
141         );
142
143     }
144     else if( $mode == "save" )
145     {
146         //
147         // Ok, they sent us our info, let's update it.
148         //
149
150         $rank_id = request_var('id', 0);
151         $rank_name = request_var('rank_name', '');
152         $rank_points = request_var('rank_points', '');
153         $rank_image = request_var('rank_image', '');
154         $rank_simpaty_limit = request_var('rank_simpaty_limit', 0);
155
156         if( $rank_name == "" )
157         {
158             trigger_error('Must_select_rank');
159         }
160
161         //
162         // The rank image has to be a jpg, gif or png
163         //
164         if($rank_image != "")
165         {
166             if ( !preg_match("/(\.gif|\.png|\.jpg)$/is", $rank_image))
167             {
168                 $rank_image = "";
169             }
170         }
171
172         $sql_ary = array('rank_name' => $rank_name, 'rank_points' => $rank_points, 'rank_image' => $rank_image, 'rank_simpaty_limit' => $rank_simpaty_limit);
173
174         if ($rank_id)
175         {
176             $sql = 'UPDATE ' . RANKS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE rank_id = ' . $rank_id;
177
178             $message = $lang['rank_updated'];
179         }
180         else
181         {
182             $sql = 'INSERT INTO ' . RANKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
183
184             $message = $lang['rank_added'];
185         }
186
187         $db->sql_query($sql);
188         resync_ranks_level();
189
190         $message .= "<br /><br />" . sprintf($lang['click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
191
192         trigger_error($message);
193
194     }
195     else if( $mode == "delete" )
196     {
197         //
198         // Ok, they want to delete their rank
199         //
200
201         $rank_id = request_var('id', 0);
202
203         $confirm = isset($_POST['confirm']);
204
205         if( $rank_id && $confirm )
206         {
207             $sql = "DELETE FROM " . RANKS_TABLE . "
208                 WHERE rank_id = $rank_id";
209
210             $db->sql_query($sql);
211             resync_ranks_level();
212
213             $message = $lang['rank_removed'] . "<br /><br />" . sprintf($lang['click_return_rankadmin'], "<a href=\"" . append_sid("admin_ranks.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
214
215             trigger_error($message);
216
217         }
218         elseif( $rank_id && !$confirm)
219         {
220             // Present the confirmation screen to the user
221             $template->set_filenames(array(
222                 'body' => '../admin/confirm_body.tpl')
223             );
224
225             $hidden_fields = '<input type="hidden" name="mode" value="delete" /><input type="hidden" name="id" value="' . $rank_id . '" />';
226
227             $template->assign_vars(array(
228                 'MESSAGE_TITLE' => $lang['confirm'],
229                 'MESSAGE_TEXT' => $lang['confirm_delete_rank'],
230
231                 'S_CONFIRM_ACTION' => append_sid("admin_ranks.$phpEx"),
232                 'S_HIDDEN_FIELDS' => $hidden_fields)
233             );
234         }
235         else
236         {
237             trigger_error('Must_select_rank');
238         }
239     }
240
241     $template->display("body");
242
243     include('./page_footer_admin.'.$phpEx);
244 }
245
246 //</span>
247 <span class="code-comment">// Show the default page
248 //
249 $template->set_filenames(array(</span>
250 <span class="code-lang">    "body" => "../admin/ranks_list_body.html")
251 );
252
253 $template->assign_vars(array(</span>
254 <span class="code-lang">    "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx"))
255 );
256
257 $sql = "SELECT * FROM " . RANKS_TABLE . "</span>
258 <span class="code-lang">    ORDER BY rank_points ASC";
259 $result = $db->sql_query($sql);
260
261 $i = 0;</span>
262 <span class="code-lang">
263 while ( $row = $db->sql_fetchrow($result) ) {
264     $rank = $row['rank_name'];
265     $rank_id = $row['rank_id'];
266     $rank_points = $row['rank_points'];
267
268     $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
269     $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
270
271     $template->assign_block_vars("ranks", array(
272         "ROW_COLOR" => "#" . $row_color,
273         "ROW_CLASS" => $row_class,
274         "RANK" => $rank,
275         "RANK_MIN" => $rank_points,
276         'SIMPATY_LIMIT' => $row['rank_simpaty_limit'],
277
278         "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&amp;id=$rank_id"),
279         "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&amp;id=$rank_id"))
280     );
281
282     ++$i;
283 }
284
285 $template->display("body");</span>
286 <span class="code-lang">
287 include('./page_footer_admin.'.$phpEx);
288
289 ?>
290
Note: See TracBrowser for help on using the browser.