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

« back to all changes in this revision

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

  • Committer: dcoles
  • Date: 2008-02-13 04:10:55 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:443
Added Forum application along with unmodifed version of phpBB3 "Olympus" 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
*
 
4
* @package acp
 
5
* @version $Id: acp_ban.php,v 1.24 2007/10/05 14:36:32 acydburn 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_ban
 
23
{
 
24
        var $u_action;
 
25
 
 
26
        function main($id, $mode)
 
27
        {
 
28
                global $config, $db, $user, $auth, $template, $cache;
 
29
                global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix;
 
30
 
 
31
                include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
 
32
 
 
33
                $bansubmit      = (isset($_POST['bansubmit'])) ? true : false;
 
34
                $unbansubmit = (isset($_POST['unbansubmit'])) ? true : false;
 
35
                $current_time = time();
 
36
 
 
37
                $user->add_lang(array('acp/ban', 'acp/users'));
 
38
                $this->tpl_name = 'acp_ban';
 
39
                $form_key = 'acp_ban';
 
40
                add_form_key($form_key);
 
41
 
 
42
                if (($bansubmit || $unbansubmit) && !check_form_key($form_key))
 
43
                {
 
44
                        trigger_error($user->lang['FORM_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
 
45
                }
 
46
 
 
47
                // Ban submitted?
 
48
                if ($bansubmit)
 
49
                {
 
50
                        // Grab the list of entries
 
51
                        $ban                            = utf8_normalize_nfc(request_var('ban', '', true));
 
52
                        $ban_len                        = request_var('banlength', 0);
 
53
                        $ban_len_other          = request_var('banlengthother', '');
 
54
                        $ban_exclude            = request_var('banexclude', 0);
 
55
                        $ban_reason                     = utf8_normalize_nfc(request_var('banreason', '', true));
 
56
                        $ban_give_reason        = utf8_normalize_nfc(request_var('bangivereason', '', true));
 
57
 
 
58
                        if ($ban)
 
59
                        {
 
60
                                user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason);
 
61
 
 
62
                                trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
 
63
                        }
 
64
                }
 
65
                else if ($unbansubmit)
 
66
                {
 
67
                        $ban = request_var('unban', array(''));
 
68
 
 
69
                        if ($ban)
 
70
                        {
 
71
                                user_unban($mode, $ban);
 
72
 
 
73
                                trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
 
74
                        }
 
75
                }
 
76
 
 
77
                // Define language vars
 
78
                $this->page_title = $user->lang[strtoupper($mode) . '_BAN'];
 
79
 
 
80
                $l_ban_explain = $user->lang[strtoupper($mode) . '_BAN_EXPLAIN'];
 
81
                $l_ban_exclude_explain = $user->lang[strtoupper($mode) . '_BAN_EXCLUDE_EXPLAIN'];
 
82
                $l_unban_title = $user->lang[strtoupper($mode) . '_UNBAN'];
 
83
                $l_unban_explain = $user->lang[strtoupper($mode) . '_UNBAN_EXPLAIN'];
 
84
                $l_no_ban_cell = $user->lang[strtoupper($mode) . '_NO_BANNED'];
 
85
 
 
86
                switch ($mode)
 
87
                {
 
88
                        case 'user':
 
89
                                $l_ban_cell = $user->lang['USERNAME'];
 
90
                        break;
 
91
 
 
92
                        case 'ip':
 
93
                                $l_ban_cell = $user->lang['IP_HOSTNAME'];
 
94
                        break;
 
95
 
 
96
                        case 'email':
 
97
                                $l_ban_cell = $user->lang['EMAIL_ADDRESS'];
 
98
                        break;
 
99
                }
 
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
?>
 
 
b'\\ No newline at end of file'