annotate forum/Themes/default/ManagePermissions.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_permission_index()
Chris@76 14 {
Chris@76 15 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 16
Chris@76 17 // Not allowed to edit?
Chris@76 18 if (!$context['can_modify'])
Chris@76 19 echo '
Chris@76 20 <div class="errorbox">
Chris@76 21 ', sprintf($txt['permission_cannot_edit'], $scripturl . '?action=admin;area=permissions;sa=profiles'), '
Chris@76 22 </div>';
Chris@76 23
Chris@76 24 echo '
Chris@76 25 <div id="admincenter">
Chris@76 26 <form action="', $scripturl, '?action=admin;area=permissions;sa=quick" method="post" accept-charset="', $context['character_set'], '" name="permissionForm" id="permissionForm">';
Chris@76 27
Chris@76 28 if (!empty($context['profile']))
Chris@76 29 echo '
Chris@76 30 <div class="title_bar">
Chris@76 31 <h3 class="titlebg">', $txt['permissions_for_profile'], ': &quot;', $context['profile']['name'], '&quot;</h3>
Chris@76 32 </div>';
Chris@76 33
Chris@76 34 echo '
Chris@76 35 <table width="100%" class="table_grid">
Chris@76 36 <thead>
Chris@76 37 <tr class="catbg">
Chris@76 38 <th class="first_th">', $txt['membergroups_name'], '</th>
Chris@76 39 <th width="10%" align="center" valign="middle">', $txt['membergroups_members_top'], '</th>';
Chris@76 40
Chris@76 41 if (empty($modSettings['permission_enable_deny']))
Chris@76 42 echo '
Chris@76 43 <th width="16%" align="center">', $txt['membergroups_permissions'], '</th>';
Chris@76 44 else
Chris@76 45 echo '
Chris@76 46 <th width="8%" align="center">', $txt['permissions_allowed'], '</th>
Chris@76 47 <th width="8%" align="center">', $txt['permissions_denied'], '</th>';
Chris@76 48
Chris@76 49 echo '
Chris@76 50 <th width="10%" align="center" valign="middle">', $context['can_modify'] ? $txt['permissions_modify'] : $txt['permissions_view'], '</th>
Chris@76 51 <th class="last_th" width="4%" align="center" valign="middle">
Chris@76 52 ', $context['can_modify'] ? '<input type="checkbox" class="input_check" onclick="invertAll(this, this.form, \'group\');" />' : '', '
Chris@76 53 </th>
Chris@76 54 </tr>
Chris@76 55 </thead>
Chris@76 56 <tbody>';
Chris@76 57
Chris@76 58 $alternate = false;
Chris@76 59 foreach ($context['groups'] as $group)
Chris@76 60 {
Chris@76 61 $alternate = !$alternate;
Chris@76 62 echo '
Chris@76 63 <tr class="windowbg', $alternate ? '2' : '', '">
Chris@76 64 <td>
Chris@76 65 ', $group['name'], $group['id'] == -1 ? ' (<a href="' . $scripturl . '?action=helpadmin;help=membergroup_guests" onclick="return reqWin(this.href);">?</a>)' : ($group['id'] == 0 ? ' (<a href="' . $scripturl . '?action=helpadmin;help=membergroup_regular_members" onclick="return reqWin(this.href);">?</a>)' : ($group['id'] == 1 ? ' (<a href="' . $scripturl . '?action=helpadmin;help=membergroup_administrator" onclick="return reqWin(this.href);">?</a>)' : ($group['id'] == 3 ? ' (<a href="' . $scripturl . '?action=helpadmin;help=membergroup_moderator" onclick="return reqWin(this.href);">?</a>)' : '')));
Chris@76 66
Chris@76 67 if (!empty($group['children']))
Chris@76 68 echo '
Chris@76 69 <br /><span class="smalltext">', $txt['permissions_includes_inherited'], ': &quot;', implode('&quot;, &quot;', $group['children']), '&quot;</span>';
Chris@76 70
Chris@76 71 echo '
Chris@76 72 </td>
Chris@76 73 <td align="center">', $group['can_search'] ? $group['link'] : $group['num_members'], '</td>';
Chris@76 74
Chris@76 75 if (empty($modSettings['permission_enable_deny']))
Chris@76 76 echo '
Chris@76 77 <td width="16%" align="center">', $group['num_permissions']['allowed'], '</td>';
Chris@76 78 else
Chris@76 79 echo '
Chris@76 80 <td width="8%" align="center"', $group['id'] == 1 ? ' style="font-style: italic;"' : '', '>', $group['num_permissions']['allowed'], '</td>
Chris@76 81 <td width="8%" align="center"', $group['id'] == 1 || $group['id'] == -1 ? ' style="font-style: italic;"' : (!empty($group['num_permissions']['denied']) ? ' style="color: red;"' : ''), '>', $group['num_permissions']['denied'], '</td>';
Chris@76 82
Chris@76 83 echo '
Chris@76 84 <td align="center">', $group['allow_modify'] ? '<a href="' . $scripturl . '?action=admin;area=permissions;sa=modify;group=' . $group['id'] . (empty($context['profile']) ? '' : ';pid=' . $context['profile']['id']) . '">' . ($context['can_modify'] ? $txt['permissions_modify'] : $txt['permissions_view']). '</a>' : '', '</td>
Chris@76 85 <td align="center">', $group['allow_modify'] && $context['can_modify'] ? '<input type="checkbox" name="group[]" value="' . $group['id'] . '" class="input_check" />' : '', '</td>
Chris@76 86 </tr>';
Chris@76 87 }
Chris@76 88
Chris@76 89 echo '
Chris@76 90 </tbody>
Chris@76 91 </table>
Chris@76 92 <br />';
Chris@76 93
Chris@76 94 // Advanced stuff...
Chris@76 95 if ($context['can_modify'])
Chris@76 96 {
Chris@76 97 echo '
Chris@76 98 <div class="cat_bar">
Chris@76 99 <h3 class="catbg">
Chris@76 100 <span class="ie6_header floatleft">
Chris@76 101 <img src="', $settings['images_url'], '/', empty($context['show_advanced_options']) ? 'selected' : 'sort_down', '.gif" id="permissions_panel_toggle" alt="*" /> ', $txt['permissions_advanced_options'], '
Chris@76 102 </span>
Chris@76 103 </h3>
Chris@76 104 </div>
Chris@76 105 <div id="permissions_panel_advanced" class="windowbg">
Chris@76 106 <span class="topslice"><span></span></span>
Chris@76 107 <div class="content">
Chris@76 108 <fieldset>
Chris@76 109 <legend>', $txt['permissions_with_selection'], '</legend>
Chris@76 110 <dl class="settings admin_permissions">
Chris@76 111 <dt>
Chris@76 112 ', $txt['permissions_apply_pre_defined'], ' <a href="', $scripturl, '?action=helpadmin;help=permissions_quickgroups" onclick="return reqWin(this.href);">(?)</a>:
Chris@76 113 </dt>
Chris@76 114 <dd>
Chris@76 115 <select name="predefined">
Chris@76 116 <option value="">(', $txt['permissions_select_pre_defined'], ')</option>
Chris@76 117 <option value="restrict">', $txt['permitgroups_restrict'], '</option>
Chris@76 118 <option value="standard">', $txt['permitgroups_standard'], '</option>
Chris@76 119 <option value="moderator">', $txt['permitgroups_moderator'], '</option>
Chris@76 120 <option value="maintenance">', $txt['permitgroups_maintenance'], '</option>
Chris@76 121 </select>
Chris@76 122 </dd>
Chris@76 123 <dt>
Chris@76 124 ', $txt['permissions_like_group'], ':
Chris@76 125 </dt>
Chris@76 126 <dd>
Chris@76 127 <select name="copy_from">
Chris@76 128 <option value="empty">(', $txt['permissions_select_membergroup'], ')</option>';
Chris@76 129 foreach ($context['groups'] as $group)
Chris@76 130 {
Chris@76 131 if ($group['id'] != 1)
Chris@76 132 echo '
Chris@76 133 <option value="', $group['id'], '">', $group['name'], '</option>';
Chris@76 134 }
Chris@76 135
Chris@76 136 echo '
Chris@76 137 </select>
Chris@76 138 </dd>
Chris@76 139 <dt>
Chris@76 140 <select name="add_remove">
Chris@76 141 <option value="add">', $txt['permissions_add'], '...</option>
Chris@76 142 <option value="clear">', $txt['permissions_remove'], '...</option>';
Chris@76 143 if (!empty($modSettings['permission_enable_deny']))
Chris@76 144 echo '
Chris@76 145 <option value="deny">', $txt['permissions_deny'], '...</option>';
Chris@76 146 echo '
Chris@76 147 </select>
Chris@76 148 </dt>
Chris@76 149 <dd style="overflow:auto;">
Chris@76 150 <select name="permissions">
Chris@76 151 <option value="">(', $txt['permissions_select_permission'], ')</option>';
Chris@76 152 foreach ($context['permissions'] as $permissionType)
Chris@76 153 {
Chris@76 154 if ($permissionType['id'] == 'membergroup' && !empty($context['profile']))
Chris@76 155 continue;
Chris@76 156
Chris@76 157 foreach ($permissionType['columns'] as $column)
Chris@76 158 {
Chris@76 159 foreach ($column as $permissionGroup)
Chris@76 160 {
Chris@76 161 if ($permissionGroup['hidden'])
Chris@76 162 continue;
Chris@76 163
Chris@76 164 echo '
Chris@76 165 <option value="" disabled="disabled">[', $permissionGroup['name'], ']</option>';
Chris@76 166 foreach ($permissionGroup['permissions'] as $perm)
Chris@76 167 {
Chris@76 168 if ($perm['hidden'])
Chris@76 169 continue;
Chris@76 170
Chris@76 171 if ($perm['has_own_any'])
Chris@76 172 echo '
Chris@76 173 <option value="', $permissionType['id'], '/', $perm['own']['id'], '">&nbsp;&nbsp;&nbsp;', $perm['name'], ' (', $perm['own']['name'], ')</option>
Chris@76 174 <option value="', $permissionType['id'], '/', $perm['any']['id'], '">&nbsp;&nbsp;&nbsp;', $perm['name'], ' (', $perm['any']['name'], ')</option>';
Chris@76 175 else
Chris@76 176 echo '
Chris@76 177 <option value="', $permissionType['id'], '/', $perm['id'], '">&nbsp;&nbsp;&nbsp;', $perm['name'], '</option>';
Chris@76 178 }
Chris@76 179 }
Chris@76 180 }
Chris@76 181 }
Chris@76 182 echo '
Chris@76 183 </select>
Chris@76 184 </dd>
Chris@76 185 </dl>
Chris@76 186 </fieldset>
Chris@76 187 <div class="righttext">
Chris@76 188 <input type="submit" value="', $txt['permissions_set_permissions'], '" onclick="return checkSubmit();" class="button_submit" />
Chris@76 189 </div>
Chris@76 190 </div>
Chris@76 191 <span class="botslice"><span></span></span>
Chris@76 192 </div>';
Chris@76 193
Chris@76 194 // Javascript for the advanced stuff.
Chris@76 195 echo '
Chris@76 196 <script type="text/javascript"><!-- // --><![CDATA[
Chris@76 197 var oPermissionsPanelToggle = new smc_Toggle({
Chris@76 198 bToggleEnabled: true,
Chris@76 199 bCurrentlyCollapsed: ', empty($context['show_advanced_options']) ? 'true' : 'false', ',
Chris@76 200 aSwappableContainers: [
Chris@76 201 \'permissions_panel_advanced\'
Chris@76 202 ],
Chris@76 203 aSwapImages: [
Chris@76 204 {
Chris@76 205 sId: \'permissions_panel_toggle\',
Chris@76 206 srcExpanded: smf_images_url + \'/sort_down.gif\',
Chris@76 207 altExpanded: ', JavaScriptEscape($txt['upshrink_description']), ',
Chris@76 208 srcCollapsed: smf_images_url + \'/selected.gif\',
Chris@76 209 altCollapsed: ', JavaScriptEscape($txt['upshrink_description']), '
Chris@76 210 }
Chris@76 211 ],
Chris@76 212 oThemeOptions: {
Chris@76 213 bUseThemeSettings: ', $context['user']['is_guest'] ? 'false' : 'true', ',
Chris@76 214 sOptionName: \'admin_preferences\',
Chris@76 215 sSessionVar: ', JavaScriptEscape($context['session_var']), ',
Chris@76 216 sSessionId: ', JavaScriptEscape($context['session_id']), ',
Chris@76 217 sThemeId: \'1\',
Chris@76 218 sAdditionalVars: \';admin_key=app\'
Chris@76 219 }
Chris@76 220 });';
Chris@76 221
Chris@76 222 echo '
Chris@76 223
Chris@76 224 function checkSubmit()
Chris@76 225 {
Chris@76 226 if ((document.forms.permissionForm.predefined.value != "" && (document.forms.permissionForm.copy_from.value != "empty" || document.forms.permissionForm.permissions.value != "")) || (document.forms.permissionForm.copy_from.value != "empty" && document.forms.permissionForm.permissions.value != ""))
Chris@76 227 {
Chris@76 228 alert("', $txt['permissions_only_one_option'], '");
Chris@76 229 return false;
Chris@76 230 }
Chris@76 231 if (document.forms.permissionForm.predefined.value == "" && document.forms.permissionForm.copy_from.value == "" && document.forms.permissionForm.permissions.value == "")
Chris@76 232 {
Chris@76 233 alert("', $txt['permissions_no_action'], '");
Chris@76 234 return false;
Chris@76 235 }
Chris@76 236 if (document.forms.permissionForm.permissions.value != "" && document.forms.permissionForm.add_remove.value == "deny")
Chris@76 237 return confirm("', $txt['permissions_deny_dangerous'], '");
Chris@76 238
Chris@76 239 return true;
Chris@76 240 }
Chris@76 241 // ]]></script>';
Chris@76 242
Chris@76 243 if (!empty($context['profile']))
Chris@76 244 echo '
Chris@76 245 <input type="hidden" name="pid" value="', $context['profile']['id'], '" />';
Chris@76 246
Chris@76 247 echo '
Chris@76 248 <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />';
Chris@76 249 }
Chris@76 250 else
Chris@76 251 echo '
Chris@76 252 </table>';
Chris@76 253
Chris@76 254 echo '
Chris@76 255 </form>
Chris@76 256 </div>
Chris@76 257 <br class="clear" />';
Chris@76 258 }
Chris@76 259
Chris@76 260 function template_by_board()
Chris@76 261 {
Chris@76 262 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 263
Chris@76 264 echo '
Chris@76 265 <form id="admincenter" action="', $scripturl, '?action=admin;area=permissions;sa=board" method="post" accept-charset="', $context['character_set'], '">
Chris@76 266 <div class="cat_bar">
Chris@76 267 <h3 class="catbg">', $txt['permissions_boards'], '</h3>
Chris@76 268 </div>
Chris@76 269 <div class="information">
Chris@76 270 ', $txt['permissions_boards_desc'], '
Chris@76 271 </div>
Chris@76 272 <div class="title_bar">
Chris@76 273 <h3 id="board_permissions" class="titlebg flow_hidden">
Chris@76 274 <span class="perm_name floatleft">', $txt['board_name'], '</span>
Chris@76 275 <span class="perm_profile floatleft">', $txt['permission_profile'], '</span>
Chris@76 276 </h3>
Chris@76 277 </div>';
Chris@76 278
Chris@76 279 if (!$context['edit_all'])
Chris@76 280 echo '
Chris@76 281 <div class="righttext">
Chris@76 282 <a href="', $scripturl, '?action=admin;area=permissions;sa=board;edit;', $context['session_var'], '=', $context['session_id'], '">[', $txt['permissions_board_all'], ']</a>
Chris@76 283 </div>';
Chris@76 284
Chris@76 285 foreach ($context['categories'] as $category)
Chris@76 286 {
Chris@76 287 echo '
Chris@76 288 <div class="cat_bar">
Chris@76 289 <h3 class="catbg"><strong>', $category['name'], '</strong></h3>
Chris@76 290 </div>';
Chris@76 291
Chris@76 292 if (!empty($category['boards']))
Chris@76 293 echo '
Chris@76 294 <div class="windowbg">
Chris@76 295 <span class="topslice"><span></span></span>
Chris@76 296 <div class="content">
Chris@76 297 <ul class="perm_boards flow_hidden">';
Chris@76 298
Chris@76 299 $alternate = false;
Chris@76 300
Chris@76 301 foreach ($category['boards'] as $board)
Chris@76 302 {
Chris@76 303 $alternate = !$alternate;
Chris@76 304
Chris@76 305 echo '
Chris@76 306
Chris@76 307 <li class="flow_hidden' ,' windowbg', $alternate ? '' : '2','">
Chris@76 308 <span class="perm_board floatleft">
Chris@76 309 <a href="', $scripturl, '?action=admin;area=manageboards;sa=board;boardid=', $board['id'], ';rid=permissions;', $context['session_var'], '=', $context['session_id'], '">', str_repeat('-', $board['child_level']), ' ', $board['name'], '</a>
Chris@76 310 </span>
Chris@76 311 <span class="perm_boardprofile floatleft">';
Chris@76 312 if ($context['edit_all'])
Chris@76 313 {
Chris@76 314 echo '
Chris@76 315 <select name="boardprofile[', $board['id'], ']">';
Chris@76 316
Chris@76 317 foreach ($context['profiles'] as $id => $profile)
Chris@76 318 echo '
Chris@76 319 <option value="', $id, '" ', $id == $board['profile'] ? 'selected="selected"' : '', '>', $profile['name'], '</option>';
Chris@76 320
Chris@76 321 echo '
Chris@76 322 </select>';
Chris@76 323 }
Chris@76 324 else
Chris@76 325 echo '
Chris@76 326 <a href="', $scripturl, '?action=admin;area=permissions;sa=index;pid=', $board['profile'], ';', $context['session_var'], '=', $context['session_id'], '"> [', $board['profile_name'], ']</a>';
Chris@76 327
Chris@76 328 echo '
Chris@76 329 </span>
Chris@76 330 </li>';
Chris@76 331 }
Chris@76 332
Chris@76 333 if (!empty($category['boards']))
Chris@76 334 echo '
Chris@76 335 </ul>
Chris@76 336 </div>
Chris@76 337 <span class="botslice"><span></span></span>
Chris@76 338 </div>';
Chris@76 339 }
Chris@76 340
Chris@76 341 echo '
Chris@76 342 <div class="righttext">';
Chris@76 343
Chris@76 344 if ($context['edit_all'])
Chris@76 345 echo '
Chris@76 346 <input type="submit" name="save_changes" value="', $txt['save'], '" class="button_submit" />';
Chris@76 347 else
Chris@76 348 echo '
Chris@76 349 <a href="', $scripturl, '?action=admin;area=permissions;sa=board;edit;', $context['session_var'], '=', $context['session_id'], '">[', $txt['permissions_board_all'], ']</a>';
Chris@76 350
Chris@76 351 echo '
Chris@76 352 <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
Chris@76 353 </div>
Chris@76 354 </form>
Chris@76 355 <br class="clear" />';
Chris@76 356 }
Chris@76 357
Chris@76 358 // Edit permission profiles (predefined).
Chris@76 359 function template_edit_profiles()
Chris@76 360 {
Chris@76 361 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 362
Chris@76 363 echo '
Chris@76 364 <div id="admincenter">
Chris@76 365 <form action="', $scripturl, '?action=admin;area=permissions;sa=profiles" method="post" accept-charset="', $context['character_set'], '">
Chris@76 366 <div class="title_bar">
Chris@76 367 <h3 class="titlebg">', $txt['permissions_profile_edit'], '</h3>
Chris@76 368 </div>
Chris@76 369
Chris@76 370 <table width="100%" class="table_grid">
Chris@76 371 <thead>
Chris@76 372 <tr class="catbg">
Chris@76 373 <th class="first_th">', $txt['permissions_profile_name'], '</th>
Chris@76 374 <th>', $txt['permissions_profile_used_by'], '</th>
Chris@76 375 <th class="last_th" width="5%">', $txt['delete'], '</th>
Chris@76 376 </tr>
Chris@76 377 </thead>
Chris@76 378 <tbody>';
Chris@76 379 $alternate = false;
Chris@76 380 foreach ($context['profiles'] as $profile)
Chris@76 381 {
Chris@76 382 echo '
Chris@76 383 <tr class="', $alternate ? 'windowbg' : 'windowbg2', '">
Chris@76 384 <td>';
Chris@76 385
Chris@76 386 if (!empty($context['show_rename_boxes']) && $profile['can_edit'])
Chris@76 387 echo '
Chris@76 388 <input type="text" name="rename_profile[', $profile['id'], ']" value="', $profile['name'], '" class="input_text" />';
Chris@76 389 else
Chris@76 390 echo '
Chris@76 391 <a href="', $scripturl, '?action=admin;area=permissions;sa=index;pid=', $profile['id'], ';', $context['session_var'], '=', $context['session_id'], '">', $profile['name'], '</a>';
Chris@76 392
Chris@76 393 echo '
Chris@76 394 </td>
Chris@76 395 <td>
Chris@76 396 ', !empty($profile['boards_text']) ? $profile['boards_text'] : $txt['permissions_profile_used_by_none'], '
Chris@76 397 </td>
Chris@76 398 <td align="center">
Chris@76 399 <input type="checkbox" name="delete_profile[]" value="', $profile['id'], '" ', $profile['can_delete'] ? '' : 'disabled="disabled"', ' class="input_check" />
Chris@76 400 </td>
Chris@76 401 </tr>';
Chris@76 402 $alternate = !$alternate;
Chris@76 403 }
Chris@76 404
Chris@76 405 echo '
Chris@76 406 </tbody>
Chris@76 407 </table>
Chris@76 408 <div class="righttext padding">
Chris@76 409 <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />';
Chris@76 410
Chris@76 411 if ($context['can_edit_something'])
Chris@76 412 echo '
Chris@76 413 <input type="submit" name="rename" value="', empty($context['show_rename_boxes']) ? $txt['permissions_profile_rename'] : $txt['permissions_commit'], '" class="button_submit" />';
Chris@76 414
Chris@76 415 echo '
Chris@76 416 <input type="submit" name="delete" value="', $txt['quickmod_delete_selected'], '" class="button_submit" />
Chris@76 417 </div>
Chris@76 418 </form>
Chris@76 419 <br />
Chris@76 420 <form action="', $scripturl, '?action=admin;area=permissions;sa=profiles" method="post" accept-charset="', $context['character_set'], '">
Chris@76 421 <div class="cat_bar">
Chris@76 422 <h3 class="catbg">', $txt['permissions_profile_new'], '</h3>
Chris@76 423 </div>
Chris@76 424 <div class="windowbg">
Chris@76 425 <span class="topslice"><span></span></span>
Chris@76 426 <div class="content">
Chris@76 427 <dl class="settings">
Chris@76 428 <dt>
Chris@76 429 <strong>', $txt['permissions_profile_name'], ':</strong>
Chris@76 430 </dt>
Chris@76 431 <dd>
Chris@76 432 <input type="text" name="profile_name" value="" class="input_text" />
Chris@76 433 </dd>
Chris@76 434 <dt>
Chris@76 435 <strong>', $txt['permissions_profile_copy_from'], ':</strong>
Chris@76 436 </dt>
Chris@76 437 <dd>
Chris@76 438 <select name="copy_from">';
Chris@76 439
Chris@76 440 foreach ($context['profiles'] as $id => $profile)
Chris@76 441 echo '
Chris@76 442 <option value="', $id, '">', $profile['name'], '</option>';
Chris@76 443
Chris@76 444 echo '
Chris@76 445 </select>
Chris@76 446 </dd>
Chris@76 447 </dl>
Chris@76 448 <div class="righttext">
Chris@76 449 <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
Chris@76 450 <input type="submit" name="create" value="', $txt['permissions_profile_new_create'], '" class="button_submit" />
Chris@76 451 </div>
Chris@76 452 </div>
Chris@76 453 <span class="botslice"><span></span></span>
Chris@76 454 </div>
Chris@76 455 </form>
Chris@76 456 </div>
Chris@76 457 <br class="clear" />';
Chris@76 458 }
Chris@76 459
Chris@76 460 function template_modify_group()
Chris@76 461 {
Chris@76 462 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 463
Chris@76 464 // Cannot be edited?
Chris@76 465 if (!$context['profile']['can_modify'])
Chris@76 466 {
Chris@76 467 echo '
Chris@76 468 <div class="errorbox">
Chris@76 469 ', sprintf($txt['permission_cannot_edit'], $scripturl . '?action=admin;area=permissions;sa=profiles'), '
Chris@76 470 </div>';
Chris@76 471 }
Chris@76 472 else
Chris@76 473 {
Chris@76 474 echo '
Chris@76 475 <script type="text/javascript"><!-- // --><![CDATA[
Chris@76 476 window.smf_usedDeny = false;
Chris@76 477
Chris@76 478 function warnAboutDeny()
Chris@76 479 {
Chris@76 480 if (window.smf_usedDeny)
Chris@76 481 return confirm("', $txt['permissions_deny_dangerous'], '");
Chris@76 482 else
Chris@76 483 return true;
Chris@76 484 }
Chris@76 485 // ]]></script>';
Chris@76 486 }
Chris@76 487
Chris@76 488 echo '
Chris@76 489 <div id="admincenter">
Chris@76 490 <form action="', $scripturl, '?action=admin;area=permissions;sa=modify2;group=', $context['group']['id'], ';pid=', $context['profile']['id'], '" method="post" accept-charset="', $context['character_set'], '" name="permissionForm" id="permissionForm" onsubmit="return warnAboutDeny();">';
Chris@76 491
Chris@76 492 if (!empty($modSettings['permission_enable_deny']) && $context['group']['id'] != -1)
Chris@76 493 echo '
Chris@76 494 <div class="information">
Chris@76 495 ', $txt['permissions_option_desc'], '
Chris@76 496 </div>';
Chris@76 497
Chris@76 498 echo '
Chris@76 499 <div class="cat_bar">
Chris@76 500 <h3 class="catbg">';
Chris@76 501 if ($context['permission_type'] == 'board')
Chris@76 502 echo '
Chris@76 503 ', $txt['permissions_local_for'], ' &quot;', $context['group']['name'], '&quot; ', $txt['permissions_on'], ' &quot;', $context['profile']['name'], '&quot;';
Chris@76 504 else
Chris@76 505 echo '
Chris@76 506 ', $context['permission_type'] == 'membergroup' ? $txt['permissions_general'] : $txt['permissions_board'], ' - &quot;', $context['group']['name'], '&quot;';
Chris@76 507 echo '
Chris@76 508 </h3>
Chris@76 509 </div>
Chris@76 510 <div class="windowbg">
Chris@76 511 <span class="topslice"><span></span></span>
Chris@76 512 <div class="content">
Chris@76 513 ', $txt['permissions_change_view'], ': ', ($context['view_type'] == 'simple' ? '<img src="' . $settings['images_url'] . '/selected.gif" alt="*" />' : ''), '<a href="', $scripturl, '?action=admin;area=permissions;sa=modify;group=', $context['group']['id'], ($context['permission_type'] == 'board' ? ';pid=' . $context['profile']['id'] : ''), ';view=simple">', $txt['permissions_view_simple'], '</a> |
Chris@76 514 ', ($context['view_type'] == 'classic' ? '<img src="' . $settings['images_url'] . '/selected.gif" alt="*" />' : ''), '<a href="', $scripturl, '?action=admin;area=permissions;sa=modify;group=', $context['group']['id'], ($context['permission_type'] == 'board' ? ';pid=' . $context['profile']['id'] : ''), ';view=classic">', $txt['permissions_view_classic'], '</a>
Chris@76 515 </div>
Chris@76 516 <span class="botslice"><span></span></span>
Chris@76 517 </div>
Chris@76 518 <div class="flow_hidden">';
Chris@76 519
Chris@76 520 // Draw out the main bits.
Chris@76 521 if ($context['view_type'] == 'simple')
Chris@76 522 template_modify_group_simple($context['permission_type']);
Chris@76 523 else
Chris@76 524 template_modify_group_classic($context['permission_type']);
Chris@76 525
Chris@76 526 // If this is general permissions also show the default profile.
Chris@76 527 if ($context['permission_type'] == 'membergroup')
Chris@76 528 {
Chris@76 529 echo '
Chris@76 530 </div>
Chris@76 531 <br />
Chris@76 532 <div class="cat_bar">
Chris@76 533 <h3 class="catbg">', $txt['permissions_board'], '</h3>
Chris@76 534 </div>
Chris@76 535 <div class="information">
Chris@76 536 ', $txt['permissions_board_desc'], '
Chris@76 537 </div>
Chris@76 538 <div class="flow_hidden">';
Chris@76 539
Chris@76 540 if ($context['view_type'] == 'simple')
Chris@76 541 template_modify_group_simple('board');
Chris@76 542 else
Chris@76 543 template_modify_group_classic('board');
Chris@76 544
Chris@76 545 echo '
Chris@76 546 </div>';
Chris@76 547 }
Chris@76 548
Chris@76 549 if ($context['profile']['can_modify'])
Chris@76 550 echo '
Chris@76 551 <div class="righttext padding">
Chris@76 552 <input type="submit" value="', $txt['permissions_commit'], '" class="button_submit" />
Chris@76 553 </div>';
Chris@76 554
Chris@76 555 echo '
Chris@76 556 <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
Chris@76 557 </form>
Chris@76 558 </div>
Chris@76 559 <br class="clear" />';
Chris@76 560
Chris@76 561 }
Chris@76 562
Chris@76 563 // A javascript enabled clean permissions view.
Chris@76 564 function template_modify_group_simple($type)
Chris@76 565 {
Chris@76 566 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 567
Chris@76 568 // Simple only has one column so we only need bother ourself with that one.
Chris@76 569 $permission_data = &$context['permissions'][$type]['columns'][0];
Chris@76 570
Chris@76 571 // Short cut for disabling fields we can't change.
Chris@76 572 $disable_field = $context['profile']['can_modify'] ? '' : 'disabled="disabled" ';
Chris@76 573
Chris@76 574 echo '
Chris@76 575 <table width="100%" class="table_grid">
Chris@76 576 <thead>
Chris@76 577 <tr class="catbg">
Chris@76 578 <th colspan="2" width="100%" align="left" class="first_th"></th>';
Chris@76 579 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 580 echo '
Chris@76 581 <th colspan="3" width="9" class="last_th">&nbsp;</th>';
Chris@76 582 else
Chris@76 583 echo '
Chris@76 584 <th>', $txt['permissions_option_on'], '</th>
Chris@76 585 <th>', $txt['permissions_option_off'], '</th>
Chris@76 586 <th class="last_th">', $txt['permissions_option_deny'], '</th>';
Chris@76 587 echo '
Chris@76 588 </tr>
Chris@76 589 </thead>
Chris@76 590 <tbody>';
Chris@76 591
Chris@76 592 foreach ($permission_data as $id_group => $permissionGroup)
Chris@76 593 {
Chris@76 594 if (empty($permissionGroup['permissions']))
Chris@76 595 continue;
Chris@76 596
Chris@76 597 // Are we likely to have something in this group to display or is it all hidden?
Chris@76 598 $has_display_content = false;
Chris@76 599 if (!$permissionGroup['hidden'])
Chris@76 600 {
Chris@76 601 // Before we go any further check we are going to have some data to print otherwise we just have a silly heading.
Chris@76 602 foreach ($permissionGroup['permissions'] as $permission)
Chris@76 603 if (!$permission['hidden'])
Chris@76 604 $has_display_content = true;
Chris@76 605
Chris@76 606 if ($has_display_content)
Chris@76 607 {
Chris@76 608 echo '
Chris@76 609 <tr class="windowbg">
Chris@76 610 <td colspan="2" width="100%" align="left">
Chris@76 611 <a href="#" onclick="return toggleBreakdown(\'', $id_group, '\');">
Chris@76 612 <img src="', $settings['images_url'], '/sort_down.gif" id="group_toggle_img_', $id_group, '" alt="*" />&nbsp;<strong>', $permissionGroup['name'], '</strong>
Chris@76 613 </a>
Chris@76 614 </td>';
Chris@76 615 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 616 echo '
Chris@76 617 <td colspan="3" width="10">
Chris@76 618 <div id="group_select_div_', $id_group, '">
Chris@76 619 <input type="checkbox" id="group_select_', $id_group, '" name="group_select_', $id_group, '" class="input_check" onclick="determineGroupState(\'', $id_group, '\', this.checked ? \'on\' : \'off\');" style="display: none;" ', $disable_field, '/>
Chris@76 620 </div>
Chris@76 621 </td>';
Chris@76 622 else
Chris@76 623 echo '
Chris@76 624 <td align="center">
Chris@76 625 <div id="group_select_div_on_', $id_group, '">
Chris@76 626 <input type="radio" id="group_select_on_', $id_group, '" name="group_select_', $id_group, '" value="on" onclick="determineGroupState(\'', $id_group, '\', \'on\');" style="display: none;" ', $disable_field, ' class="input_radio" />
Chris@76 627 </div>
Chris@76 628 </td>
Chris@76 629 <td align="center">
Chris@76 630 <div id="group_select_div_off_', $id_group, '">
Chris@76 631 <input type="radio" id="group_select_off_', $id_group, '" name="group_select_', $id_group, '" value="off" onclick="determineGroupState(\'', $id_group, '\', \'off\');" style="display: none;" ', $disable_field, ' class="input_radio" />
Chris@76 632 </div>
Chris@76 633 </td>
Chris@76 634 <td align="center">
Chris@76 635 <div id="group_select_div_deny_', $id_group, '">
Chris@76 636 <input type="radio" id="group_select_deny_', $id_group, '" name="group_select_', $id_group, '" value="deny" onclick="determineGroupState(\'', $id_group, '\', \'deny\');" style="display: none;" ', $disable_field, ' class="input_radio" />
Chris@76 637 </div>
Chris@76 638 </td>';
Chris@76 639 echo '
Chris@76 640 </tr>';
Chris@76 641 }
Chris@76 642 }
Chris@76 643
Chris@76 644 $alternate = false;
Chris@76 645 foreach ($permissionGroup['permissions'] as $permission)
Chris@76 646 {
Chris@76 647 // If it's hidden keep the last value.
Chris@76 648 if ($permission['hidden'] || $permissionGroup['hidden'])
Chris@76 649 {
Chris@76 650 echo '
Chris@76 651 <tr style="display: none;">
Chris@76 652 <td>
Chris@76 653 <input type="hidden" name="perm[', $type, '][', $permission['id'], ']" value="', $permission['select'] == 'denied' && !empty($modSettings['permission_enable_deny']) ? 'deny' : $permission['select'], '" />
Chris@76 654 </td>
Chris@76 655 </tr>';
Chris@76 656 }
Chris@76 657 else
Chris@76 658 {
Chris@76 659 echo '
Chris@76 660 <tr id="perm_div_', $id_group, '_', $permission['id'], '" class="', $alternate ? 'windowbg' : 'windowbg2', '">
Chris@76 661 <td valign="top" width="10" style="padding-right: 1ex;">
Chris@76 662 ', $permission['help_index'] ? '<a href="' . $scripturl . '?action=helpadmin;help=' . $permission['help_index'] . '" onclick="return reqWin(this.href);" class="help"><img src="' . $settings['images_url'] . '/helptopics.gif" alt="' . $txt['help'] . '" /></a>' : '', '
Chris@76 663 </td>
Chris@76 664 <td valign="top" width="100%" align="left" style="padding-bottom: 2px;">', $permission['name'], '</td>';
Chris@76 665
Chris@76 666 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 667 echo '
Chris@76 668 <td valign="top" style="padding-bottom: 2px;"><input type="checkbox" id="select_', $permission['id'], '" name="perm[', $type, '][', $permission['id'], ']"', $permission['select'] == 'on' ? ' checked="checked"' : '', ' onclick="determineGroupState(\'', $id_group, '\');" value="on" class="input_check" ', $disable_field, '/></td>';
Chris@76 669 else
Chris@76 670 echo '
Chris@76 671 <td valign="top" width="10" style="padding-bottom: 2px;"><input type="radio" id="select_on_', $permission['id'], '" name="perm[', $type, '][', $permission['id'], ']"', $permission['select'] == 'on' ? ' checked="checked"' : '', ' value="on" onclick="determineGroupState(\'', $id_group, '\');" class="input_radio" ', $disable_field, '/></td>
Chris@76 672 <td valign="top" width="10" style="padding-bottom: 2px;"><input type="radio" id="select_off_', $permission['id'], '" name="perm[', $type, '][', $permission['id'], ']"', $permission['select'] == 'off' ? ' checked="checked"' : '', ' value="off" onclick="determineGroupState(\'', $id_group, '\');" class="input_radio" ', $disable_field, '/></td>
Chris@76 673 <td valign="top" width="10" style="padding-bottom: 2px;"><input type="radio" id="select_deny_', $permission['id'], '" name="perm[', $type, '][', $permission['id'], ']"', $permission['select'] == 'denied' ? ' checked="checked"' : '', ' value="deny" onclick="window.smf_usedDeny = true; determineGroupState(\'', $id_group, '\');" class="input_radio" ', $disable_field, '/></td>';
Chris@76 674
Chris@76 675 echo '
Chris@76 676 </tr>';
Chris@76 677 }
Chris@76 678 $alternate = !$alternate;
Chris@76 679 }
Chris@76 680
Chris@76 681 if (!$permissionGroup['hidden'] && $has_display_content)
Chris@76 682 echo '
Chris@76 683 <tr id="group_hr_div_', $id_group, '" class="windowbg2 perm_groups">
Chris@76 684 <td colspan="5" width="100%"></td>
Chris@76 685 </tr>';
Chris@76 686 }
Chris@76 687 echo '
Chris@76 688 </tbody>
Chris@76 689 </table>
Chris@76 690 <script type="text/javascript"><!-- // --><![CDATA[';
Chris@76 691
Chris@76 692 if ($context['profile']['can_modify'] && empty($context['simple_javascript_displayed']))
Chris@76 693 {
Chris@76 694 // Only show this once.
Chris@76 695 $context['simple_javascript_displayed'] = true;
Chris@76 696
Chris@76 697 // Manually toggle the breakdown.
Chris@76 698 echo '
Chris@76 699 function toggleBreakdown(id_group, forcedisplayType)
Chris@76 700 {
Chris@76 701 displayType = document.getElementById("group_hr_div_" + id_group).style.display == "none" ? "" : "none";
Chris@76 702 if (typeof(forcedisplayType) != "undefined")
Chris@76 703 displayType = forcedisplayType;
Chris@76 704
Chris@76 705 for (i = 0; i < groupPermissions[id_group].length; i++)
Chris@76 706 {
Chris@76 707 document.getElementById("perm_div_" + id_group + "_" + groupPermissions[id_group][i]).style.display = displayType
Chris@76 708 }
Chris@76 709 document.getElementById("group_hr_div_" + id_group).style.display = displayType
Chris@76 710 document.getElementById("group_toggle_img_" + id_group).src = "', $settings['images_url'], '/" + (displayType == "none" ? "selected" : "sort_down") + ".gif";
Chris@76 711
Chris@76 712 return false;
Chris@76 713 }';
Chris@76 714
Chris@76 715 // This function decides what to do when ANYTHING is touched!
Chris@76 716 echo '
Chris@76 717 var groupPermissions = new Array();
Chris@76 718 function determineGroupState(id_group, forceState)
Chris@76 719 {
Chris@76 720 if (typeof(forceState) != "undefined")
Chris@76 721 thisState = forceState;
Chris@76 722
Chris@76 723 // Cycle through this groups elements.
Chris@76 724 var curState = false, thisState;
Chris@76 725 for (var i = 0; i < groupPermissions[id_group].length; i++)
Chris@76 726 {';
Chris@76 727
Chris@76 728 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 729 echo '
Chris@76 730 if (typeof(forceState) != "undefined")
Chris@76 731 {
Chris@76 732 document.getElementById(\'select_\' + groupPermissions[id_group][i]).checked = forceState == \'on\' ? 1 : 0;
Chris@76 733 }
Chris@76 734
Chris@76 735 thisState = document.getElementById(\'select_\' + groupPermissions[id_group][i]).checked ? \'on\' : \'off\';';
Chris@76 736 else
Chris@76 737 echo '
Chris@76 738 if (typeof(forceState) != "undefined")
Chris@76 739 {
Chris@76 740 document.getElementById(\'select_on_\' + groupPermissions[id_group][i]).checked = forceState == \'on\' ? 1 : 0;
Chris@76 741 document.getElementById(\'select_off_\' + groupPermissions[id_group][i]).checked = forceState == \'off\' ? 1 : 0;
Chris@76 742 document.getElementById(\'select_deny_\' + groupPermissions[id_group][i]).checked = forceState == \'deny\' ? 1 : 0;
Chris@76 743 }
Chris@76 744
Chris@76 745 if (document.getElementById(\'select_on_\' + groupPermissions[id_group][i]).checked)
Chris@76 746 thisState = \'on\';
Chris@76 747 else if (document.getElementById(\'select_off_\' + groupPermissions[id_group][i]).checked)
Chris@76 748 thisState = \'off\';
Chris@76 749 else
Chris@76 750 thisState = \'deny\';';
Chris@76 751
Chris@76 752 echo '
Chris@76 753 // Unless this is the first element, or it\'s the same state as the last we\'re buggered.
Chris@76 754 if (curState == false || thisState == curState)
Chris@76 755 {
Chris@76 756 curState = thisState;
Chris@76 757 }
Chris@76 758 else
Chris@76 759 {
Chris@76 760 curState = \'fudged\';
Chris@76 761 i = 999;
Chris@76 762 }
Chris@76 763 }
Chris@76 764
Chris@76 765 // First check the right master is selected!';
Chris@76 766 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 767 echo '
Chris@76 768 document.getElementById("group_select_" + id_group).checked = curState == \'on\' ? 1 : 0;';
Chris@76 769 else
Chris@76 770 echo '
Chris@76 771 document.getElementById("group_select_on_" + id_group).checked = curState == \'on\' ? 1 : 0;
Chris@76 772 document.getElementById("group_select_off_" + id_group).checked = curState == \'off\' ? 1 : 0;
Chris@76 773 document.getElementById("group_select_deny_" + id_group).checked = curState == \'deny\' ? 1 : 0;';
Chris@76 774
Chris@76 775 // Force the display?
Chris@76 776 echo '
Chris@76 777 if (curState != \'fudged\')
Chris@76 778 toggleBreakdown(id_group, "none");';
Chris@76 779 echo '
Chris@76 780 }';
Chris@76 781 }
Chris@76 782
Chris@76 783 // Some more javascript to be displayed as long as we are editing.
Chris@76 784 if ($context['profile']['can_modify'])
Chris@76 785 {
Chris@76 786 foreach ($permission_data as $id_group => $permissionGroup)
Chris@76 787 {
Chris@76 788 if (empty($permissionGroup['permissions']))
Chris@76 789 continue;
Chris@76 790
Chris@76 791 // As before...
Chris@76 792 $has_display_content = false;
Chris@76 793 if (!$permissionGroup['hidden'])
Chris@76 794 {
Chris@76 795 // Make sure we can show it.
Chris@76 796 foreach ($permissionGroup['permissions'] as $permission)
Chris@76 797 if (!$permission['hidden'])
Chris@76 798 $has_display_content = true;
Chris@76 799
Chris@76 800 // Make all the group indicators visible on JS only.
Chris@76 801 if ($has_display_content)
Chris@76 802 {
Chris@76 803 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 804 echo '
Chris@76 805 document.getElementById("group_select_div_', $id_group, '").parentNode.className = "lockedbg";
Chris@76 806 document.getElementById("group_select_', $id_group, '").style.display = "";';
Chris@76 807 else
Chris@76 808 echo '
Chris@76 809 document.getElementById("group_select_div_on_', $id_group, '").parentNode.className = "lockedbg";
Chris@76 810 document.getElementById("group_select_div_off_', $id_group, '").parentNode.className = "lockedbg";
Chris@76 811 document.getElementById("group_select_div_deny_', $id_group, '").parentNode.className = "lockedbg";
Chris@76 812 document.getElementById("group_select_on_', $id_group, '").style.display = "";
Chris@76 813 document.getElementById("group_select_off_', $id_group, '").style.display = "";
Chris@76 814 document.getElementById("group_select_deny_', $id_group, '").style.display = "";';
Chris@76 815 }
Chris@76 816
Chris@76 817 $perm_ids = array();
Chris@76 818 $count = 0;
Chris@76 819 foreach ($permissionGroup['permissions'] as $permission)
Chris@76 820 {
Chris@76 821 if (!$permission['hidden'])
Chris@76 822 {
Chris@76 823 // Need this for knowing what can be tweaked.
Chris@76 824 $perm_ids[] = "'$permission[id]'";
Chris@76 825 }
Chris@76 826 }
Chris@76 827 // Declare this groups permissions into an array.
Chris@76 828 if (!empty($perm_ids))
Chris@76 829 echo '
Chris@76 830 groupPermissions[\'', $id_group, '\'] = new Array(', count($perm_ids), ');';
Chris@76 831 foreach ($perm_ids as $count => $id)
Chris@76 832 echo '
Chris@76 833 groupPermissions[\'', $id_group, '\'][', $count, '] = ', $id, ';';
Chris@76 834
Chris@76 835 // Show the group as required.
Chris@76 836 if ($has_display_content)
Chris@76 837 echo '
Chris@76 838 determineGroupState(\'', $id_group, '\');';
Chris@76 839 }
Chris@76 840 }
Chris@76 841 }
Chris@76 842
Chris@76 843 echo '
Chris@76 844 // ]]></script>';
Chris@76 845 }
Chris@76 846
Chris@76 847 // The SMF 1.x way of looking at permissions.
Chris@76 848 function template_modify_group_classic($type)
Chris@76 849 {
Chris@76 850 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 851
Chris@76 852 $permission_type = &$context['permissions'][$type];
Chris@76 853 $disable_field = $context['profile']['can_modify'] ? '' : 'disabled="disabled" ';
Chris@76 854
Chris@76 855 echo '
Chris@76 856 <div class="windowbg2">
Chris@76 857 <span class="topslice"><span></span></span>
Chris@76 858 <div class="content">';
Chris@76 859
Chris@76 860 foreach ($permission_type['columns'] as $column)
Chris@76 861 {
Chris@76 862 echo '
Chris@76 863 <table width="49%" class="table_grid perm_classic floatleft">';
Chris@76 864
Chris@76 865 foreach ($column as $permissionGroup)
Chris@76 866 {
Chris@76 867 if (empty($permissionGroup['permissions']))
Chris@76 868 continue;
Chris@76 869
Chris@76 870 // Are we likely to have something in this group to display or is it all hidden?
Chris@76 871 $has_display_content = false;
Chris@76 872 if (!$permissionGroup['hidden'])
Chris@76 873 {
Chris@76 874 // Before we go any further check we are going to have some data to print otherwise we just have a silly heading.
Chris@76 875 foreach ($permissionGroup['permissions'] as $permission)
Chris@76 876 if (!$permission['hidden'])
Chris@76 877 $has_display_content = true;
Chris@76 878
Chris@76 879 if ($has_display_content)
Chris@76 880 {
Chris@76 881 echo '
Chris@76 882 <tr class="catbg">
Chris@76 883 <th colspan="2" width="100%" align="left"><strong class="smalltext">', $permissionGroup['name'], '</strong></th>';
Chris@76 884 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 885 echo '
Chris@76 886 <th colspan="3" width="10"></th>';
Chris@76 887 else
Chris@76 888 echo '
Chris@76 889 <th align="center"><div>', $txt['permissions_option_on'], '</div></th>
Chris@76 890 <th align="center"><div>', $txt['permissions_option_off'], '</div></th>
Chris@76 891 <th align="center"><div>', $txt['permissions_option_deny'], '</div></th>';
Chris@76 892 echo '
Chris@76 893 </tr>';
Chris@76 894 }
Chris@76 895 }
Chris@76 896
Chris@76 897 $alternate = false;
Chris@76 898 foreach ($permissionGroup['permissions'] as $permission)
Chris@76 899 {
Chris@76 900 // If it's hidden keep the last value.
Chris@76 901 if ($permission['hidden'] || $permissionGroup['hidden'])
Chris@76 902 {
Chris@76 903 echo '
Chris@76 904 <tr style="display: none;">
Chris@76 905 <td>';
Chris@76 906
Chris@76 907 if ($permission['has_own_any'])
Chris@76 908 {
Chris@76 909 // Guests can't have own permissions.
Chris@76 910 if ($context['group']['id'] != -1)
Chris@76 911 echo '
Chris@76 912 <input type="hidden" name="perm[', $permission_type['id'], '][', $permission['own']['id'], ']" value="', $permission['own']['select'] == 'denied' && !empty($modSettings['permission_enable_deny']) ? 'deny' : $permission['own']['select'], '" />';
Chris@76 913
Chris@76 914 echo '
Chris@76 915 <input type="hidden" name="perm[', $permission_type['id'], '][', $permission['any']['id'], ']" value="', $permission['any']['select'] == 'denied' && !empty($modSettings['permission_enable_deny']) ? 'deny' : $permission['any']['select'], '" />';
Chris@76 916 }
Chris@76 917 else
Chris@76 918 echo '
Chris@76 919 <input type="hidden" name="perm[', $permission_type['id'], '][', $permission['id'], ']" value="', $permission['select'] == 'denied' && !empty($modSettings['permission_enable_deny']) ? 'deny' : $permission['select'], '" />';
Chris@76 920 echo '
Chris@76 921 </td>
Chris@76 922 </tr>';
Chris@76 923 }
Chris@76 924 else
Chris@76 925 {
Chris@76 926 echo '
Chris@76 927 <tr class="', $alternate ? 'windowbg' : 'windowbg2', '">
Chris@76 928 <td width="10">
Chris@76 929 ', $permission['show_help'] ? '<a href="' . $scripturl . '?action=helpadmin;help=permissionhelp_' . $permission['id'] . '" onclick="return reqWin(this.href);" class="help"><img src="' . $settings['images_url'] . '/helptopics.gif" alt="' . $txt['help'] . '" /></a>' : '', '
Chris@76 930 </td>';
Chris@76 931
Chris@76 932 if ($permission['has_own_any'])
Chris@76 933 {
Chris@76 934 echo '
Chris@76 935 <td colspan="4" width="100%" align="left">', $permission['name'], '</td>
Chris@76 936 </tr><tr class="', $alternate ? 'windowbg' : 'windowbg2', '">';
Chris@76 937
Chris@76 938 // Guests can't do their own thing.
Chris@76 939 if ($context['group']['id'] != -1)
Chris@76 940 {
Chris@76 941 echo '
Chris@76 942 <td></td>
Chris@76 943 <td width="100%" class="smalltext" align="right">', $permission['own']['name'], ':</td>';
Chris@76 944
Chris@76 945 if (empty($modSettings['permission_enable_deny']))
Chris@76 946 echo '
Chris@76 947 <td colspan="3"><input type="checkbox" name="perm[', $permission_type['id'], '][', $permission['own']['id'], ']"', $permission['own']['select'] == 'on' ? ' checked="checked"' : '', ' value="on" id="', $permission['own']['id'], '_on" class="input_check" ', $disable_field, '/></td>';
Chris@76 948 else
Chris@76 949 echo '
Chris@76 950 <td width="10"><input type="radio" name="perm[', $permission_type['id'], '][', $permission['own']['id'], ']"', $permission['own']['select'] == 'on' ? ' checked="checked"' : '', ' value="on" id="', $permission['own']['id'], '_on" class="input_radio" ', $disable_field, '/></td>
Chris@76 951 <td width="10"><input type="radio" name="perm[', $permission_type['id'], '][', $permission['own']['id'], ']"', $permission['own']['select'] == 'off' ? ' checked="checked"' : '', ' value="off" class="input_radio" ', $disable_field, '/></td>
Chris@76 952 <td width="10"><input type="radio" name="perm[', $permission_type['id'], '][', $permission['own']['id'], ']"', $permission['own']['select'] == 'denied' ? ' checked="checked"' : '', ' value="deny" class="input_radio" ', $disable_field, '/></td>';
Chris@76 953
Chris@76 954 echo '
Chris@76 955 </tr><tr class="', $alternate ? 'windowbg' : 'windowbg2', '">';
Chris@76 956 }
Chris@76 957
Chris@76 958 echo '
Chris@76 959 <td></td>
Chris@76 960 <td width="100%" class="smalltext" align="right">', $permission['any']['name'], ':</td>';
Chris@76 961
Chris@76 962 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 963 echo '
Chris@76 964 <td colspan="3"><input type="checkbox" name="perm[', $permission_type['id'], '][', $permission['any']['id'], ']"', $permission['any']['select'] == 'on' ? ' checked="checked"' : '', ' value="on" class="input_check" ', $disable_field, '/></td>';
Chris@76 965 else
Chris@76 966 echo '
Chris@76 967 <td><input type="radio" name="perm[', $permission_type['id'], '][', $permission['any']['id'], ']"', $permission['any']['select'] == 'on' ? ' checked="checked"' : '', ' value="on" onclick="document.forms.permissionForm.', $permission['own']['id'], '_on.checked = true;" class="input_radio" ', $disable_field, '/></td>
Chris@76 968 <td><input type="radio" name="perm[', $permission_type['id'], '][', $permission['any']['id'], ']"', $permission['any']['select'] == 'off' ? ' checked="checked"' : '', ' value="off" class="input_radio" ', $disable_field, '/></td>
Chris@76 969 <td><input type="radio" name="perm[', $permission_type['id'], '][', $permission['any']['id'], ']"', $permission['any']['select']== 'denied' ? ' checked="checked"' : '', ' value="deny" id="', $permission['any']['id'], '_deny" onclick="window.smf_usedDeny = true;" class="input_radio" ', $disable_field, '/></td>';
Chris@76 970
Chris@76 971 echo '
Chris@76 972 </tr>';
Chris@76 973 }
Chris@76 974 else
Chris@76 975 {
Chris@76 976 echo '
Chris@76 977 <td width="100%" align="left">', $permission['name'], '</td>';
Chris@76 978
Chris@76 979 if (empty($modSettings['permission_enable_deny']) || $context['group']['id'] == -1)
Chris@76 980 echo '
Chris@76 981 <td><input type="checkbox" name="perm[', $permission_type['id'], '][', $permission['id'], ']"', $permission['select'] == 'on' ? ' checked="checked"' : '', ' value="on" class="input_check" ', $disable_field, '/></td>';
Chris@76 982 else
Chris@76 983 echo '
Chris@76 984 <td><input type="radio" name="perm[', $permission_type['id'], '][', $permission['id'], ']"', $permission['select'] == 'on' ? ' checked="checked"' : '', ' value="on" class="input_radio" ', $disable_field, '/></td>
Chris@76 985 <td><input type="radio" name="perm[', $permission_type['id'], '][', $permission['id'], ']"', $permission['select'] == 'off' ? ' checked="checked"' : '', ' value="off" class="input_radio" ', $disable_field, '/></td>
Chris@76 986 <td><input type="radio" name="perm[', $permission_type['id'], '][', $permission['id'], ']"', $permission['select'] == 'denied' ? ' checked="checked"' : '', ' value="deny" onclick="window.smf_usedDeny = true;" class="input_radio" ', $disable_field, '/></td>';
Chris@76 987
Chris@76 988 echo '
Chris@76 989 </tr>';
Chris@76 990 }
Chris@76 991 }
Chris@76 992 $alternate = !$alternate;
Chris@76 993 }
Chris@76 994
Chris@76 995 if (!$permissionGroup['hidden'] && $has_display_content)
Chris@76 996 echo '
Chris@76 997 <tr class="windowbg2">
Chris@76 998 <td colspan="5" width="100%"><!--separator--></td>
Chris@76 999 </tr>';
Chris@76 1000 }
Chris@76 1001 echo '
Chris@76 1002 </table>';
Chris@76 1003 }
Chris@76 1004 echo '
Chris@76 1005 <br class="clear" />
Chris@76 1006 </div>
Chris@76 1007 <span class="botslice"><span></span></span>
Chris@76 1008 </div>';
Chris@76 1009 }
Chris@76 1010
Chris@76 1011 function template_inline_permissions()
Chris@76 1012 {
Chris@76 1013 global $context, $settings, $options, $txt, $modSettings;
Chris@76 1014
Chris@76 1015 echo '
Chris@76 1016 <fieldset id="', $context['current_permission'], '">
Chris@76 1017 <legend><a href="javascript:void(0);" onclick="document.getElementById(\'', $context['current_permission'], '\').style.display = \'none\';document.getElementById(\'', $context['current_permission'], '_groups_link\').style.display = \'block\'; return false;">', $txt['avatar_select_permission'], '</a></legend>';
Chris@76 1018 if (empty($modSettings['permission_enable_deny']))
Chris@76 1019 echo '
Chris@76 1020 <ul class="permission_groups">';
Chris@76 1021 else
Chris@76 1022 echo '
Chris@76 1023 <div class="information">', $txt['permissions_option_desc'], '</div>
Chris@76 1024 <dl class="settings">
Chris@76 1025 <dt>
Chris@76 1026 <span class="perms"><strong>', $txt['permissions_option_on'], '</strong></span>
Chris@76 1027 <span class="perms"><strong>', $txt['permissions_option_off'], '</strong></span>
Chris@76 1028 <span class="perms" style="color: red;"><strong>', $txt['permissions_option_deny'], '</strong></span>
Chris@76 1029 </dt>
Chris@76 1030 <dd>
Chris@76 1031 </dd>';
Chris@76 1032 foreach ($context['member_groups'] as $group)
Chris@76 1033 {
Chris@76 1034 if (!empty($modSettings['permission_enable_deny']))
Chris@76 1035 echo '
Chris@76 1036 <dt>';
Chris@76 1037 else
Chris@76 1038 echo '
Chris@76 1039 <li>';
Chris@76 1040
Chris@76 1041 if (empty($modSettings['permission_enable_deny']))
Chris@76 1042 echo '
Chris@76 1043 <input type="checkbox" name="', $context['current_permission'], '[', $group['id'], ']" value="on"', $group['status'] == 'on' ? ' checked="checked"' : '', ' class="input_check" />';
Chris@76 1044 else
Chris@76 1045 echo '
Chris@76 1046 <span class="perms"><input type="radio" name="', $context['current_permission'], '[', $group['id'], ']" value="on"', $group['status'] == 'on' ? ' checked="checked"' : '', ' class="input_radio" /></span>
Chris@76 1047 <span class="perms"><input type="radio" name="', $context['current_permission'], '[', $group['id'], ']" value="off"', $group['status'] == 'off' ? ' checked="checked"' : '', ' class="input_radio" /></span>
Chris@76 1048 <span class="perms"><input type="radio" name="', $context['current_permission'], '[', $group['id'], ']" value="deny"', $group['status'] == 'deny' ? ' checked="checked"' : '', ' class="input_radio" /></span>';
Chris@76 1049
Chris@76 1050 if (!empty($modSettings['permission_enable_deny']))
Chris@76 1051 echo '
Chris@76 1052 </dt>
Chris@76 1053 <dd>
Chris@76 1054 <span', $group['is_postgroup'] ? ' style="font-style: italic;"' : '', '>', $group['name'], '</span>
Chris@76 1055 </dd>';
Chris@76 1056 else
Chris@76 1057 echo '
Chris@76 1058 <span', $group['is_postgroup'] ? ' style="font-style: italic;"' : '', '>', $group['name'], '</span>
Chris@76 1059 </li>';
Chris@76 1060 }
Chris@76 1061
Chris@76 1062 if (empty($modSettings['permission_enable_deny']))
Chris@76 1063 echo '
Chris@76 1064 </ul>';
Chris@76 1065 else
Chris@76 1066 echo '
Chris@76 1067 </dl>';
Chris@76 1068
Chris@76 1069 echo '
Chris@76 1070 </fieldset>
Chris@76 1071
Chris@76 1072 <a href="javascript:void(0);" onclick="document.getElementById(\'', $context['current_permission'], '\').style.display = \'block\'; document.getElementById(\'', $context['current_permission'], '_groups_link\').style.display = \'none\'; return false;" id="', $context['current_permission'], '_groups_link" style="display: none;">[ ', $txt['avatar_select_permission'], ' ]</a>
Chris@76 1073
Chris@76 1074 <script type="text/javascript"><!-- // --><![CDATA[
Chris@76 1075 document.getElementById("', $context['current_permission'], '").style.display = "none";
Chris@76 1076 document.getElementById("', $context['current_permission'], '_groups_link").style.display = "";
Chris@76 1077 // ]]></script>';
Chris@76 1078 }
Chris@76 1079
Chris@76 1080 // Edit post moderation permissions.
Chris@76 1081 function template_postmod_permissions()
Chris@76 1082 {
Chris@76 1083 global $context, $settings, $options, $scripturl, $txt, $modSettings;
Chris@76 1084
Chris@76 1085 echo '
Chris@76 1086 <div id="admincenter">
Chris@76 1087 <form action="', $scripturl, '?action=admin;area=permissions;sa=postmod;', $context['session_var'], '=', $context['session_id'], '" method="post" name="postmodForm" id="postmodForm" accept-charset="', $context['character_set'], '">
Chris@76 1088 <div class="title_bar">
Chris@76 1089 <h3 class="titlebg">', $txt['permissions_post_moderation'], '</h3>
Chris@76 1090 </div>';
Chris@76 1091
Chris@76 1092 // Got advanced permissions - if so warn!
Chris@76 1093 if (!empty($modSettings['permission_enable_deny']))
Chris@76 1094 echo '
Chris@76 1095 <div class="information">', $txt['permissions_post_moderation_deny_note'], '</div>';
Chris@76 1096
Chris@76 1097 echo '
Chris@76 1098 <div class="righttext padding">
Chris@76 1099 ', $txt['permissions_post_moderation_select'], ':
Chris@76 1100 <select name="pid" onchange="document.forms.postmodForm.submit();">';
Chris@76 1101
Chris@76 1102 foreach ($context['profiles'] as $profile)
Chris@76 1103 if ($profile['can_modify'])
Chris@76 1104 echo '
Chris@76 1105 <option value="', $profile['id'], '" ', $profile['id'] == $context['current_profile'] ? 'selected="selected"' : '', '>', $profile['name'], '</option>';
Chris@76 1106
Chris@76 1107 echo '
Chris@76 1108 </select>
Chris@76 1109 <input type="submit" value="', $txt['go'], '" class="button_submit" />
Chris@76 1110 </div>
Chris@76 1111 <table width="100%" class="table_grid">
Chris@76 1112 <thead>
Chris@76 1113 <tr class="catbg">
Chris@76 1114 <th class="first_th"></th>
Chris@76 1115 <th align="center" colspan="3">
Chris@76 1116 ', $txt['permissions_post_moderation_new_topics'], '
Chris@76 1117 </th>
Chris@76 1118 <th align="center" colspan="3">
Chris@76 1119 ', $txt['permissions_post_moderation_replies_own'], '
Chris@76 1120 </th>
Chris@76 1121 <th align="center" colspan="3">
Chris@76 1122 ', $txt['permissions_post_moderation_replies_any'], '
Chris@76 1123 </th>
Chris@76 1124 <th class="last_th" align="center" colspan="3">
Chris@76 1125 ', $txt['permissions_post_moderation_attachments'], '
Chris@76 1126 </th>
Chris@76 1127 </tr>
Chris@76 1128 <tr class="titlebg">
Chris@76 1129 <th width="30%">
Chris@76 1130 ', $txt['permissions_post_moderation_group'], '
Chris@76 1131 </th>
Chris@76 1132 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_allow.gif" alt="', $txt['permissions_post_moderation_allow'], '" title="', $txt['permissions_post_moderation_allow'], '" /></th>
Chris@76 1133 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_moderate.gif" alt="', $txt['permissions_post_moderation_moderate'], '" title="', $txt['permissions_post_moderation_moderate'], '" /></th>
Chris@76 1134 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_deny.gif" alt="', $txt['permissions_post_moderation_disallow'], '" title="', $txt['permissions_post_moderation_disallow'], '" /></th>
Chris@76 1135 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_allow.gif" alt="', $txt['permissions_post_moderation_allow'], '" title="', $txt['permissions_post_moderation_allow'], '" /></th>
Chris@76 1136 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_moderate.gif" alt="', $txt['permissions_post_moderation_moderate'], '" title="', $txt['permissions_post_moderation_moderate'], '" /></th>
Chris@76 1137 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_deny.gif" alt="', $txt['permissions_post_moderation_disallow'], '" title="', $txt['permissions_post_moderation_disallow'], '" /></th>
Chris@76 1138 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_allow.gif" alt="', $txt['permissions_post_moderation_allow'], '" title="', $txt['permissions_post_moderation_allow'], '" /></th>
Chris@76 1139 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_moderate.gif" alt="', $txt['permissions_post_moderation_moderate'], '" title="', $txt['permissions_post_moderation_moderate'], '" /></th>
Chris@76 1140 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_deny.gif" alt="', $txt['permissions_post_moderation_disallow'], '" title="', $txt['permissions_post_moderation_disallow'], '" /></th>
Chris@76 1141 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_allow.gif" alt="', $txt['permissions_post_moderation_allow'], '" title="', $txt['permissions_post_moderation_allow'], '" /></th>
Chris@76 1142 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_moderate.gif" alt="', $txt['permissions_post_moderation_moderate'], '" title="', $txt['permissions_post_moderation_moderate'], '" /></th>
Chris@76 1143 <th align="center"><img src="', $settings['default_images_url'], '/admin/post_moderation_deny.gif" alt="', $txt['permissions_post_moderation_disallow'], '" title="', $txt['permissions_post_moderation_disallow'], '" /></th>
Chris@76 1144 </tr>
Chris@76 1145 </thead>
Chris@76 1146 <tbody>';
Chris@76 1147
Chris@76 1148 foreach ($context['profile_groups'] as $group)
Chris@76 1149 {
Chris@76 1150 echo '
Chris@76 1151 <tr>
Chris@76 1152 <td width="40%" class="windowbg">
Chris@76 1153 <span ', ($group['color'] ? 'style="color: ' . $group['color'] . '"' : ''), '>', $group['name'], '</span>';
Chris@76 1154 if (!empty($group['children']))
Chris@76 1155 echo '
Chris@76 1156 <br /><span class="smalltext">', $txt['permissions_includes_inherited'], ': &quot;', implode('&quot;, &quot;', $group['children']), '&quot;</span>';
Chris@76 1157
Chris@76 1158 echo '
Chris@76 1159 </td>
Chris@76 1160 <td align="center" class="windowbg2"><input type="radio" name="new_topic[', $group['id'], ']" value="allow" ', $group['new_topic'] == 'allow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1161 <td align="center" class="windowbg2"><input type="radio" name="new_topic[', $group['id'], ']" value="moderate" ', $group['new_topic'] == 'moderate' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1162 <td align="center" class="windowbg2"><input type="radio" name="new_topic[', $group['id'], ']" value="disallow" ', $group['new_topic'] == 'disallow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1163 <td align="center" class="windowbg"><input type="radio" name="replies_own[', $group['id'], ']" value="allow" ', $group['replies_own'] == 'allow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1164 <td align="center" class="windowbg"><input type="radio" name="replies_own[', $group['id'], ']" value="moderate" ', $group['replies_own'] == 'moderate' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1165 <td align="center" class="windowbg"><input type="radio" name="replies_own[', $group['id'], ']" value="disallow" ', $group['replies_own'] == 'disallow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1166 <td align="center" class="windowbg2"><input type="radio" name="replies_any[', $group['id'], ']" value="allow" ', $group['replies_any'] == 'allow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1167 <td align="center" class="windowbg2"><input type="radio" name="replies_any[', $group['id'], ']" value="moderate" ', $group['replies_any'] == 'moderate' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1168 <td align="center" class="windowbg2"><input type="radio" name="replies_any[', $group['id'], ']" value="disallow" ', $group['replies_any'] == 'disallow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1169 <td align="center" class="windowbg"><input type="radio" name="attachment[', $group['id'], ']" value="allow" ', $group['attachment'] == 'allow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1170 <td align="center" class="windowbg"><input type="radio" name="attachment[', $group['id'], ']" value="moderate" ', $group['attachment'] == 'moderate' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1171 <td align="center" class="windowbg"><input type="radio" name="attachment[', $group['id'], ']" value="disallow" ', $group['attachment'] == 'disallow' ? 'checked="checked"' : '', ' class="input_radio" /></td>
Chris@76 1172 </tr>';
Chris@76 1173 }
Chris@76 1174
Chris@76 1175 echo '
Chris@76 1176 </tbody>
Chris@76 1177 </table>
Chris@76 1178 <div class="righttext padding">
Chris@76 1179 <input type="submit" name="save_changes" value="', $txt['permissions_commit'], '" class="button_submit" />
Chris@76 1180 </div>
Chris@76 1181 </form>
Chris@76 1182 <p class="smalltext" style="padding-left: 10px;">
Chris@76 1183 <strong>', $txt['permissions_post_moderation_legend'], ':</strong><br />
Chris@76 1184 <img src="', $settings['default_images_url'], '/admin/post_moderation_allow.gif" alt="', $txt['permissions_post_moderation_allow'], '" /> - ', $txt['permissions_post_moderation_allow'], '<br />
Chris@76 1185 <img src="', $settings['default_images_url'], '/admin/post_moderation_moderate.gif" alt="', $txt['permissions_post_moderation_moderate'], '" /> - ', $txt['permissions_post_moderation_moderate'], '<br />
Chris@76 1186 <img src="', $settings['default_images_url'], '/admin/post_moderation_deny.gif" alt="', $txt['permissions_post_moderation_disallow'], '" /> - ', $txt['permissions_post_moderation_disallow'], '
Chris@76 1187 </p>
Chris@76 1188 </div>
Chris@76 1189 <br class="clear" />';
Chris@76 1190 }
Chris@76 1191
Chris@76 1192 ?>