diff -r 0a74676a2f2f -r 68469a95658d plugins/SpecialAdmin.php --- a/plugins/SpecialAdmin.php Sat Jul 21 18:12:10 2007 -0400 +++ b/plugins/SpecialAdmin.php Wed Jul 25 18:06:34 2007 -0400 @@ -39,6 +39,9 @@ )); '); +// Admin pages that were too enormous to be in this file were split off into the plugins/admin/ directory in 1.0.1 +require(ENANO_ROOT . '/plugins/admin/PageGroups.php'); + // function names are IMPORTANT!!! The name pattern is: page__ function page_Admin_Home() { @@ -138,6 +141,7 @@ case "sql_inject": echo 'SQL injection attempt
Offending query: ' . htmlspecialchars($r['page_text']) . '
'; break; case "db_backup": echo 'Database backup created
Tables: ' . $r['page_text'] . ''; break; case "install_enano": echo "Installed Enano version {$r['page_text']}"; break; + case "upgrade_enano": echo "Upgraded Enano to version {$r['page_text']}"; break; } echo ''.date('d M Y h:i a', $r['time_id']).''.$r['author'].''.$r['edit_summary'].''; } @@ -1710,487 +1714,6 @@ } } -function page_Admin_PageGroups() -{ - global $db, $session, $paths, $template, $plugins; // Common objects - if ( $session->auth_level < USER_LEVEL_ADMIN || $session->user_level < USER_LEVEL_ADMIN ) - { - echo '

Error: Not authenticated

It looks like your administration session is invalid or you are not authorized to access this administration page. Please re-authenticate to continue.

