75
+ − 1
<?php
+ − 2
+ − 3
/*
+ − 4
* Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between
285
+ − 5
* Version 1.0.4 (Ellyyllon)
75
+ − 6
* Copyright (C) 2006-2007 Dan Fuhry
+ − 7
*
+ − 8
* This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License
+ − 9
* as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
+ − 10
*
+ − 11
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ − 12
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
+ − 13
*/
+ − 14
+ − 15
function page_Admin_PageGroups()
+ − 16
{
+ − 17
global $db, $session, $paths, $template, $plugins; // Common objects
+ − 18
if ( $session->auth_level < USER_LEVEL_ADMIN || $session->user_level < USER_LEVEL_ADMIN )
+ − 19
{
+ − 20
echo '<h3>Error: Not authenticated</h3><p>It looks like your administration session is invalid or you are not authorized to access this administration page. Please <a href="' . makeUrlNS('Special', 'Login/' . $paths->nslist['Special'] . 'Administration', 'level=' . USER_LEVEL_ADMIN, true) . '">re-authenticate</a> to continue.</p>';
+ − 21
return;
+ − 22
}
+ − 23
+ − 24
if ( isset($_POST['action']) )
+ − 25
{
+ − 26
if ( isset($_POST['action']['create']) || isset($_POST['action']['create_stage2']) )
+ − 27
{
+ − 28
switch ( isset($_POST['action']['create_stage2']) )
+ − 29
{
+ − 30
case true:
+ − 31
if ( empty($_POST['pg_name']) || empty($_POST['group_type']) )
+ − 32
{
+ − 33
echo '<div class="error-box">Please enter a name for the page group.</div>';
+ − 34
return;
+ − 35
}
+ − 36
if ( $_POST['group_type'] == PAGE_GRP_TAGGED && empty($_POST['member_tag']) )
+ − 37
{
+ − 38
echo '<div class="error-box">Please enter a page tag.</div>';
+ − 39
return;
+ − 40
}
+ − 41
if ( $_POST['group_type'] == PAGE_GRP_CATLINK && empty($_POST['member_cat']) )
+ − 42
{
+ − 43
echo '<div class="error-box">Please create a category page before linking a page group to a category.</div>';
+ − 44
return;
+ − 45
}
+ − 46
if ( $_POST['group_type'] == PAGE_GRP_NORMAL && empty($_POST['member_page_0']) )
+ − 47
{
+ − 48
echo '<div class="error-box">Please specify at least one page to place in this group.</div>';
+ − 49
return;
+ − 50
}
155
+ − 51
if ( $_POST['group_type'] == PAGE_GRP_REGEX && empty($_POST['regex']) )
+ − 52
{
+ − 53
echo '<div class="error-box">Please specify a regular expression to match page IDs against.</div>';
+ − 54
return;
+ − 55
}
+ − 56
if ( $_POST['group_type'] != PAGE_GRP_TAGGED && $_POST['group_type'] != PAGE_GRP_CATLINK && $_POST['group_type'] != PAGE_GRP_NORMAL && $_POST['group_type'] != PAGE_GRP_REGEX )
75
+ − 57
{
+ − 58
echo '<div class="error-box">Umm, you sent an invalid group type. I\'d put a real error message here but this will only be shown if you try to hack the system.</div>';
+ − 59
return;
+ − 60
}
+ − 61
// All checks passed, create the group
+ − 62
switch($_POST['group_type'])
+ − 63
{
+ − 64
case PAGE_GRP_TAGGED:
+ − 65
$name = $db->escape($_POST['pg_name']);
+ − 66
$tag = $db->escape($_POST['member_tag']);
+ − 67
$sql = 'INSERT INTO '.table_prefix.'page_groups(pg_type,pg_name,pg_target) VALUES(' . PAGE_GRP_TAGGED . ', \'' . $name . '\', \'' . $tag . '\');';
+ − 68
$q = $db->sql_query($sql);
+ − 69
if ( !$q )
+ − 70
$db->_die();
+ − 71
break;
+ − 72
case PAGE_GRP_CATLINK:
+ − 73
$name = $db->escape($_POST['pg_name']);
+ − 74
$cat = $db->escape($_POST['member_cat']);
+ − 75
$sql = 'INSERT INTO '.table_prefix.'page_groups(pg_type,pg_name,pg_target) VALUES(' . PAGE_GRP_CATLINK . ', \'' . $name . '\', \'' . $cat . '\');';
+ − 76
$q = $db->sql_query($sql);
+ − 77
if ( !$q )
+ − 78
$db->_die();
+ − 79
break;
+ − 80
case PAGE_GRP_NORMAL:
+ − 81
$name = $db->escape($_POST['pg_name']);
+ − 82
$sql = 'INSERT INTO '.table_prefix.'page_groups(pg_type,pg_name) VALUES(' . PAGE_GRP_NORMAL . ', \'' . $name . '\');';
+ − 83
$q = $db->sql_query($sql);
+ − 84
if ( !$q )
+ − 85
$db->_die();
+ − 86
+ − 87
$ins_id = $db->insert_id();
+ − 88
+ − 89
// Page list
+ − 90
$keys = array_keys($_POST);
+ − 91
$arr_pages = array();
+ − 92
foreach ( $keys as $val )
+ − 93
{
+ − 94
if ( preg_match('/^member_page_([0-9]+?)$/', $val) && !empty($_POST[$val]) && isPage($_POST[$val]) )
+ − 95
{
+ − 96
$arr_pages[] = $_POST[$val];
+ − 97
}
+ − 98
}
+ − 99
$arr_sql = array();
+ − 100
foreach ( $arr_pages as $page )
+ − 101
{
+ − 102
list($id, $ns) = RenderMan::strToPageID($page);
+ − 103
$id = sanitize_page_id($id);
+ − 104
$arr_sql[] = '(' . $ins_id . ',\'' . $db->escape($id) . '\', \'' . $ns . '\')';
+ − 105
}
+ − 106
$sql = 'INSERT INTO '.table_prefix.'page_group_members(pg_id,page_id,namespace) VALUES' . implode(',', $arr_sql) . ';';
+ − 107
$q = $db->sql_query($sql);
+ − 108
if ( !$q )
+ − 109
$db->_die();
+ − 110
break;
155
+ − 111
case PAGE_GRP_REGEX:
+ − 112
$name = $db->escape($_POST['pg_name']);
+ − 113
$regex = $db->escape($_POST['regex']);
+ − 114
$sql = 'INSERT INTO '.table_prefix.'page_groups(pg_type,pg_name,pg_target) VALUES(' . PAGE_GRP_REGEX . ', \'' . $name . '\', \'' . $regex . '\');';
+ − 115
$q = $db->sql_query($sql);
+ − 116
if ( !$q )
+ − 117
$db->_die();
+ − 118
break;
75
+ − 119
}
+ − 120
echo '<div class="info-box">The page group "' . htmlspecialchars($_POST['pg_name']) . '" has been created.</div>';
+ − 121
break;
+ − 122
}
+ − 123
// A little Javascript magic
+ − 124
?>
+ − 125
<script language="javascript" type="text/javascript">
+ − 126
function pg_create_typeset(selector)
+ − 127
{
+ − 128
var pg_normal = <?php echo PAGE_GRP_NORMAL; ?>;
+ − 129
var pg_tagged = <?php echo PAGE_GRP_TAGGED; ?>;
+ − 130
var pg_catlink = <?php echo PAGE_GRP_CATLINK; ?>;
155
+ − 131
var pg_regex = <?php echo PAGE_GRP_REGEX; ?>;
75
+ − 132
var selection = false;
+ − 133
// Get selection
+ − 134
for ( var i = 0; i < selector.childNodes.length; i++ )
+ − 135
{
+ − 136
var child = selector.childNodes[i];
+ − 137
if ( !child || child.tagName != 'OPTION' )
+ − 138
{
+ − 139
continue;
+ − 140
}
+ − 141
if ( child.selected )
+ − 142
{
+ − 143
selection = child.value;
+ − 144
}
+ − 145
}
+ − 146
if ( !selection )
+ − 147
{
+ − 148
alert('Cannot get field value');
+ − 149
return true;
+ − 150
}
+ − 151
selection = parseInt(selection);
155
+ − 152
if ( selection != pg_normal && selection != pg_tagged && selection != pg_catlink && selection != pg_regex )
75
+ − 153
{
+ − 154
alert('Invalid field value');
+ − 155
return true;
+ − 156
}
+ − 157
+ − 158
// We have the selection and it's validated; show the appropriate field group
+ − 159
+ − 160
if ( selection == pg_normal )
+ − 161
{
+ − 162
document.getElementById('pg_create_title_catlink').style.display = 'none';
+ − 163
document.getElementById('pg_create_catlink_1').style.display = 'none';
+ − 164
document.getElementById('pg_create_catlink_2').style.display = 'none';
+ − 165
+ − 166
document.getElementById('pg_create_title_tagged').style.display = 'none';
+ − 167
document.getElementById('pg_create_tagged_1').style.display = 'none';
+ − 168
document.getElementById('pg_create_tagged_2').style.display = 'none';
+ − 169
+ − 170
document.getElementById('pg_create_title_normal').style.display = 'inline';
+ − 171
document.getElementById('pg_create_normal_1').style.display = 'block';
+ − 172
document.getElementById('pg_create_normal_2').style.display = 'block';
155
+ − 173
+ − 174
document.getElementById('pg_create_title_regex').style.display = 'none';
+ − 175
document.getElementById('pg_create_regex_1').style.display = 'none';
+ − 176
document.getElementById('pg_create_regex_2').style.display = 'none';
75
+ − 177
}
+ − 178
else if ( selection == pg_catlink )
+ − 179
{
+ − 180
document.getElementById('pg_create_title_catlink').style.display = 'inline';
+ − 181
document.getElementById('pg_create_catlink_1').style.display = 'block';
+ − 182
document.getElementById('pg_create_catlink_2').style.display = 'block';
+ − 183
+ − 184
document.getElementById('pg_create_title_tagged').style.display = 'none';
+ − 185
document.getElementById('pg_create_tagged_1').style.display = 'none';
+ − 186
document.getElementById('pg_create_tagged_2').style.display = 'none';
+ − 187
+ − 188
document.getElementById('pg_create_title_normal').style.display = 'none';
+ − 189
document.getElementById('pg_create_normal_1').style.display = 'none';
+ − 190
document.getElementById('pg_create_normal_2').style.display = 'none';
155
+ − 191
+ − 192
document.getElementById('pg_create_title_regex').style.display = 'none';
+ − 193
document.getElementById('pg_create_regex_1').style.display = 'none';
+ − 194
document.getElementById('pg_create_regex_2').style.display = 'none';
75
+ − 195
}
+ − 196
else if ( selection == pg_tagged )
+ − 197
{
+ − 198
document.getElementById('pg_create_title_catlink').style.display = 'none';
+ − 199
document.getElementById('pg_create_catlink_1').style.display = 'none';
+ − 200
document.getElementById('pg_create_catlink_2').style.display = 'none';
+ − 201
+ − 202
document.getElementById('pg_create_title_tagged').style.display = 'inline';
+ − 203
document.getElementById('pg_create_tagged_1').style.display = 'block';
+ − 204
document.getElementById('pg_create_tagged_2').style.display = 'block';
+ − 205
+ − 206
document.getElementById('pg_create_title_normal').style.display = 'none';
+ − 207
document.getElementById('pg_create_normal_1').style.display = 'none';
+ − 208
document.getElementById('pg_create_normal_2').style.display = 'none';
155
+ − 209
+ − 210
document.getElementById('pg_create_title_regex').style.display = 'none';
+ − 211
document.getElementById('pg_create_regex_1').style.display = 'none';
+ − 212
document.getElementById('pg_create_regex_2').style.display = 'none';
+ − 213
}
+ − 214
else if ( selection == pg_regex )
+ − 215
{
+ − 216
document.getElementById('pg_create_title_catlink').style.display = 'none';
+ − 217
document.getElementById('pg_create_catlink_1').style.display = 'none';
+ − 218
document.getElementById('pg_create_catlink_2').style.display = 'none';
+ − 219
+ − 220
document.getElementById('pg_create_title_tagged').style.display = 'none';
+ − 221
document.getElementById('pg_create_tagged_1').style.display = 'none';
+ − 222
document.getElementById('pg_create_tagged_2').style.display = 'none';
+ − 223
+ − 224
document.getElementById('pg_create_title_normal').style.display = 'none';
+ − 225
document.getElementById('pg_create_normal_1').style.display = 'none';
+ − 226
document.getElementById('pg_create_normal_2').style.display = 'none';
+ − 227
+ − 228
document.getElementById('pg_create_title_regex').style.display = 'inline';
+ − 229
document.getElementById('pg_create_regex_1').style.display = 'block';
+ − 230
document.getElementById('pg_create_regex_2').style.display = 'block';
75
+ − 231
}
+ − 232
+ − 233
}
+ − 234
+ − 235
// Set to pg_normal on page load
+ − 236
var pg_createform_init = function()
+ − 237
{
+ − 238
document.getElementById('pg_create_title_catlink').style.display = 'none';
+ − 239
document.getElementById('pg_create_catlink_1').style.display = 'none';
+ − 240
document.getElementById('pg_create_catlink_2').style.display = 'none';
+ − 241
+ − 242
document.getElementById('pg_create_title_tagged').style.display = 'none';
+ − 243
document.getElementById('pg_create_tagged_1').style.display = 'none';
+ − 244
document.getElementById('pg_create_tagged_2').style.display = 'none';
+ − 245
155
+ − 246
document.getElementById('pg_create_title_regex').style.display = 'none';
+ − 247
document.getElementById('pg_create_regex_1').style.display = 'none';
+ − 248
document.getElementById('pg_create_regex_2').style.display = 'none';
+ − 249
75
+ − 250
document.getElementById('pg_create_title_normal').style.display = 'inline';
+ − 251
document.getElementById('pg_create_normal_1').style.display = 'block';
+ − 252
document.getElementById('pg_create_normal_2').style.display = 'block';
+ − 253
}
+ − 254
+ − 255
addOnloadHook(pg_createform_init);
+ − 256
+ − 257
function pg_create_more_fields()
+ − 258
{
+ − 259
var targettd = document.getElementById('pg_create_normal_2');
+ − 260
var id = 0;
+ − 261
for ( var i = 0; i < targettd.childNodes.length; i++ )
+ − 262
{
+ − 263
var child = targettd.childNodes[i];
+ − 264
if ( child.tagName == 'INPUT' )
+ − 265
{
+ − 266
if ( child.type == 'button' )
+ − 267
{
+ − 268
var newInp = document.createElement('input');
+ − 269
// <input type="text" name="member_page_1" id="pg_create_member_1" onkeyup="return ajaxPageNameComplete(this);" size="30" /><br />
+ − 270
newInp.type = 'text';
+ − 271
newInp.name = 'member_page_' + id;
+ − 272
newInp.id = 'pg_create_member_' + id;
+ − 273
newInp.onkeyup = function(e) { return ajaxPageNameComplete(this); };
+ − 274
newInp.size = '30';
+ − 275
newInp.style.marginTop = '3px';
+ − 276
targettd.insertBefore(newInp, child);
+ − 277
targettd.insertBefore(document.createElement('br'), child);
+ − 278
break;
+ − 279
}
+ − 280
else // if ( child.type == 'text' )
+ − 281
{
+ − 282
id++;
+ − 283
}
+ − 284
}
+ − 285
}
+ − 286
}
+ − 287
+ − 288
</script>
+ − 289
<?php
+ − 290
+ − 291
// Build category list
+ − 292
$q = $db->sql_query('SELECT name,urlname FROM '.table_prefix.'pages WHERE namespace=\'Category\';');
+ − 293
if ( !$q )
+ − 294
$db->_die();
+ − 295
+ − 296
if ( $db->numrows() < 1 )
+ − 297
{
+ − 298
$catlist = 'There aren\'t any categories on this site.';
+ − 299
}
+ − 300
else
+ − 301
{
+ − 302
$catlist = '<select name="member_cat">';
+ − 303
while ( $row = $db->fetchrow() )
+ − 304
{
+ − 305
$catlist .= '<option value="' . htmlspecialchars($row['urlname']) . '">' . htmlspecialchars($row['name']) . '</option>';
+ − 306
}
+ − 307
$catlist .= '</select>';
+ − 308
}
+ − 309
117
+ − 310
echo '<script type="text/javascript">
+ − 311
var __pg_edit_submitAuthorized = true;
+ − 312
</script>';
+ − 313
75
+ − 314
echo '<form action="'.makeUrl($paths->nslist['Special'].'Administration', 'module='.$paths->cpage['module']).'" method="post" onsubmit="if(!submitAuthorized || !__pg_edit_submitAuthorized) return false;" enctype="multipart/form-data">';
+ − 315
+ − 316
echo '<div class="tblholder">
+ − 317
<table border="0" cellspacing="1" cellpadding="4">
+ − 318
<tr>
+ − 319
<th colspan="2">Create page group</th>
+ − 320
</tr>';
+ − 321
+ − 322
// Name
+ − 323
echo '<tr>
+ − 324
<td class="row2">
+ − 325
Group name:<br />
+ − 326
<small>This should be short, descriptive, and human-readable.</small>
+ − 327
</td>
+ − 328
<td class="row1">
+ − 329
<input type="text" name="pg_name" size="30" />
+ − 330
</td>
+ − 331
</tr>';
+ − 332
+ − 333
// Group type
+ − 334
echo '<tr>
+ − 335
<td class="row2">
+ − 336
Group type:
+ − 337
</td>
+ − 338
<td class="row1">
+ − 339
<select name="group_type" onchange="pg_create_typeset(this);">
+ − 340
<option value="' . PAGE_GRP_NORMAL . '" selected="selected">Static group of pages</option>
+ − 341
<option value="' . PAGE_GRP_TAGGED . '">Group of pages with one tag</option>
+ − 342
<option value="' . PAGE_GRP_CATLINK . '">Link to category</option>
155
+ − 343
<option value="' . PAGE_GRP_REGEX . '">Perl-compatible regular expression (advanced)</option>
75
+ − 344
</select>
+ − 345
</td>
+ − 346
</tr>';
+ − 347
+ − 348
// Titles
+ − 349
echo '<tr>
+ − 350
<th colspan="2">
+ − 351
<span id="pg_create_title_normal">
+ − 352
Static group of pages
+ − 353
</span>
+ − 354
<span id="pg_create_title_tagged">
+ − 355
Group of commonly tagged pages
+ − 356
</span>
+ − 357
<span id="pg_create_title_catlink">
+ − 358
Mirror a category
+ − 359
</span>
155
+ − 360
<span id="pg_create_title_regex">
+ − 361
Filter through a regular expression
+ − 362
</span>
75
+ − 363
</th>
+ − 364
</tr>';
+ − 365
+ − 366
echo '<tr>
+ − 367
<td class="row2">
+ − 368
<div id="pg_create_normal_1">
+ − 369
Member pages:<br />
+ − 370
<small>Click the "plus" button to add more fields.</small>
+ − 371
</div>
+ − 372
<div id="pg_create_catlink_1">
+ − 373
Include pages in this category:<br />
+ − 374
<small>Pages in subcategories are <u>not</u> included, however subcategory pages themselves are.</small>
+ − 375
</div>
+ − 376
<div id="pg_create_tagged_1">
+ − 377
Include pages with this tag:
+ − 378
</div>
155
+ − 379
<div id="pg_create_regex_1">
+ − 380
Regular expression:<br />
+ − 381
<small>Be sure to include the starting and ending delimiters and any flags you might need.<br />
+ − 382
These pages might help: <a href="http://us.php.net/manual/en/reference.pcre.pattern.modifiers.php">Pattern modifiers</a> •
+ − 383
<a href="http://us.php.net/manual/en/reference.pcre.pattern.syntax.php">Pattern syntax</a><br />
+ − 384
Examples: <tt>/^(Special|Admin):/i</tt> • <tt>/^Image:([0-9]+)$/</tt><br />
+ − 385
Developers, remember that this will be matched against the full page identifier string. This means that <tt>/^About_Enano$/</tt>
+ − 386
will NOT match the page Special:About_Enano.</small>
75
+ − 387
</td>';
+ − 388
+ − 389
echo ' <td class="row1">
+ − 390
<div id="pg_create_normal_2" />
+ − 391
<input type="text" style="margin-top: 3px;" name="member_page_0" id="pg_create_member_0" onkeyup="return ajaxPageNameComplete(this);" size="30" /><br />
+ − 392
<input type="text" style="margin-top: 3px;" name="member_page_1" id="pg_create_member_1" onkeyup="return ajaxPageNameComplete(this);" size="30" /><br />
+ − 393
<input type="text" style="margin-top: 3px;" name="member_page_2" id="pg_create_member_2" onkeyup="return ajaxPageNameComplete(this);" size="30" /><br />
+ − 394
<input type="text" style="margin-top: 3px;" name="member_page_3" id="pg_create_member_3" onkeyup="return ajaxPageNameComplete(this);" size="30" /><br />
+ − 395
<input type="text" style="margin-top: 3px;" name="member_page_4" id="pg_create_member_4" onkeyup="return ajaxPageNameComplete(this);" size="30" /><br />
+ − 396
<input type="button" onclick="pg_create_more_fields(); return false;" style="margin-top: 5px;" value=" + " />
+ − 397
</div>
+ − 398
<div id="pg_create_tagged_2">
+ − 399
<input type="text" name="member_tag" size="30" />
+ − 400
</div>
+ − 401
<div id="pg_create_catlink_2">
+ − 402
' . $catlist . '
+ − 403
</div>
155
+ − 404
<div id="pg_create_regex_2">
+ − 405
<input type="text" name="regex" size="60" />
+ − 406
</div>
75
+ − 407
</td>
+ − 408
</tr>';
+ − 409
+ − 410
// Submit button
+ − 411
echo '<tr>
+ − 412
<th class="subhead" colspan="2"><input type="submit" name="action[create_stage2]" value="Create page group" style="font-weight: bold;" /> <input type="submit" name="action[noop]" value="Cancel" style="font-weight: normal;" /></th>
+ − 413
</tr>';
+ − 414
+ − 415
echo '</table>
+ − 416
</div>';
+ − 417
+ − 418
echo '</form>';
+ − 419
return;
+ − 420
}
+ − 421
else if ( isset($_POST['action']['del']) )
+ − 422
{
+ − 423
// Confirmation to delete a group (this is really only a stub)
+ − 424
+ − 425
$delete_id = array_keys($_POST['action']['del']);
+ − 426
$delete_id = intval($delete_id[0]);
+ − 427
+ − 428
if ( !empty($delete_id) )
+ − 429
{
+ − 430
echo '<form action="'.makeUrl($paths->nslist['Special'].'Administration', 'module='.$paths->cpage['module']).'" method="post" onsubmit="if(!submitAuthorized) return false;" enctype="multipart/form-data">';
+ − 431
echo '<input type="hidden" name="delete_id" value="' . $delete_id . '" />';
+ − 432
echo '<div class="tblholder">';
+ − 433
echo ' <table border="0" cellspacing="1" cellpadding="4">';
+ − 434
echo ' <tr><th>Confirm deletion</th></tr>';
+ − 435
echo ' <tr><td class="row2" style="text-align: center; padding: 20px 0;">Are you sure you want to delete this page group?</td></tr>';
+ − 436
echo ' <tr><td class="row1" style="text-align: center;">';
+ − 437
echo ' <input type="submit" name="action[del_confirm]" value="Yes, delete group" style="font-weight: bold;" />';
+ − 438
echo ' <input type="submit" name="action[noop]" value="Cancel" style="font-weight: normal;" />';
+ − 439
echo ' </td></tr>';
+ − 440
echo ' </table>';
+ − 441
echo '</form>';
+ − 442
+ − 443
return;
+ − 444
}
+ − 445
}
+ − 446
else if ( isset($_POST['action']['del_confirm']) )
+ − 447
{
+ − 448
$delete_id = intval($_POST['delete_id']);
+ − 449
if ( empty($delete_id) )
+ − 450
{
+ − 451
echo 'Hack attempt';
+ − 452
return;
+ − 453
}
+ − 454
// Obtain group name
+ − 455
$q = $db->sql_query('SELECT pg_name FROM '.table_prefix.'page_groups WHERE pg_id=' . $delete_id . ';');
+ − 456
if ( !$q )
+ − 457
$db->_die();
+ − 458
if ( $db->numrows() < 1 )
+ − 459
{
+ − 460
echo 'Page group dun exist.';
+ − 461
return;
+ − 462
}
+ − 463
$row = $db->fetchrow();
+ − 464
$db->free_result();
+ − 465
$pg_name = $row['pg_name'];
+ − 466
unset($row);
+ − 467
// Delete the group
+ − 468
$q = $db->sql_query('DELETE FROM '.table_prefix.'page_groups WHERE pg_id=' . $delete_id . ';');
+ − 469
if ( !$q )
+ − 470
$db->_die();
+ − 471
$q = $db->sql_query('DELETE FROM '.table_prefix.'page_group_members WHERE pg_id=' . $delete_id . ';');
+ − 472
if ( !$q )
+ − 473
$db->_die();
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 474
echo "<div class='info-box'>The group ".'"'.htmlspecialchars("$pg_name").'"'." has been deleted.</div>";
75
+ − 475
}
+ − 476
else if ( isset($_POST['action']['edit']) && !isset($_POST['action']['noop']) )
+ − 477
{
+ − 478
if ( isset($_POST['action']['edit_save']) )
+ − 479
{
+ − 480
}
+ − 481
+ − 482
if ( isset($_POST['action']['edit']['add_page']) && isset($_GET['src']) && $_GET['src'] == 'ajax' )
+ − 483
{
+ − 484
$json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
+ − 485
$return = array('successful' => false);
+ − 486
+ − 487
//
+ − 488
// Add the specified page to the group
+ − 489
//
+ − 490
+ − 491
// Get ID of the group
+ − 492
$edit_id = intval($_POST['pg_id']);
+ − 493
if ( !$edit_id )
+ − 494
{
+ − 495
$return = array('mode' => 'error', 'text' => 'Hack attempt');
+ − 496
echo $json->encode($return);
+ − 497
return;
+ − 498
}
+ − 499
+ − 500
// Run some validation - check that page exists and that it's not already in the group
+ − 501
$page = $_POST['new_page'];
+ − 502
if ( empty($page) )
+ − 503
{
+ − 504
$return = array('mode' => 'error', 'text' => 'Please enter a page title.');
+ − 505
echo $json->encode($return);
+ − 506
return;
+ − 507
}
+ − 508
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 509
/*
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 510
// We're gonna allow adding nonexistent pages for now
75
+ − 511
if ( !isPage($page) )
+ − 512
{
+ − 513
$return = array('mode' => 'error', 'text' => 'The page you are trying to add (' . htmlspecialchars($page) . ') does not exist.');
+ − 514
echo $json->encode($return);
+ − 515
return;
+ − 516
}
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 517
*/
75
+ − 518
+ − 519
list($page_id, $namespace) = RenderMan::strToPageID($page);
+ − 520
$page_id = sanitize_page_id($page_id);
+ − 521
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 522
if ( !isset($paths->namespace[$namespace]) )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 523
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 524
$return = array('mode' => 'error', 'text' => 'Invalid namespace return from RenderMan::strToPageID()');
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 525
echo $json->encode($return);
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 526
return;
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 527
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 528
75
+ − 529
$q = $db->sql_query('SELECT "x" FROM '.table_prefix.'page_group_members WHERE pg_id=' . $edit_id . ' AND page_id=\'' . $db->escape($page_id) . '\' AND namespace=\'' . $namespace . '\';');
+ − 530
if ( !$q )
+ − 531
{
+ − 532
$return = array('mode' => 'error', 'text' => $db->get_error());
+ − 533
echo $json->encode($return);
+ − 534
return;
+ − 535
}
+ − 536
if ( $db->numrows() > 0 )
+ − 537
{
+ − 538
$return = array('mode' => 'error', 'text' => 'The page you are trying to add is already in this group.');
+ − 539
echo $json->encode($return);
+ − 540
return;
+ − 541
}
+ − 542
+ − 543
$q = $db->sql_query('INSERT INTO '.table_prefix.'page_group_members(pg_id, page_id, namespace) VALUES(' . $edit_id . ', \'' . $db->escape($page_id) . '\', \'' . $namespace . '\');');
+ − 544
if ( !$q )
+ − 545
{
+ − 546
$return = array('mode' => 'error', 'text' => $db->get_error());
+ − 547
echo $json->encode($return);
+ − 548
return;
+ − 549
}
+ − 550
+ − 551
$title = "($namespace) " . get_page_title($paths->nslist[$namespace] . $page_id);
+ − 552
+ − 553
$return = array('mode' => 'info', 'text' => 'The page has been added to the specified group.', 'successful' => true, 'title' => $title, 'member_id' => $db->insert_id());
+ − 554
+ − 555
echo $json->encode($return);
+ − 556
return;
+ − 557
}
+ − 558
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 559
if ( isset($_POST['action']['edit_save']) && isset($_POST['pg_name']) )
75
+ − 560
{
+ − 561
$edit_id = $_POST['action']['edit'];
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 562
$edit_id = intval($edit_id);
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 563
if ( !empty($edit_id) )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 564
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 565
// Update group name
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 566
$new_name = $_POST['pg_name'];
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 567
if ( empty($new_name) )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 568
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 569
echo '<div class="error-box">Please enter a valid name for this group.</div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 570
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 571
else
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 572
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 573
$q = $db->sql_query('SELECT pg_name FROM '.table_prefix.'page_groups WHERE pg_id=' . $edit_id . ';');
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 574
if ( !$q )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 575
$db->_die();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 576
$row = $db->fetchrow();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 577
$db->free_result();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 578
if ( $new_name != $row['pg_name'] )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 579
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 580
$new_name = $db->escape(trim($new_name));
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 581
$q = $db->sql_query('UPDATE '.table_prefix.'page_groups SET pg_name=\'' . $new_name . '\' WHERE pg_id=' . $edit_id . ';');
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 582
if ( !$q )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 583
$db->_die();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 584
else
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 585
echo '<div class="info-box">The group name was updated successfully.</div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 586
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 587
if ( $_POST['pg_type'] == PAGE_GRP_TAGGED )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 588
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 589
$target = $_POST['pg_target'];
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 590
$target = sanitize_tag($target);
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 591
if ( empty($target) )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 592
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 593
echo '<div class="error-box">Please enter a valid tag.</div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 594
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 595
else
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 596
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 597
$target = $db->escape($target);
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 598
$q = $db->sql_query('UPDATE '.table_prefix.'page_groups SET pg_target=\'' . $target . '\' WHERE pg_id=' . $edit_id . ';');
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 599
if ( !$q )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 600
$db->_die();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 601
else
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 602
echo '<div class="info-box">The affecting tag was updated.</div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 603
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 604
}
173
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 605
else if ( $_POST['pg_type'] == PAGE_GRP_REGEX )
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 606
{
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 607
$target = $_POST['pg_target'];
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 608
if ( empty($target) )
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 609
{
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 610
echo '<div class="error-box">Please enter an expression to match against..</div>';
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 611
}
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 612
else
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 613
{
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 614
$target = $db->escape($target);
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 615
$q = $db->sql_query('UPDATE '.table_prefix.'page_groups SET pg_target=\'' . $target . '\' WHERE pg_id=' . $edit_id . ';');
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 616
if ( !$q )
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 617
$db->_die();
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 618
else
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 619
echo '<div class="info-box">The expression to match against was updated.</div>';
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 620
}
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 621
}
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 622
else if ( $_POST['pg_type'] == PAGE_GRP_CATLINK )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 623
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 624
$target = $_POST['pg_target'];
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 625
if ( empty($target) )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 626
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 627
echo '<div class="error-box">No category ID specified on POST URI.</div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 628
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 629
else
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 630
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 631
$target = $db->escape($target);
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 632
$q = $db->sql_query('UPDATE '.table_prefix.'page_groups SET pg_target=\'' . $target . '\' WHERE pg_id=' . $edit_id . ';');
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 633
if ( !$q )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 634
$db->_die();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 635
else
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 636
echo '<div class="info-box">The affecting category was updated.</div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 637
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 638
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 639
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 640
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 641
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 642
else if ( isset($_POST['action']['edit_save']) )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 643
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 644
$edit_id = $_POST['action']['edit'];
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 645
$edit_id = intval($edit_id);
75
+ − 646
}
+ − 647
else
+ − 648
{
+ − 649
$edit_id = array_keys($_POST['action']['edit']);
+ − 650
$edit_id = intval($edit_id[0]);
+ − 651
}
+ − 652
+ − 653
if ( empty($edit_id) )
+ − 654
{
+ − 655
echo 'Hack attempt';
+ − 656
return;
+ − 657
}
+ − 658
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 659
if ( isset($_POST['action']['edit_save']['do_rm']) && !isset($_POST['pg_name']) )
75
+ − 660
{
+ − 661
$vals = array_keys($_POST['action']['edit_save']['rm']);
+ − 662
$good = array();
+ − 663
foreach ( $vals as $id )
+ − 664
{
+ − 665
if ( strval(intval($id)) == $id )
+ − 666
$good[] = $id;
+ − 667
}
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 668
$subquery = ( count($good) > 0 ) ? 'pg_member_id=' . implode(' OR pg_member_id=', $good) : "'foo'='bar'";
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 669
if ( $subquery == "'foo'='bar'" )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 670
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 671
echo '<div class="warning-box">No pages were selected for deletion, and thus none were deleted.</div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 672
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 673
else
75
+ − 674
{
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 675
$sql = 'DELETE FROM '.table_prefix."page_group_members WHERE ( $subquery ) AND pg_id=$edit_id;";
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 676
if ( !$db->sql_query($sql) )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 677
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 678
$db->_die();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 679
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 680
echo '<div class="info-box">The requested page group members have been deleted.</div>';
75
+ − 681
}
+ − 682
}
+ − 683
+ − 684
// Fetch information about page group
+ − 685
$q = $db->sql_query('SELECT pg_name, pg_type, pg_target FROM '.table_prefix.'page_groups WHERE pg_id=' . $edit_id . ';');
+ − 686
if ( !$q )
+ − 687
$db->_die();
+ − 688
+ − 689
if ( $db->numrows() < 1 )
+ − 690
{
+ − 691
echo 'Bad request - can\'t load page group from database.';
+ − 692
return;
+ − 693
}
+ − 694
+ − 695
$row = $db->fetchrow();
+ − 696
$db->free_result();
+ − 697
+ − 698
echo '<form name="pg_edit_frm" action="'.makeUrl($paths->nslist['Special'].'Administration', 'module='.$paths->cpage['module']).'" method="post" onsubmit="if(!submitAuthorized) return false;" enctype="multipart/form-data">';
+ − 699
echo '<input type="hidden" name="action[edit]" value="' . $edit_id . '" />';
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 700
echo '<input type="hidden" name="pg_type" value="' . $row['pg_type'] . '" />';
75
+ − 701
echo '<div class="tblholder">
+ − 702
<table border="0" cellspacing="1" cellpadding="4">
+ − 703
<tr>
+ − 704
<th colspan="3">Editing page group: ' . htmlspecialchars($row['pg_name']) . '</th>
+ − 705
</tr>';
+ − 706
// Group name
+ − 707
+ − 708
echo ' <tr>
+ − 709
<td class="row2">Group name:</td>
+ − 710
<td class="row1" colspan="2"><input type="text" name="pg_name" value="' . htmlspecialchars($row['pg_name']) . '" size="30" /></td>
+ − 711
</tr>';
+ − 712
+ − 713
$ajax_page_add = false;
+ − 714
+ − 715
// This is where the going gets tricky.
+ − 716
// For static groups, we need to have each page listed out with a removal button, and a form to add new pages.
+ − 717
// For category links, we need a select box with each category in it, and
+ − 718
// For tag sets, just a text box to enter a new tag.
+ − 719
+ − 720
// You can guess which one I dreaded.
+ − 721
+ − 722
switch ( $row['pg_type'] )
+ − 723
{
+ − 724
case PAGE_GRP_NORMAL:
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 725
75
+ − 726
// You have guessed correct.
+ − 727
// *Sits in chair for 10 minutes listening to the radio in an effort to put off writing the code you see below*
+ − 728
+ − 729
echo '<tr><th colspan="3" class="subhead"><input type="submit" name="action[edit_save]" value="Save group name" /></th></tr>';
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 730
echo '</table></div>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 731
echo '</form>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 732
echo '<form name="pg_static_rm_frm" action="'.makeUrl($paths->nslist['Special'].'Administration', 'module='.$paths->cpage['module']).'" method="post" enctype="multipart/form-data">';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 733
echo '<input type="hidden" name="action[edit]" value="' . $edit_id . '" />';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 734
echo '<div class="tblholder">
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 735
<table border="0" cellspacing="1" cellpadding="4">
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 736
<tr>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 737
<th colspan="3">Remove pages from this group</th>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 738
</tr>';
75
+ − 739
+ − 740
$q = $db->sql_query('SELECT m.pg_member_id,m.page_id,m.namespace FROM '.table_prefix.'page_group_members AS m
+ − 741
LEFT JOIN '.table_prefix.'pages AS p
+ − 742
ON ( p.urlname = m.page_id AND p.namespace = m.namespace )
+ − 743
WHERE m.pg_id=' . $edit_id . ';');
+ − 744
+ − 745
if ( !$q )
+ − 746
$db->_die();
+ − 747
+ − 748
$delim = ceil( $db->numrows() / 2 );
+ − 749
if ( $delim < 5 )
+ − 750
{
+ − 751
$delim = 0xFFFFFFFE;
+ − 752
// stupid hack
+ − 753
$colspan = '2" id="pg_edit_tackon2me';
+ − 754
}
+ − 755
else
+ − 756
{
+ − 757
$colspan = "1";
+ − 758
}
+ − 759
+ − 760
echo '<tr><td class="row2" rowspan="2"><b>Remove</b> pages:</td><td class="row1" colspan="' . $colspan . '">';
+ − 761
$i = 0;
+ − 762
+ − 763
while ( $row = $db->fetchrow() )
+ − 764
{
+ − 765
$i++;
+ − 766
if ( $i == $delim )
+ − 767
{
+ − 768
echo '</td><td class="row1" id="pg_edit_tackon2me">';
+ − 769
}
+ − 770
$page_name = '(' . $row['namespace'] . ') ' . get_page_title($paths->nslist[$row['namespace']] . $row['page_id']);
+ − 771
echo '<label><input type="checkbox" name="action[edit_save][rm][' . $row['pg_member_id'] . ']" /> ' . htmlspecialchars($page_name) . '</label><br />';
+ − 772
}
+ − 773
+ − 774
echo '</td></tr>';
+ − 775
echo '<tr><th colspan="2" class="subhead" style="width: 70%;"><input type="submit" name="action[edit_save][do_rm]" value="Remove selected" /></th></tr>';
+ − 776
+ − 777
// More javascript magic!
+ − 778
?>
+ − 779
<script type="text/javascript">
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 780
var __pg_edit_submitAuthorized = true;
75
+ − 781
var __ol_pg_edit_setup = function()
+ − 782
{
+ − 783
var input = document.getElementById('inptext_pg_add_member');
+ − 784
input.onkeyup = function(e) { ajaxPageNameComplete(this); };
+ − 785
input.onkeypress = function(e) { if ( e.keyCode == 13 ) { setTimeout('__pg_edit_ajaxadd(document.getElementById(\'' + this.id + '\'));', 500); } };
+ − 786
}
+ − 787
addOnloadHook(__ol_pg_edit_setup);
+ − 788
var __pg_edit_objcache = false;
+ − 789
function __pg_edit_ajaxadd(obj)
+ − 790
{
+ − 791
if ( __pg_edit_objcache )
+ − 792
return false;
+ − 793
__pg_edit_objcache = obj;
+ − 794
+ − 795
if ( obj.nextSibling )
+ − 796
{
+ − 797
if ( obj.nextSibling.tagName == 'DIV' )
+ − 798
{
+ − 799
obj.parentNode.removeChild(obj.nextSibling);
+ − 800
}
+ − 801
}
+ − 802
+ − 803
// set width on parent, to prevent wrapping of ajax loading image
+ − 804
var w = $(obj).Width();
+ − 805
w = w + 24;
+ − 806
obj.parentNode.style.width = w + 'px';
+ − 807
+ − 808
// append the ajaxy loading image
+ − 809
var img = document.createElement('img');
+ − 810
img.src = scriptPath + '/images/loading.gif';
+ − 811
img.style.marginLeft = '4px';
+ − 812
insertAfter(obj.parentNode, img, obj);
+ − 813
+ − 814
var url = makeUrlNS('Admin', 'PageGroups', 'src=ajax');
+ − 815
var page_add = escape(obj.value);
+ − 816
var pg_id = document.forms.pg_edit_frm['action[edit]'].value;
+ − 817
ajaxPost(url, 'action[edit][add_page]=&pg_id=' + pg_id + '&new_page=' + page_add, function()
+ − 818
{
+ − 819
if ( ajax.readyState == 4 )
+ − 820
{
+ − 821
var obj = __pg_edit_objcache;
+ − 822
__pg_edit_objcache = false;
+ − 823
+ − 824
// kill the loading graphic
+ − 825
obj.parentNode.removeChild(obj.nextSibling);
+ − 826
+ − 827
var resptext = String(ajax.responseText + '');
+ − 828
if ( resptext.substr(0, 1) != '{' )
+ − 829
{
+ − 830
// This ain't JSON baby.
+ − 831
alert('Invalid JSON response:\n' + resptext);
+ − 832
return false;
+ − 833
}
+ − 834
var json = parseJSON(resptext);
+ − 835
+ − 836
var div = document.createElement('div');
+ − 837
if ( json.mode == 'info' )
+ − 838
{
+ − 839
div.className = 'info-box-mini';
+ − 840
}
+ − 841
else if ( json.mode == 'error' )
+ − 842
{
+ − 843
div.className = 'error-box-mini';
+ − 844
}
+ − 845
div.appendChild(document.createTextNode(json.text));
+ − 846
insertAfter(obj.parentNode, div, obj);
+ − 847
+ − 848
if ( json.successful )
+ − 849
{
+ − 850
var td = document.getElementById('pg_edit_tackon2me');
+ − 851
var lbl = document.createElement('label');
+ − 852
var check = document.createElement('input');
+ − 853
check.type = 'checkbox';
+ − 854
check.name = 'action[edit_save][rm][' + json.member_id + ']';
+ − 855
lbl.appendChild(check);
+ − 856
lbl.appendChild(document.createTextNode(' ' + json.title));
+ − 857
td.appendChild(lbl);
+ − 858
td.appendChild(document.createElement('br'));
+ − 859
}
+ − 860
+ − 861
}
+ − 862
});
+ − 863
}
+ − 864
</script>
+ − 865
<?php
+ − 866
+ − 867
$ajax_page_add = true;
+ − 868
+ − 869
break;
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 870
case PAGE_GRP_TAGGED:
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 871
echo '<tr>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 872
<td class="row2">
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 873
Include pages with this tag:
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 874
</td>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 875
<td class="row1">
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 876
<input type="text" name="pg_target" value="' . htmlspecialchars($row['pg_target']) . '" size="30" />
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 877
</td>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 878
</tr>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 879
break;
173
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 880
case PAGE_GRP_REGEX:
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 881
echo '<tr>
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 882
<td class="row2">
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 883
Regular expression to use:<br />
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 884
<small>Be sure to include the starting and ending delimiters and any flags you might need.<br />
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 885
These pages might help: <a href="http://us.php.net/manual/en/reference.pcre.pattern.modifiers.php">Pattern modifiers</a> •
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 886
<a href="http://us.php.net/manual/en/reference.pcre.pattern.syntax.php">Pattern syntax</a><br />
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 887
Examples: <tt>/^(Special|Admin):/i</tt> • <tt>/^Image:([0-9]+)$/</tt><br />
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 888
Developers, remember that this will be matched against the full page identifier string. This means that <tt>/^About_Enano$/</tt>
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 889
will NOT match the page Special:About_Enano.</small>
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 890
</td>
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 891
<td class="row1">
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 892
<input type="text" name="pg_target" value="' . htmlspecialchars($row['pg_target']) . '" size="30" />
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 893
</td>
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 894
</tr>';
91127e62f38f
Fixed some regular expressions in HTML optimization algorithm; regex page groups can be edited now (oops)
Dan
diff
changeset
+ − 895
break;
81
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 896
case PAGE_GRP_CATLINK:
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 897
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 898
// Build category list
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 899
$q = $db->sql_query('SELECT name,urlname FROM '.table_prefix.'pages WHERE namespace=\'Category\';');
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 900
if ( !$q )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 901
$db->_die();
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 902
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 903
if ( $db->numrows() < 1 )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 904
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 905
$catlist = 'There aren\'t any categories on this site.';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 906
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 907
else
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 908
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 909
$catlist = '<select name="pg_target">';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 910
while ( $catrow = $db->fetchrow() )
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 911
{
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 912
$selected = ( $catrow['urlname'] == $row['pg_target'] ) ? ' selected="selected"' : '';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 913
$catlist .= '<option value="' . htmlspecialchars($catrow['urlname']) . '"' . $selected . '>' . htmlspecialchars($catrow['name']) . '</option>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 914
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 915
$catlist .= '</select>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 916
}
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 917
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 918
echo '<tr>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 919
<td class="row2">
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 920
Include pages that are in this category:<br />
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 921
<small><b>Reminder:</b> Enano does not automatically place any access controls on the category. If you
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 922
don\'t want users to be able to freely add and remove pages from the category (assuming Wiki Mode is enabled
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 923
for the category) then you need to enable protection on the category using the button on the more options menu.
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 924
</small>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 925
</td>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 926
<td class="row1">
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 927
' . $catlist . '
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 928
</td>
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 929
</tr>';
d7fc25acd3f3
Replaced the menu in the admin theme with something much more visually pleasureable; minor fix in Special:UploadFile; finished patching a couple of XSS problems from Banshee; finished Admin:PageGroups; removed unneeded code in flyin.js; finished tag system (except tag cloud); 1.0.1 release candidate
Dan
diff
changeset
+ − 930
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 931
break;
75
+ − 932
}
+ − 933
+ − 934
if ( $ajax_page_add )
+ − 935
{
+ − 936
echo '<tr><th colspan="3"><input type="submit" name="action[noop]" value="Cancel all changes" /></th></tr>';
+ − 937
}
+ − 938
else
+ − 939
{
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 940
echo '<tr><th colspan="3" class="subhead">
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 941
<input type="submit" name="action[edit_save]" value="Save and update" />
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 942
<input type="submit" name="action[noop]" value="Cancel all changes" />
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 943
</th></tr>';
75
+ − 944
}
+ − 945
+ − 946
echo ' </table>
+ − 947
</div>';
+ − 948
echo '</form>';
+ − 949
80
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 950
if ( $ajax_page_add )
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 951
{
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 952
// This needs to be outside of the form.
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 953
echo '<div class="tblholder"><table border="0" cellspacing="1" cellpadding="4"><tr>';
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 954
echo '<th colspan="2">On-the-fly tools</th></tr>';
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 955
echo '<tr>';
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 956
// Add pages AJAX form
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 957
echo '<td class="row2">Add page:<br /><small>You can add multiple pages by entering part of a page title, and it will be auto-completed. Press Enter to quickly add the page. This only works if you a really up-to-date browser.</small></td>';
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 958
echo '<td class="row1"><input type="text" size="30" name="pg_add_member" id="inptext_pg_add_member" /></td>';
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 959
echo '</tr></table></div>';
cb7dde69c301
Improved and enabled HTML optimization algorithm; enabled gzip compression; added but did not test at all the tag cloud class in includes/tagcloud.php, this is still very preliminary and not ready for any type of production use
Dan
diff
changeset
+ − 960
}
75
+ − 961
+ − 962
return;
+ − 963
}
+ − 964
else if ( isset($_POST['action']['noop']) )
+ − 965
{
+ − 966
// Do nothing - skip to main form (noop is usually invoked by a cancel button in a form above)
+ − 967
}
+ − 968
else
+ − 969
{
+ − 970
echo '<div class="error-box">Invalid format of $_POST[action].</div>';
+ − 971
}
+ − 972
}
+ − 973
// No action defined - show default menu
+ − 974
+ − 975
echo '<h2>Manage page groups</h2>';
+ − 976
echo '<p>Enano\'s page grouping system allows you to build sets of pages that can be controlled by a single ACL rule. This makes managing features such as a members-only section of your site a lot easier. If you don\'t use the ACL system, you probably don\'t need to use page groups.</p>';
+ − 977
+ − 978
$q = $db->sql_query('SELECT pg_id, pg_type, pg_name, pg_target FROM '.table_prefix.'page_groups;');
+ − 979
if ( !$q )
+ − 980
$db->_die();
+ − 981
+ − 982
echo '<form action="'.makeUrl($paths->nslist['Special'].'Administration', 'module='.$paths->cpage['module']).'" method="post" onsubmit="if(!submitAuthorized) return false;" enctype="multipart/form-data">';
+ − 983
+ − 984
echo '<div class="tblholder">
+ − 985
<table border="0" cellspacing="1" cellpadding="4">
+ − 986
<tr>
+ − 987
<th>Group name</th>
+ − 988
<th>Type</th>
+ − 989
<th>Target</th>
+ − 990
<th colspan="2">Actions</th>
+ − 991
</tr>';
+ − 992
+ − 993
if ( $row = $db->fetchrow() )
+ − 994
{
+ − 995
do
+ − 996
{
+ − 997
$name = htmlspecialchars($row['pg_name']);
+ − 998
$type = 'Invalid';
+ − 999
switch ( $row['pg_type'] )
+ − 1000
{
+ − 1001
case PAGE_GRP_CATLINK:
+ − 1002
$type = 'Link to category';
+ − 1003
break;
+ − 1004
case PAGE_GRP_TAGGED:
+ − 1005
$type = 'Set of tagged pages';
+ − 1006
break;
+ − 1007
case PAGE_GRP_NORMAL:
+ − 1008
$type = 'Static set of pages';
+ − 1009
break;
155
+ − 1010
case PAGE_GRP_REGEX:
+ − 1011
$type = 'Regular expression match';
+ − 1012
break;
75
+ − 1013
}
+ − 1014
$target = '';
+ − 1015
if ( $row['pg_type'] == PAGE_GRP_TAGGED )
+ − 1016
{
+ − 1017
$target = 'Tag: ' . htmlspecialchars($row['pg_target']);
+ − 1018
}
+ − 1019
else if ( $row['pg_type'] == PAGE_GRP_CATLINK )
+ − 1020
{
+ − 1021
$target = 'Category: ' . htmlspecialchars(get_page_title($paths->nslist['Category'] . sanitize_page_id($row['pg_target'])));
+ − 1022
}
155
+ − 1023
else if ( $row['pg_type'] == PAGE_GRP_REGEX )
+ − 1024
{
+ − 1025
$target = 'Expression: <tt>' . htmlspecialchars($row['pg_target']) . '</tt>';
+ − 1026
}
75
+ − 1027
$btn_edit = '<input type="submit" name="action[edit][' . $row['pg_id'] . ']" value="Edit" />';
+ − 1028
$btn_del = '<input type="submit" name="action[del][' . $row['pg_id'] . ']" value="Delete" />';
+ − 1029
// stupid jEdit bug/hack
+ − 1030
$quot = '"';
+ − 1031
echo "<tr>
+ − 1032
<td class={$quot}row1{$quot}>$name</td>
+ − 1033
<td class={$quot}row2{$quot}>$type</td>
+ − 1034
<td class={$quot}row1{$quot}>$target</td>
+ − 1035
<td class={$quot}row3{$quot} style={$quot}text-align: center;{$quot}>$btn_edit</td>
+ − 1036
<td class={$quot}row3{$quot} style={$quot}text-align: center;{$quot}>$btn_del</td>
+ − 1037
</tr>";
+ − 1038
}
+ − 1039
while ( $row = $db->fetchrow() );
+ − 1040
}
+ − 1041
else
+ − 1042
{
+ − 1043
echo ' <tr><td class="row3" colspan="5" style="text-align: center;">No page groups defined.</td></tr>';
+ − 1044
}
+ − 1045
+ − 1046
echo ' <tr>
+ − 1047
<th class="subhead" colspan="5">
+ − 1048
<input type="submit" name="action[create]" value="Create new group" />
+ − 1049
</th>
+ − 1050
</tr>';
+ − 1051
+ − 1052
echo ' </table>
+ − 1053
</div>';
+ − 1054
+ − 1055
echo '</form>';
+ − 1056
+ − 1057
}
+ − 1058
+ − 1059
?>