~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/php/phpBB3/includes/acp/acp_ranks.php

  • Committer: William Grant
  • Date: 2009-02-23 23:47:02 UTC
  • mfrom: (1099.1.211 new-dispatch)
  • Revision ID: grantw@unimelb.edu.au-20090223234702-db4b1llly46ignwo
Merge from lp:~ivle-dev/ivle/new-dispatch.

Pretty much everything changes. Reread the setup docs. Backup your databases.
Every file is now in a different installed location, the configuration system
is rewritten, the dispatch system is rewritten, URLs are different, the
database is different, worksheets and exercises are no longer on the
filesystem, we use a templating engine, jail service protocols are rewritten,
we don't repeat ourselves, we have authorization rewritten, phpBB is gone,
and probably lots of other things that I cannot remember.

This is certainly the biggest commit I have ever made, and hopefully
the largest I ever will.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
/**
3
 
*
4
 
* @package acp
5
 
* @version $Id: acp_ranks.php,v 1.18 2007/10/14 10:07:52 kellanved Exp $
6
 
* @copyright (c) 2005 phpBB Group
7
 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
8
 
*
9
 
*/
10
 
 
11
 
/**
12
 
* @ignore
13
 
*/
14
 
if (!defined('IN_PHPBB'))
15
 
{
16
 
        exit;
17
 
}
18
 
 
19
 
/**
20
 
* @package acp
21
 
*/
22
 
class acp_ranks
23
 
{
24
 
        var $u_action;
25
 
 
26
 
        function main($id, $mode)
27
 
        {
28
 
                global $db, $user, $auth, $template, $cache;
29
 
                global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
30
 
 
31
 
                $user->add_lang('acp/posting');
32
 
 
33
 
                // Set up general vars
34
 
                $action = request_var('action', '');
35
 
                $action = (isset($_POST['add'])) ? 'add' : $action;
36
 
                $action = (isset($_POST['save'])) ? 'save' : $action;
37
 
                $rank_id = request_var('id', 0);
38
 
 
39
 
                $this->tpl_name = 'acp_ranks';
40
 
                $this->page_title = 'ACP_MANAGE_RANKS';
41
 
 
42
 
                $form_name = 'acp_prune';
43
 
                add_form_key($form_name);
44
 
 
45
 
                switch ($action)
46
 
                {
47
 
                        case 'save':
48
 
 
49
 
                                if (!check_form_key($form_name))
50
 
                                {
51
 
                                        trigger_error($user->lang['FORM_INVALID']. adm_back_link($this->u_action), E_USER_WARNING);
52
 
                                }
53
 
                                $rank_title = utf8_normalize_nfc(request_var('title', '', true));
54
 
                                $special_rank = request_var('special_rank', 0);
55
 
                                $min_posts = ($special_rank) ? 0 : request_var('min_posts', 0);
56
 
                                $rank_image = request_var('rank_image', '');
57
 
 
58
 
                                // The rank image has to be a jpg, gif or png
59
 
                                if ($rank_image != '' && !preg_match('#(\.gif|\.png|\.jpg|\.jpeg)$#i', $rank_image))
60
 
                                {
61
 
                                        $rank_image = '';
62
 
                                }
63
 
 
64
 
                                if (!$rank_title)
65
 
                                {
66
 
                                        trigger_error($user->lang['NO_RANK_TITLE'] . adm_back_link($this->u_action), E_USER_WARNING);
67
 
                                }
68
 
 
69
 
                                $sql_ary = array(
70
 
                                        'rank_title'            => $rank_title,
71
 
                                        'rank_special'          => $special_rank,
72
 
                                        'rank_min'                      => $min_posts,
73
 
                                        'rank_image'            => htmlspecialchars_decode($rank_image)
74
 
                                );
75
 
                                
76
 
                                if ($rank_id)
77
 
                                {
78
 
                                        $sql = 'UPDATE ' . RANKS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE rank_id = $rank_id";
79
 
                                        $message = $user->lang['RANK_UPDATED'];
80
 
 
81
 
                                        add_log('admin', 'LOG_RANK_UPDATED', $rank_title);
82
 
                                }
83
 
                                else
84
 
                                {
85
 
                                        $sql = 'INSERT INTO ' . RANKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
86
 
                                        $message = $user->lang['RANK_ADDED'];
87
 
 
88
 
                                        add_log('admin', 'LOG_RANK_ADDED', $rank_title);
89
 
                                }
90
 
                                $db->sql_query($sql);
91
 
 
92
 
                                $cache->destroy('_ranks');
93
 
 
94
 
                                trigger_error($message . adm_back_link($this->u_action));
95
 
 
96
 
                        break;
97
 
 
98
 
                        case 'delete':
99
 
 
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
 
?>
 
 
b'\\ No newline at end of file'