'; - return; - } - - if ( isset($_POST['action']) ) - { - if ( isset($_POST['action']['create']) || isset($_POST['action']['create_stage2']) ) - { - switch ( isset($_POST['action']['create_stage2']) ) - { - case true: - if ( empty($_POST['pg_name']) || empty($_POST['group_type']) ) - { - echo '
Please enter a name for the page group.
'; - return; - } - if ( $_POST['group_type'] == PAGE_GRP_TAGGED && empty($_POST['member_tag']) ) - { - echo '
Please enter a page tag.
'; - return; - } - if ( $_POST['group_type'] == PAGE_GRP_CATLINK && empty($_POST['member_cat']) ) - { - echo '
Please create a category page before linking a page group to a category.
'; - return; - } - if ( $_POST['group_type'] == PAGE_GRP_NORMAL && empty($_POST['member_page_0']) ) - { - echo '
Please specify at least one page to place in this group.
'; - return; - } - if ( $_POST['group_type'] != PAGE_GRP_TAGGED && $_POST['group_type'] != PAGE_GRP_CATLINK && $_POST['group_type'] != PAGE_GRP_NORMAL ) - { - echo '
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.
'; - return; - } - // All checks passed, create the group - switch($_POST['group_type']) - { - case PAGE_GRP_TAGGED: - $name = $db->escape($_POST['pg_name']); - $tag = $db->escape($_POST['member_tag']); - $sql = 'INSERT INTO '.table_prefix.'page_groups(pg_type,pg_name,pg_target) VALUES(' . PAGE_GRP_TAGGED . ', \'' . $name . '\', \'' . $tag . '\');'; - $q = $db->sql_query($sql); - if ( !$q ) - $db->_die(); - break; - case PAGE_GRP_CATLINK: - $name = $db->escape($_POST['pg_name']); - $cat = $db->escape($_POST['member_cat']); - $sql = 'INSERT INTO '.table_prefix.'page_groups(pg_type,pg_name,pg_target) VALUES(' . PAGE_GRP_CATLINK . ', \'' . $name . '\', \'' . $cat . '\');'; - $q = $db->sql_query($sql); - if ( !$q ) - $db->_die(); - break; - case PAGE_GRP_NORMAL: - $name = $db->escape($_POST['pg_name']); - $sql = 'INSERT INTO '.table_prefix.'page_groups(pg_type,pg_name) VALUES(' . PAGE_GRP_NORMAL . ', \'' . $name . '\');'; - $q = $db->sql_query($sql); - if ( !$q ) - $db->_die(); - - $ins_id = $db->insert_id(); - - // Page list - $keys = array_keys($_POST); - $arr_pages = array(); - foreach ( $keys as $val ) - { - if ( preg_match('/^member_page_([0-9]+?)$/', $val) && !empty($_POST[$val]) ) - { - $arr_pages[] = $_POST[$val]; - } - } - $arr_sql = array(); - foreach ( $arr_pages as $page ) - { - list($id, $ns) = RenderMan::strToPageID($page); - $id = sanitize_page_id($id); - $arr_sql[] = '(' . $ins_id . ',\'' . $db->escape($id) . '\', \'' . $ns . '\')'; - } - $sql = 'INSERT INTO '.table_prefix.'page_group_members(pg_id,page_id,namespace) VALUES' . implode(',', $arr_sql) . ';'; - $q = $db->sql_query($sql); - if ( !$q ) - $db->_die(); - break; - } - echo '
The page group "' . htmlspecialchars($_POST['pg_name']) . '" has been created.
'; - break; - } - // A little Javascript magic - ?> - - sql_query('SELECT name,urlname FROM '.table_prefix.'pages WHERE namespace=\'Category\';'); - if ( !$q ) - $db->_die(); - - if ( $db->numrows() < 1 ) - { - $catlist = 'There aren\'t any categories on this site.'; - } - else - { - $catlist = ''; - } - - echo '
'; - - echo '
- - - - '; - - // Name - echo ' - - - '; - - // Group type - echo ' - - - '; - - // Titles - echo ' - - '; - - echo ' - '; - - echo ' - '; - - // Submit button - echo ' - - '; - - echo '
Create page group
- Group name:
- This should be short, descriptive, and human-readable. -
- -
- Group type: - - -
- - Static group of pages - - - Group of commonly tagged pages - - - Mirror a category - -
-
- Member pages:
- Click the "plus" button to add more fields. -
- -
- Include pages with this tag: -
-
-
-
-
-
-
-
- -
-
- -
- -
-
'; - - echo '
'; - return; - } - else if ( isset($_POST['action']['del']) ) - { - // Confirmation to delete a group (this is really only a stub) - - $delete_id = array_keys($_POST['action']['del']); - $delete_id = intval($delete_id[0]); - - if ( !empty($delete_id) ) - { - echo '
'; - echo ''; - echo '
'; - echo ' '; - echo ' '; - echo ' '; - echo ' '; - echo '
Confirm deletion
Are you sure you want to delete this page group?
'; - echo ' '; - echo ' '; - echo '
'; - echo ''; - - return; - } - } - else if ( isset($_POST['action']['del_confirm']) ) - { - $delete_id = intval($_POST['delete_id']); - if ( empty($delete_id) ) - { - echo 'Hack attempt'; - return; - } - // Obtain group name - $q = $db->sql_query('SELECT pg_name FROM '.table_prefix.'page_groups WHERE pg_id=' . $delete_id . ';'); - if ( !$q ) - $db->_die(); - if ( $db->numrows() < 1 ) - { - echo 'Page group dun exist.'; - return; - } - $row = $db->fetchrow(); - $pg_name = $row['pg_name']; - unset($row); - // Delete the group - $q = $db->sql_query('DELETE FROM '.table_prefix.'page_groups WHERE pg_id=' . $delete_id . ';'); - if ( !$q ) - $db->_die(); - $q = $db->sql_query('DELETE FROM '.table_prefix.'page_group_members WHERE pg_id=' . $delete_id . ';'); - if ( !$q ) - $db->_die(); - echo "
The group ".'"'."$pg_name".'"'." has been deleted.
"; - } - else if ( isset($_POST['action']['edit']) ) - { - return; - } - else if ( isset($_POST['action']['noop']) ) - { - // Do nothing - } - else - { - echo '
Invalid format of $_POST[action].
'; - } - } - // No action defined - show default menu - $q = $db->sql_query('SELECT pg_id, pg_type, pg_name, pg_target FROM '.table_prefix.'page_groups;'); - if ( !$q ) - $db->_die(); - - echo '
'; - - echo '
- - - - - - - '; - - if ( $row = $db->fetchrow() ) - { - do - { - $name = htmlspecialchars($row['pg_name']); - $type = 'Invalid'; - switch ( $row['pg_type'] ) - { - case PAGE_GRP_CATLINK: - $type = 'Link to category'; - break; - case PAGE_GRP_TAGGED: - $type = 'Set of tagged pages'; - break; - case PAGE_GRP_NORMAL: - $type = 'Static set of pages'; - break; - } - $target = ''; - if ( $row['pg_type'] == PAGE_GRP_TAGGED ) - { - $target = 'Tag: ' . htmlspecialchars($row['pg_target']); - } - else if ( $row['pg_type'] == PAGE_GRP_CATLINK ) - { - $target = 'Category: ' . htmlspecialchars(get_page_title($paths->nslist['Category'] . sanitize_page_id($row['pg_target']))); - } - $btn_edit = ''; - $btn_del = ''; - // stupid jEdit bug/hack - $quot = '"'; - echo " - - - - - - "; - } - while ( $row = $db->fetchrow() ); - } - else - { - echo ' '; - } - - echo ' - - '; - - echo '
Group nameTypeTargetActions
$name$type$target$btn_edit$btn_del
No page groups defined.
- -
-
'; - - echo '
'; - -} - function page_Admin_ThemeManager() {