annotate forum/Themes/default/ManageBans.template.php @ 76:e3e11437ecea website

Add forum code
author Chris Cannam
date Sun, 07 Jul 2013 11:25:48 +0200
parents
children
rev   line source
Chris@76 1 <?php
Chris@76 2 /**
Chris@76 3 * Simple Machines Forum (SMF)
Chris@76 4 *
Chris@76 5 * @package SMF
Chris@76 6 * @author Simple Machines
Chris@76 7 * @copyright 2011 Simple Machines
Chris@76 8 * @license http://www.simplemachines.org/about/smf/license.php BSD
Chris@76 9 *
Chris@76 10 * @version 2.0
Chris@76 11 */
Chris@76 12
Chris@76 13 function template_ban_edit()
Chris@76 14 {
Chris@76 15 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 16
Chris@76 17 echo '
Chris@76 18 <div id="manage_bans">
Chris@76 19
Chris@76 20 <div class="cat_bar">
Chris@76 21 <h3 class="catbg">
Chris@76 22 ', $context['ban']['is_new'] ? $txt['ban_add_new'] : $txt['ban_edit'] . ' \'' . $context['ban']['name'] . '\'', '
Chris@76 23 </h3>
Chris@76 24 </div>';
Chris@76 25
Chris@76 26 if ($context['ban']['is_new'])
Chris@76 27 echo '
Chris@76 28 <div class="information">', $txt['ban_add_notes'], '</div>';
Chris@76 29
Chris@76 30 echo '
Chris@76 31 <div class="windowbg">
Chris@76 32 <span class="topslice"><span></span></span>
Chris@76 33 <div class="content">
Chris@76 34 <form action="', $scripturl, '?action=admin;area=ban;sa=edit" method="post" accept-charset="', $context['character_set'], '" onsubmit="if (this.ban_name.value == \'\') {alert(\'', $txt['ban_name_empty'], '\'); return false;} if (this.partial_ban.checked &amp;&amp; !(this.cannot_post.checked || this.cannot_register.checked || this.cannot_login.checked)) {alert(\'', $txt['ban_restriction_empty'], '\'); return false;}">
Chris@76 35 <dl class="settings">
Chris@76 36 <dt>
Chris@76 37 <strong>', $txt['ban_name'], ':</strong>
Chris@76 38 </dt>
Chris@76 39 <dd>
Chris@76 40 <input type="text" name="ban_name" value="', $context['ban']['name'], '" size="45" maxlength="60" class="input_text" />
Chris@76 41 </dd>
Chris@76 42 <dt>
Chris@76 43 <strong>', $txt['ban_reason'], ':</strong><br />
Chris@76 44 <span class="smalltext">', $txt['ban_reason_desc'], '</span>
Chris@76 45 </dt>
Chris@76 46 <dd>
Chris@76 47 <textarea name="reason" cols="44" rows="3">', $context['ban']['reason'], '</textarea>
Chris@76 48 </dd>
Chris@76 49 <dt>
Chris@76 50 <strong>', $txt['ban_notes'], ':</strong><br />
Chris@76 51 <span class="smalltext">', $txt['ban_notes_desc'], '</span>
Chris@76 52 </dt>
Chris@76 53 <dd>
Chris@76 54 <textarea name="notes" cols="44" rows="3">', $context['ban']['notes'], '</textarea>
Chris@76 55 </dd>
Chris@76 56 </dl>
Chris@76 57 <fieldset class="ban_settings floatleft">
Chris@76 58 <legend>
Chris@76 59 ', $txt['ban_expiration'], '
Chris@76 60 </legend>
Chris@76 61 <input type="radio" name="expiration" value="never" id="never_expires" onclick="fUpdateStatus();"', $context['ban']['expiration']['status'] == 'never' ? ' checked="checked"' : '', ' class="input_radio" /> <label for="never_expires">', $txt['never'], '</label><br />
Chris@76 62 <input type="radio" name="expiration" value="one_day" id="expires_one_day" onclick="fUpdateStatus();"', $context['ban']['expiration']['status'] == 'still_active_but_we_re_counting_the_days' ? ' checked="checked"' : '', ' class="input_radio" /> <label for="expires_one_day">', $txt['ban_will_expire_within'], '</label>: <input type="text" name="expire_date" id="expire_date" size="3" value="', $context['ban']['expiration']['days'], '" class="input_text" /> ', $txt['ban_days'], '<br />
Chris@76 63 <input type="radio" name="expiration" value="expired" id="already_expired" onclick="fUpdateStatus();"', $context['ban']['expiration']['status'] == 'expired' ? ' checked="checked"' : '', ' class="input_radio" /> <label for="already_expired">', $txt['ban_expired'], '</label>
Chris@76 64 </fieldset>
Chris@76 65 <fieldset class="ban_settings floatright">
Chris@76 66 <legend>
Chris@76 67 ', $txt['ban_restriction'], '
Chris@76 68 </legend>
Chris@76 69 <input type="radio" name="full_ban" id="full_ban" value="1" onclick="fUpdateStatus();"', $context['ban']['cannot']['access'] ? ' checked="checked"' : '', ' class="input_radio" /> <label for="full_ban">', $txt['ban_full_ban'], '</label><br />
Chris@76 70 <input type="radio" name="full_ban" id="partial_ban" value="0" onclick="fUpdateStatus();"', !$context['ban']['cannot']['access'] ? ' checked="checked"' : '', ' class="input_radio" /> <label for="partial_ban">', $txt['ban_partial_ban'], '</label><br />
Chris@76 71 <input type="checkbox" name="cannot_post" id="cannot_post" value="1"', $context['ban']['cannot']['post'] ? ' checked="checked"' : '', ' class="ban_restriction input_radio" /> <label for="cannot_post">', $txt['ban_cannot_post'], '</label> (<a href="', $scripturl, '?action=helpadmin;help=ban_cannot_post" onclick="return reqWin(this.href);">?</a>)<br />
Chris@76 72 <input type="checkbox" name="cannot_register" id="cannot_register" value="1"', $context['ban']['cannot']['register'] ? ' checked="checked"' : '', ' class="ban_restriction input_radio" /> <label for="cannot_register">', $txt['ban_cannot_register'], '</label><br />
Chris@76 73 <input type="checkbox" name="cannot_login" id="cannot_login" value="1"', $context['ban']['cannot']['login'] ? ' checked="checked"' : '', ' class="ban_restriction input_radio" /> <label for="cannot_login">', $txt['ban_cannot_login'], '</label><br />
Chris@76 74 </fieldset>
Chris@76 75 <br class="clear_right" />';
Chris@76 76
Chris@76 77 if (!empty($context['ban_suggestions']))
Chris@76 78 {
Chris@76 79 echo '
Chris@76 80 <fieldset>
Chris@76 81 <legend>
Chris@76 82 ', $txt['ban_triggers'], '
Chris@76 83 </legend>
Chris@76 84 <dl class="settings">
Chris@76 85 <dt>
Chris@76 86 <input type="checkbox" name="ban_suggestion[]" id="main_ip_check" value="main_ip" class="input_check" />
Chris@76 87 <label for="main_ip_check">', $txt['ban_on_ip'], '</label>
Chris@76 88 </dt>
Chris@76 89 <dd>
Chris@76 90 <input type="text" name="main_ip" value="', $context['ban_suggestions']['main_ip'], '" size="44" onfocus="document.getElementById(\'main_ip_check\').checked = true;" class="input_text" />
Chris@76 91 </dd>';
Chris@76 92
Chris@76 93 if (empty($modSettings['disableHostnameLookup']))
Chris@76 94 echo '
Chris@76 95 <dt>
Chris@76 96 <input type="checkbox" name="ban_suggestion[]" id="hostname_check" value="hostname" class="input_check" />
Chris@76 97 <label for="hostname_check">', $txt['ban_on_hostname'], '</label>
Chris@76 98 </dt>
Chris@76 99 <dd>
Chris@76 100 <input type="text" name="hostname" value="', $context['ban_suggestions']['hostname'], '" size="44" onfocus="document.getElementById(\'hostname_check\').checked = true;" class="input_text" />
Chris@76 101 </dd>';
Chris@76 102
Chris@76 103 echo '
Chris@76 104 <dt>
Chris@76 105 <input type="checkbox" name="ban_suggestion[]" id="email_check" value="email" class="input_check" checked="checked" />
Chris@76 106 <label for="email_check">', $txt['ban_on_email'], '</label>
Chris@76 107 </dt>
Chris@76 108 <dd>
Chris@76 109 <input type="text" name="email" value="', $context['ban_suggestions']['email'], '" size="44" onfocus="document.getElementById(\'email_check\').checked = true;" class="input_text" />
Chris@76 110 </dd>
Chris@76 111 <dt>
Chris@76 112 <input type="checkbox" name="ban_suggestion[]" id="user_check" value="user" class="input_check" checked="checked" />
Chris@76 113 <label for="user_check">', $txt['ban_on_username'], '</label>:
Chris@76 114 </dt>
Chris@76 115 <dd>';
Chris@76 116
Chris@76 117 if (empty($context['ban_suggestions']['member']['id']))
Chris@76 118 echo '
Chris@76 119 <input type="text" name="user" id="user" value="" size="44" class="input_text" />';
Chris@76 120 else
Chris@76 121 echo '
Chris@76 122 ', $context['ban_suggestions']['member']['link'], '
Chris@76 123 <input type="hidden" name="bannedUser" value="', $context['ban_suggestions']['member']['id'], '" />';
Chris@76 124 echo '
Chris@76 125 </dd>';
Chris@76 126
Chris@76 127 if (!empty($context['ban_suggestions']['message_ips']))
Chris@76 128 {
Chris@76 129 echo '
Chris@76 130 </dl>
Chris@76 131 <div>', $txt['ips_in_messages'], ':</div>
Chris@76 132 <dl class="settings">';
Chris@76 133
Chris@76 134 foreach ($context['ban_suggestions']['message_ips'] as $ip)
Chris@76 135 echo '
Chris@76 136 <dt>
Chris@76 137 <input type="checkbox" name="ban_suggestion[ips][]" value="', $ip, '" class="input_check" />
Chris@76 138 </dt>
Chris@76 139 <dd>
Chris@76 140 ', $ip, '
Chris@76 141 </dd>';
Chris@76 142 }
Chris@76 143
Chris@76 144 if (!empty($context['ban_suggestions']['error_ips']))
Chris@76 145 {
Chris@76 146 echo '
Chris@76 147 </dl>
Chris@76 148 <div>', $txt['ips_in_errors'], '</div>
Chris@76 149 <dl class="settings">';
Chris@76 150
Chris@76 151 foreach ($context['ban_suggestions']['error_ips'] as $ip)
Chris@76 152 echo '
Chris@76 153 <dt>
Chris@76 154 <input type="checkbox" name="ban_suggestion[ips][]" value="', $ip, '" class="input_check" />
Chris@76 155 </dt>
Chris@76 156 <dd>
Chris@76 157 ', $ip, '
Chris@76 158 </dd>';
Chris@76 159 }
Chris@76 160
Chris@76 161 echo '
Chris@76 162 </dl>
Chris@76 163 </fieldset>';
Chris@76 164 }
Chris@76 165
Chris@76 166 echo '
Chris@76 167 <div class="righttext">
Chris@76 168 <input type="submit" name="', $context['ban']['is_new'] ? 'add_ban' : 'modify_ban', '" value="', $context['ban']['is_new'] ? $txt['ban_add'] : $txt['ban_modify'], '" class="button_submit" />
Chris@76 169 <input type="hidden" name="old_expire" value="', $context['ban']['expiration']['days'], '" />
Chris@76 170 <input type="hidden" name="bg" value="', $context['ban']['id'], '" />
Chris@76 171 <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
Chris@76 172 </div>
Chris@76 173 </form>
Chris@76 174 </div>
Chris@76 175 <span class="botslice"><span></span></span>
Chris@76 176 </div>';
Chris@76 177
Chris@76 178 if (!$context['ban']['is_new'] && empty($context['ban_suggestions']))
Chris@76 179 {
Chris@76 180 echo '
Chris@76 181 <br />
Chris@76 182 <form action="', $scripturl, '?action=admin;area=ban;sa=edit" method="post" accept-charset="', $context['character_set'], '" style="padding: 0px;margin: 0px;" onsubmit="return confirm(\'', $txt['ban_remove_selected_triggers_confirm'], '\');">
Chris@76 183 <table class="table_grid" width="100%">
Chris@76 184 <thead>
Chris@76 185 <tr class="catbg">
Chris@76 186 <th width="65%" align="left">', $txt['ban_banned_entity'], '</td>
Chris@76 187 <th width="15%" align="center">', $txt['ban_hits'], '</td>
Chris@76 188 <th width="15%" align="center">', $txt['ban_actions'], '</td>
Chris@76 189 <th width="5%" align="center"><input type="checkbox" onclick="invertAll(this, this.form, \'ban_items\');" class="input_check" /></td>
Chris@76 190 </tr>
Chris@76 191 </thead>
Chris@76 192 <tbody>';
Chris@76 193 if (empty($context['ban_items']))
Chris@76 194 echo '
Chris@76 195 <tr class="windowbg2">
Chris@76 196 <td colspan="4">(', $txt['ban_no_triggers'], ')</td>
Chris@76 197 </tr>';
Chris@76 198 else
Chris@76 199 {
Chris@76 200 foreach ($context['ban_items'] as $ban_item)
Chris@76 201 {
Chris@76 202 echo '
Chris@76 203 <tr class="windowbg2" align="left">
Chris@76 204 <td>';
Chris@76 205 if ($ban_item['type'] == 'ip')
Chris@76 206 echo ' <strong>', $txt['ip'], ':</strong>&nbsp;', $ban_item['ip'];
Chris@76 207 elseif ($ban_item['type'] == 'hostname')
Chris@76 208 echo ' <strong>', $txt['hostname'], ':</strong>&nbsp;', $ban_item['hostname'];
Chris@76 209 elseif ($ban_item['type'] == 'email')
Chris@76 210 echo ' <strong>', $txt['email'], ':</strong>&nbsp;', $ban_item['email'];
Chris@76 211 elseif ($ban_item['type'] == 'user')
Chris@76 212 echo ' <strong>', $txt['username'], ':</strong>&nbsp;', $ban_item['user']['link'];
Chris@76 213 echo '
Chris@76 214 </td>
Chris@76 215 <td class="windowbg" align="center">', $ban_item['hits'], '</td>
Chris@76 216 <td class="windowbg" align="center"><a href="', $scripturl, '?action=admin;area=ban;sa=edittrigger;bg=', $context['ban']['id'], ';bi=', $ban_item['id'], '">', $txt['ban_edit_trigger'], '</a></td>
Chris@76 217 <td align="center" class="windowbg2"><input type="checkbox" name="ban_items[]" value="', $ban_item['id'], '" class="input_check" /></td>
Chris@76 218 </tr>';
Chris@76 219 }
Chris@76 220 }
Chris@76 221
Chris@76 222 echo '
Chris@76 223 </tbody>
Chris@76 224 </table>
Chris@76 225 <div class="additional_rows">
Chris@76 226 <div class="floatleft">
Chris@76 227 [<a href="', $scripturl, '?action=admin;area=ban;sa=edittrigger;bg=', $context['ban']['id'], '">', $txt['ban_add_trigger'], '</a>]
Chris@76 228 </div>
Chris@76 229 <div class="floatright">
Chris@76 230 <input type="submit" name="remove_selection" value="', $txt['ban_remove_selected_triggers'], '" class="button_submit" />
Chris@76 231 </div>
Chris@76 232 </div>
Chris@76 233 <br class="clear" />
Chris@76 234 <input type="hidden" name="bg" value="', $context['ban']['id'], '" />
Chris@76 235 <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
Chris@76 236 </form>';
Chris@76 237
Chris@76 238 }
Chris@76 239
Chris@76 240 echo '
Chris@76 241 </div>
Chris@76 242 <br class="clear" />
Chris@76 243 <script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/suggest.js?fin20"></script>
Chris@76 244 <script type="text/javascript"><!-- // --><![CDATA[
Chris@76 245 var fUpdateStatus = function ()
Chris@76 246 {
Chris@76 247 document.getElementById("expire_date").disabled = !document.getElementById("expires_one_day").checked;
Chris@76 248 document.getElementById("cannot_post").disabled = document.getElementById("full_ban").checked;
Chris@76 249 document.getElementById("cannot_register").disabled = document.getElementById("full_ban").checked;
Chris@76 250 document.getElementById("cannot_login").disabled = document.getElementById("full_ban").checked;
Chris@76 251 }
Chris@76 252 addLoadEvent(fUpdateStatus);';
Chris@76 253
Chris@76 254 // Auto suggest only needed for adding new bans, not editing
Chris@76 255 if ($context['ban']['is_new'] && empty($_REQUEST['u']))
Chris@76 256 echo '
Chris@76 257 var oAddMemberSuggest = new smc_AutoSuggest({
Chris@76 258 sSelf: \'oAddMemberSuggest\',
Chris@76 259 sSessionId: \'', $context['session_id'], '\',
Chris@76 260 sSessionVar: \'', $context['session_var'], '\',
Chris@76 261 sSuggestId: \'user\',
Chris@76 262 sControlId: \'user\',
Chris@76 263 sSearchType: \'member\',
Chris@76 264 sTextDeleteItem: \'', $txt['autosuggest_delete_item'], '\',
Chris@76 265 bItemList: false
Chris@76 266 });
Chris@76 267
Chris@76 268 function onUpdateName(oAutoSuggest)
Chris@76 269 {
Chris@76 270 document.getElementById(\'user_check\').checked = true;
Chris@76 271 return true;
Chris@76 272 }
Chris@76 273 oAddMemberSuggest.registerCallback(\'onBeforeUpdate\', \'onUpdateName\');';
Chris@76 274
Chris@76 275 echo '// ]]></script>';
Chris@76 276 }
Chris@76 277
Chris@76 278 function template_ban_edit_trigger()
Chris@76 279 {
Chris@76 280 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 281
Chris@76 282 echo '
Chris@76 283 <div id="manage_bans">
Chris@76 284 <form action="', $scripturl, '?action=admin;area=ban;sa=edit" method="post" accept-charset="', $context['character_set'], '">
Chris@76 285 <div class="cat_bar">
Chris@76 286 <h3 class="catbg">
Chris@76 287 ', $context['ban_trigger']['is_new'] ? $txt['ban_add_trigger'] : $txt['ban_edit_trigger_title'], '
Chris@76 288 </h3>
Chris@76 289 </div>
Chris@76 290 <div class="windowbg">
Chris@76 291 <span class="topslice"><span></span></span>
Chris@76 292 <div class="content">
Chris@76 293 <fieldset>
Chris@76 294 <legend>
Chris@76 295 ', $txt['ban_triggers'], '
Chris@76 296 </legend>
Chris@76 297 <dl class="settings">
Chris@76 298 <dt>
Chris@76 299 <input type="radio" name="bantype" value="ip_ban"', $context['ban_trigger']['ip']['selected'] ? ' checked="checked"' : '', ' class="input_radio" />
Chris@76 300 ', $txt['ban_on_ip'], '
Chris@76 301 </dt>
Chris@76 302 <dd>
Chris@76 303 <input type="text" name="ip" value="', $context['ban_trigger']['ip']['value'], '" size="50" onfocus="selectRadioByName(this.form.bantype, \'ip_ban\');" class="input_text" />
Chris@76 304 </dd>';
Chris@76 305 if (empty($modSettings['disableHostnameLookup']))
Chris@76 306 echo '
Chris@76 307 <dt>
Chris@76 308 <input type="radio" name="bantype" value="hostname_ban"', $context['ban_trigger']['hostname']['selected'] ? ' checked="checked"' : '', ' class="input_radio" />
Chris@76 309 ', $txt['ban_on_hostname'], '
Chris@76 310 </dt>
Chris@76 311 <dd>
Chris@76 312 <input type="text" name="hostname" value="', $context['ban_trigger']['hostname']['value'], '" size="50" onfocus="selectRadioByName(this.form.bantype, \'hostname_ban\');" class="input_text" />
Chris@76 313 </dd>';
Chris@76 314 echo '
Chris@76 315 <dt>
Chris@76 316 <input type="radio" name="bantype" value="email_ban"', $context['ban_trigger']['email']['selected'] ? ' checked="checked"' : '', ' class="input_radio" />
Chris@76 317 ', $txt['ban_on_email'], '
Chris@76 318 </dt>
Chris@76 319 <dd>
Chris@76 320 <input type="text" name="email" value="', $context['ban_trigger']['email']['value'], '" size="50" onfocus="selectRadioByName(this.form.bantype, \'email_ban\');" class="input_text" />
Chris@76 321 </dd>
Chris@76 322 <dt>
Chris@76 323 <input type="radio" name="bantype" value="user_ban"', $context['ban_trigger']['banneduser']['selected'] ? ' checked="checked"' : '', ' class="input_radio" />
Chris@76 324 ', $txt['ban_on_username'], '
Chris@76 325 </dt>
Chris@76 326 <dd>
Chris@76 327 <input type="text" name="user" id="user" value="', $context['ban_trigger']['banneduser']['value'], '" size="50" onfocus="selectRadioByName(this.form.bantype, \'user_ban\');" class="input_text" />
Chris@76 328 </dd>
Chris@76 329 </dl>
Chris@76 330 </fieldset>
Chris@76 331 <div class="righttext">
Chris@76 332 <input type="submit" name="', $context['ban_trigger']['is_new'] ? 'add_new_trigger' : 'edit_trigger', '" value="', $context['ban_trigger']['is_new'] ? $txt['ban_add_trigger_submit'] : $txt['ban_edit_trigger_submit'], '" class="button_submit" />
Chris@76 333 </div>
Chris@76 334 </div>
Chris@76 335 <span class="botslice"><span></span></span>
Chris@76 336 </div>
Chris@76 337 <input type="hidden" name="bi" value="' . $context['ban_trigger']['id'] . '" />
Chris@76 338 <input type="hidden" name="bg" value="' . $context['ban_trigger']['group'] . '" />
Chris@76 339 <input type="hidden" name="' . $context['session_var'] . '" value="' . $context['session_id'] . '" />
Chris@76 340 </form>
Chris@76 341 </div>
Chris@76 342 <br class="clear" />
Chris@76 343 <script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/suggest.js?fin20"></script>
Chris@76 344 <script type="text/javascript"><!-- // --><![CDATA[
Chris@76 345 var oAddMemberSuggest = new smc_AutoSuggest({
Chris@76 346 sSelf: \'oAddMemberSuggest\',
Chris@76 347 sSessionId: \'', $context['session_id'], '\',
Chris@76 348 sSessionVar: \'', $context['session_var'], '\',
Chris@76 349 sSuggestId: \'username\',
Chris@76 350 sControlId: \'user\',
Chris@76 351 sSearchType: \'member\',
Chris@76 352 sTextDeleteItem: \'', $txt['autosuggest_delete_item'], '\',
Chris@76 353 bItemList: false
Chris@76 354 });
Chris@76 355
Chris@76 356 function onUpdateName(oAutoSuggest)
Chris@76 357 {
Chris@76 358 selectRadioByName(oAutoSuggest.oTextHandle.form.bantype, \'user_ban\');
Chris@76 359 return true;
Chris@76 360 }
Chris@76 361 oAddMemberSuggest.registerCallback(\'onBeforeUpdate\', \'onUpdateName\');
Chris@76 362 // ]]></script>';
Chris@76 363 }
Chris@76 364
Chris@76 365 ?>