X-Git-Url: http://git.vanrenterghem.biz/www.vanrenterghem.biz.git/blobdiff_plain/4b1ce0d83844cfd7c55e75a60ccb239882cd62e3..83ab5456767602f2a9860a7db7247f002ec96945:/phpBB2_old/admin/admin_forums.php diff --git a/phpBB2_old/admin/admin_forums.php b/phpBB2_old/admin/admin_forums.php deleted file mode 100644 index 3340c72..0000000 --- a/phpBB2_old/admin/admin_forums.php +++ /dev/null @@ -1,1027 +0,0 @@ - AUTH_ALL, - "auth_read" => AUTH_ALL, - "auth_post" => AUTH_ALL, - "auth_reply" => AUTH_ALL, - "auth_edit" => AUTH_REG, - "auth_delete" => AUTH_REG, - "auth_sticky" => AUTH_MOD, - "auth_announce" => AUTH_MOD, - "auth_vote" => AUTH_REG, - "auth_pollcreate" => AUTH_REG -); - -// -// Mode setting -// -if( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) ) -{ - $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; - $mode = htmlspecialchars($mode); -} -else -{ - $mode = ""; -} - -// ------------------ -// Begin function block -// -function get_info($mode, $id) -{ - global $db; - - switch($mode) - { - case 'category': - $table = CATEGORIES_TABLE; - $idfield = 'cat_id'; - $namefield = 'cat_title'; - break; - - case 'forum': - $table = FORUMS_TABLE; - $idfield = 'forum_id'; - $namefield = 'forum_name'; - break; - - default: - message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); - break; - } - $sql = "SELECT count(*) as total - FROM $table"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get Forum/Category information", "", __LINE__, __FILE__, $sql); - } - $count = $db->sql_fetchrow($result); - $count = $count['total']; - - $sql = "SELECT * - FROM $table - WHERE $idfield = $id"; - - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get Forum/Category information", "", __LINE__, __FILE__, $sql); - } - - if( $db->sql_numrows($result) != 1 ) - { - message_die(GENERAL_ERROR, "Forum/Category doesn't exist or multiple forums/categories with ID $id", "", __LINE__, __FILE__); - } - - $return = $db->sql_fetchrow($result); - $return['number'] = $count; - return $return; -} - -function get_list($mode, $id, $select) -{ - global $db; - - switch($mode) - { - case 'category': - $table = CATEGORIES_TABLE; - $idfield = 'cat_id'; - $namefield = 'cat_title'; - break; - - case 'forum': - $table = FORUMS_TABLE; - $idfield = 'forum_id'; - $namefield = 'forum_name'; - break; - - default: - message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); - break; - } - - $sql = "SELECT * - FROM $table"; - if( $select == 0 ) - { - $sql .= " WHERE $idfield <> $id"; - } - - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql); - } - - $cat_list = ""; - - while( $row = $db->sql_fetchrow($result) ) - { - $s = ""; - if ($row[$idfield] == $id) - { - $s = " selected=\"selected\""; - } - $catlist .= "\n"; - } - - return($catlist); -} - -function renumber_order($mode, $cat = 0) -{ - global $db; - - switch($mode) - { - case 'category': - $table = CATEGORIES_TABLE; - $idfield = 'cat_id'; - $orderfield = 'cat_order'; - $cat = 0; - break; - - case 'forum': - $table = FORUMS_TABLE; - $idfield = 'forum_id'; - $orderfield = 'forum_order'; - $catfield = 'cat_id'; - break; - - default: - message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); - break; - } - - $sql = "SELECT * FROM $table"; - if( $cat != 0) - { - $sql .= " WHERE $catfield = $cat"; - } - $sql .= " ORDER BY $orderfield ASC"; - - - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get list of Categories", "", __LINE__, __FILE__, $sql); - } - - $i = 10; - $inc = 10; - - while( $row = $db->sql_fetchrow($result) ) - { - $sql = "UPDATE $table - SET $orderfield = $i - WHERE $idfield = " . $row[$idfield]; - if( !$db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't update order fields", "", __LINE__, __FILE__, $sql); - } - $i += 10; - } - -} -// -// End function block -// ------------------ - -// -// Begin program proper -// -if( isset($HTTP_POST_VARS['addforum']) || isset($HTTP_POST_VARS['addcategory']) ) -{ - $mode = ( isset($HTTP_POST_VARS['addforum']) ) ? "addforum" : "addcat"; - - if( $mode == "addforum" ) - { - list($cat_id) = each($HTTP_POST_VARS['addforum']); - // - // stripslashes needs to be run on this because slashes are added when the forum name is posted - // - $forumname = stripslashes($HTTP_POST_VARS['forumname'][$cat_id]); - } -} - -if( !empty($mode) ) -{ - switch($mode) - { - case 'addforum': - case 'editforum': - // - // Show form to create/modify a forum - // - if ($mode == 'editforum') - { - // $newmode determines if we are going to INSERT or UPDATE after posting? - - $l_title = $lang['Edit_forum']; - $newmode = 'modforum'; - $buttonvalue = $lang['Update']; - - $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); - - $row = get_info('forum', $forum_id); - - $cat_id = $row['cat_id']; - $forumname = $row['forum_name']; - $forumdesc = $row['forum_desc']; - $forumstatus = $row['forum_status']; - - // - // start forum prune stuff. - // - if( $row['prune_enable'] ) - { - $prune_enabled = "checked=\"checked\""; - $sql = "SELECT * - FROM " . PRUNE_TABLE . " - WHERE forum_id = $forum_id"; - if(!$pr_result = $db->sql_query($sql)) - { - message_die(GENERAL_ERROR, "Auto-Prune: Couldn't read auto_prune table.", __LINE__, __FILE__); - } - - $pr_row = $db->sql_fetchrow($pr_result); - } - else - { - $prune_enabled = ''; - } - } - else - { - $l_title = $lang['Create_forum']; - $newmode = 'createforum'; - $buttonvalue = $lang['Create_forum']; - - $forumdesc = ''; - $forumstatus = FORUM_UNLOCKED; - $forum_id = ''; - $prune_enabled = ''; - } - - $catlist = get_list('category', $cat_id, TRUE); - - $forumstatus == ( FORUM_LOCKED ) ? $forumlocked = "selected=\"selected\"" : $forumunlocked = "selected=\"selected\""; - - // These two options ($lang['Status_unlocked'] and $lang['Status_locked']) seem to be missing from - // the language files. - $lang['Status_unlocked'] = isset($lang['Status_unlocked']) ? $lang['Status_unlocked'] : 'Unlocked'; - $lang['Status_locked'] = isset($lang['Status_locked']) ? $lang['Status_locked'] : 'Locked'; - - $statuslist = "\n"; - $statuslist .= "\n"; - - $template->set_filenames(array( - "body" => "admin/forum_edit_body.tpl") - ); - - $s_hidden_fields = ''; - - $template->assign_vars(array( - 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), - 'S_HIDDEN_FIELDS' => $s_hidden_fields, - 'S_SUBMIT_VALUE' => $buttonvalue, - 'S_CAT_LIST' => $catlist, - 'S_STATUS_LIST' => $statuslist, - 'S_PRUNE_ENABLED' => $prune_enabled, - - 'L_FORUM_TITLE' => $l_title, - 'L_FORUM_EXPLAIN' => $lang['Forum_edit_delete_explain'], - 'L_FORUM_SETTINGS' => $lang['Forum_settings'], - 'L_FORUM_NAME' => $lang['Forum_name'], - 'L_CATEGORY' => $lang['Category'], - 'L_FORUM_DESCRIPTION' => $lang['Forum_desc'], - 'L_FORUM_STATUS' => $lang['Forum_status'], - 'L_AUTO_PRUNE' => $lang['Forum_pruning'], - 'L_ENABLED' => $lang['Enabled'], - 'L_PRUNE_DAYS' => $lang['prune_days'], - 'L_PRUNE_FREQ' => $lang['prune_freq'], - 'L_DAYS' => $lang['Days'], - - 'PRUNE_DAYS' => ( isset($pr_row['prune_days']) ) ? $pr_row['prune_days'] : 7, - 'PRUNE_FREQ' => ( isset($pr_row['prune_freq']) ) ? $pr_row['prune_freq'] : 1, - 'FORUM_NAME' => $forumname, - 'DESCRIPTION' => $forumdesc) - ); - $template->pparse("body"); - break; - - case 'createforum': - // - // Create a forum in the DB - // - if( trim($HTTP_POST_VARS['forumname']) == "" ) - { - message_die(GENERAL_ERROR, "Can't create a forum without a name"); - } - - $sql = "SELECT MAX(forum_order) AS max_order - FROM " . FORUMS_TABLE . " - WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]); - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get order number from forums table", "", __LINE__, __FILE__, $sql); - } - $row = $db->sql_fetchrow($result); - - $max_order = $row['max_order']; - $next_order = $max_order + 10; - - $sql = "SELECT MAX(forum_id) AS max_id - FROM " . FORUMS_TABLE; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get order number from forums table", "", __LINE__, __FILE__, $sql); - } - $row = $db->sql_fetchrow($result); - - $max_id = $row['max_id']; - $next_id = $max_id + 1; - - // - // Default permissions of public :: - // - $field_sql = ""; - $value_sql = ""; - while( list($field, $value) = each($forum_auth_ary) ) - { - $field_sql .= ", $field"; - $value_sql .= ", $value"; - - } - - // There is no problem having duplicate forum names so we won't check for it. - $sql = "INSERT INTO " . FORUMS_TABLE . " (forum_id, forum_name, cat_id, forum_desc, forum_order, forum_status, prune_enable" . $field_sql . ") - VALUES ('" . $next_id . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', $next_order, " . intval($HTTP_POST_VARS['forumstatus']) . ", " . intval($HTTP_POST_VARS['prune_enable']) . $value_sql . ")"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't insert row in forums table", "", __LINE__, __FILE__, $sql); - } - - if( $HTTP_POST_VARS['prune_enable'] ) - { - - if( $HTTP_POST_VARS['prune_days'] == "" || $HTTP_POST_VARS['prune_freq'] == "") - { - message_die(GENERAL_MESSAGE, $lang['Set_prune_data']); - } - - $sql = "INSERT INTO " . PRUNE_TABLE . " (forum_id, prune_days, prune_freq) - VALUES('" . $next_id . "', " . intval($HTTP_POST_VARS['prune_days']) . ", " . intval($HTTP_POST_VARS['prune_freq']) . ")"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't insert row in prune table", "", __LINE__, __FILE__, $sql); - } - } - - $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); - - message_die(GENERAL_MESSAGE, $message); - - break; - - case 'modforum': - // Modify a forum in the DB - if( isset($HTTP_POST_VARS['prune_enable'])) - { - if( $HTTP_POST_VARS['prune_enable'] != 1 ) - { - $HTTP_POST_VARS['prune_enable'] = 0; - } - } - - $sql = "UPDATE " . FORUMS_TABLE . " - SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . " - WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql); - } - - if( $HTTP_POST_VARS['prune_enable'] == 1 ) - { - if( $HTTP_POST_VARS['prune_days'] == "" || $HTTP_POST_VARS['prune_freq'] == "" ) - { - message_die(GENERAL_MESSAGE, $lang['Set_prune_data']); - } - - $sql = "SELECT * - FROM " . PRUNE_TABLE . " - WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get forum Prune Information","",__LINE__, __FILE__, $sql); - } - - if( $db->sql_numrows($result) > 0 ) - { - $sql = "UPDATE " . PRUNE_TABLE . " - SET prune_days = " . intval($HTTP_POST_VARS['prune_days']) . ", prune_freq = " . intval($HTTP_POST_VARS['prune_freq']) . " - WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); - } - else - { - $sql = "INSERT INTO " . PRUNE_TABLE . " (forum_id, prune_days, prune_freq) - VALUES(" . intval($HTTP_POST_VARS[POST_FORUM_URL]) . ", " . intval($HTTP_POST_VARS['prune_days']) . ", " . intval($HTTP_POST_VARS['prune_freq']) . ")"; - } - - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't Update Forum Prune Information","",__LINE__, __FILE__, $sql); - } - } - - $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); - - message_die(GENERAL_MESSAGE, $message); - - break; - - case 'addcat': - // Create a category in the DB - if( trim($HTTP_POST_VARS['categoryname']) == '') - { - message_die(GENERAL_ERROR, "Can't create a category without a name"); - } - - $sql = "SELECT MAX(cat_order) AS max_order - FROM " . CATEGORIES_TABLE; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get order number from categories table", "", __LINE__, __FILE__, $sql); - } - $row = $db->sql_fetchrow($result); - - $max_order = $row['max_order']; - $next_order = $max_order + 10; - - // - // There is no problem having duplicate forum names so we won't check for it. - // - $sql = "INSERT INTO " . CATEGORIES_TABLE . " (cat_title, cat_order) - VALUES ('" . str_replace("\'", "''", $HTTP_POST_VARS['categoryname']) . "', $next_order)"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't insert row in categories table", "", __LINE__, __FILE__, $sql); - } - - $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); - - message_die(GENERAL_MESSAGE, $message); - - break; - - case 'editcat': - // - // Show form to edit a category - // - $newmode = 'modcat'; - $buttonvalue = $lang['Update']; - - $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); - - $row = get_info('category', $cat_id); - $cat_title = $row['cat_title']; - - $template->set_filenames(array( - "body" => "admin/category_edit_body.tpl") - ); - - $s_hidden_fields = ''; - - $template->assign_vars(array( - 'CAT_TITLE' => $cat_title, - - 'L_EDIT_CATEGORY' => $lang['Edit_Category'], - 'L_EDIT_CATEGORY_EXPLAIN' => $lang['Edit_Category_explain'], - 'L_CATEGORY' => $lang['Category'], - - 'S_HIDDEN_FIELDS' => $s_hidden_fields, - 'S_SUBMIT_VALUE' => $buttonvalue, - 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx")) - ); - - $template->pparse("body"); - break; - - case 'modcat': - // Modify a category in the DB - $sql = "UPDATE " . CATEGORIES_TABLE . " - SET cat_title = '" . str_replace("\'", "''", $HTTP_POST_VARS['cat_title']) . "' - WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]); - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql); - } - - $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); - - message_die(GENERAL_MESSAGE, $message); - - break; - - case 'deleteforum': - // Show form to delete a forum - $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); - - $select_to = ''; - - $buttonvalue = $lang['Move_and_Delete']; - - $newmode = 'movedelforum'; - - $foruminfo = get_info('forum', $forum_id); - $name = $foruminfo['forum_name']; - - $template->set_filenames(array( - "body" => "admin/forum_delete_body.tpl") - ); - - $s_hidden_fields = ''; - - $template->assign_vars(array( - 'NAME' => $name, - - 'L_FORUM_DELETE' => $lang['Forum_delete'], - 'L_FORUM_DELETE_EXPLAIN' => $lang['Forum_delete_explain'], - 'L_MOVE_CONTENTS' => $lang['Move_contents'], - 'L_FORUM_NAME' => $lang['Forum_name'], - - "S_HIDDEN_FIELDS" => $s_hidden_fields, - 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), - 'S_SELECT_TO' => $select_to, - 'S_SUBMIT_VALUE' => $buttonvalue) - ); - - $template->pparse("body"); - break; - - case 'movedelforum': - // - // Move or delete a forum in the DB - // - $from_id = intval($HTTP_POST_VARS['from_id']); - $to_id = intval($HTTP_POST_VARS['to_id']); - $delete_old = intval($HTTP_POST_VARS['delete_old']); - - // Either delete or move all posts in a forum - if($to_id == -1) - { - // Delete polls in this forum - $sql = "SELECT v.vote_id - FROM " . VOTE_DESC_TABLE . " v, " . TOPICS_TABLE . " t - WHERE t.forum_id = $from_id - AND v.topic_id = t.topic_id"; - if (!($result = $db->sql_query($sql))) - { - message_die(GENERAL_ERROR, "Couldn't obtain list of vote ids", "", __LINE__, __FILE__, $sql); - } - - if ($row = $db->sql_fetchrow($result)) - { - $vote_ids = ''; - do - { - $vote_ids = (($vote_ids != '') ? ', ' : '') . $row['vote_id']; - } - while ($row = $db->sql_fetchrow($result)); - - $sql = "DELETE FROM " . VOTE_DESC_TABLE . " - WHERE vote_id IN ($vote_ids)"; - $db->sql_query($sql); - - $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . " - WHERE vote_id IN ($vote_ids)"; - $db->sql_query($sql); - - $sql = "DELETE FROM " . VOTE_USERS_TABLE . " - WHERE vote_id IN ($vote_ids)"; - $db->sql_query($sql); - } - $db->sql_freeresult($result); - - include($phpbb_root_path . "includes/prune.$phpEx"); - prune($from_id, 0, true); // Delete everything from forum - } - else - { - $sql = "SELECT * - FROM " . FORUMS_TABLE . " - WHERE forum_id IN ($from_id, $to_id)"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't verify existence of forums", "", __LINE__, __FILE__, $sql); - } - - if($db->sql_numrows($result) != 2) - { - message_die(GENERAL_ERROR, "Ambiguous forum ID's", "", __LINE__, __FILE__); - } - $sql = "UPDATE " . TOPICS_TABLE . " - SET forum_id = $to_id - WHERE forum_id = $from_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't move topics to other forum", "", __LINE__, __FILE__, $sql); - } - $sql = "UPDATE " . POSTS_TABLE . " - SET forum_id = $to_id - WHERE forum_id = $from_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't move posts to other forum", "", __LINE__, __FILE__, $sql); - } - sync('forum', $to_id); - } - - // Alter Mod level if appropriate - 2.0.4 - $sql = "SELECT ug.user_id - FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug - WHERE a.forum_id <> $from_id - AND a.auth_mod = 1 - AND ug.group_id = a.group_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't obtain moderator list", "", __LINE__, __FILE__, $sql); - } - - if ($row = $db->sql_fetchrow($result)) - { - $user_ids = ''; - do - { - $user_ids .= (($user_ids != '') ? ', ' : '' ) . $row['user_id']; - } - while ($row = $db->sql_fetchrow($result)); - - $sql = "SELECT ug.user_id - FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug - WHERE a.forum_id = $from_id - AND a.auth_mod = 1 - AND ug.group_id = a.group_id - AND ug.user_id NOT IN ($user_ids)"; - if( !$result2 = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't obtain moderator list", "", __LINE__, __FILE__, $sql); - } - - if ($row = $db->sql_fetchrow($result2)) - { - $user_ids = ''; - do - { - $user_ids .= (($user_ids != '') ? ', ' : '' ) . $row['user_id']; - } - while ($row = $db->sql_fetchrow($result2)); - - $sql = "UPDATE " . USERS_TABLE . " - SET user_level = " . USER . " - WHERE user_id IN ($user_ids) - AND user_level <> " . ADMIN; - $db->sql_query($sql); - } - $db->sql_freeresult($result); - - } - $db->sql_freeresult($result2); - - $sql = "DELETE FROM " . FORUMS_TABLE . " - WHERE forum_id = $from_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't delete forum", "", __LINE__, __FILE__, $sql); - } - - $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " - WHERE forum_id = $from_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't delete forum", "", __LINE__, __FILE__, $sql); - } - - $sql = "DELETE FROM " . PRUNE_TABLE . " - WHERE forum_id = $from_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't delete forum prune information!", "", __LINE__, __FILE__, $sql); - } - - $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); - - message_die(GENERAL_MESSAGE, $message); - - break; - - case 'deletecat': - // - // Show form to delete a category - // - $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); - - $buttonvalue = $lang['Move_and_Delete']; - $newmode = 'movedelcat'; - $catinfo = get_info('category', $cat_id); - $name = $catinfo['cat_title']; - - if ($catinfo['number'] == 1) - { - $sql = "SELECT count(*) as total - FROM ". FORUMS_TABLE; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't get Forum count", "", __LINE__, __FILE__, $sql); - } - $count = $db->sql_fetchrow($result); - $count = $count['total']; - - if ($count > 0) - { - message_die(GENERAL_ERROR, $lang['Must_delete_forums']); - } - else - { - $select_to = $lang['Nowhere_to_move']; - } - } - else - { - $select_to = ''; - } - - $template->set_filenames(array( - "body" => "admin/forum_delete_body.tpl") - ); - - $s_hidden_fields = ''; - - $template->assign_vars(array( - 'NAME' => $name, - - 'L_FORUM_DELETE' => $lang['Forum_delete'], - 'L_FORUM_DELETE_EXPLAIN' => $lang['Forum_delete_explain'], - 'L_MOVE_CONTENTS' => $lang['Move_contents'], - 'L_FORUM_NAME' => $lang['Forum_name'], - - 'S_HIDDEN_FIELDS' => $s_hidden_fields, - 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), - 'S_SELECT_TO' => $select_to, - 'S_SUBMIT_VALUE' => $buttonvalue) - ); - - $template->pparse("body"); - break; - - case 'movedelcat': - // - // Move or delete a category in the DB - // - $from_id = intval($HTTP_POST_VARS['from_id']); - $to_id = intval($HTTP_POST_VARS['to_id']); - - if (!empty($to_id)) - { - $sql = "SELECT * - FROM " . CATEGORIES_TABLE . " - WHERE cat_id IN ($from_id, $to_id)"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't verify existence of categories", "", __LINE__, __FILE__, $sql); - } - if($db->sql_numrows($result) != 2) - { - message_die(GENERAL_ERROR, "Ambiguous category ID's", "", __LINE__, __FILE__); - } - - $sql = "UPDATE " . FORUMS_TABLE . " - SET cat_id = $to_id - WHERE cat_id = $from_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't move forums to other category", "", __LINE__, __FILE__, $sql); - } - } - - $sql = "DELETE FROM " . CATEGORIES_TABLE ." - WHERE cat_id = $from_id"; - - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't delete category", "", __LINE__, __FILE__, $sql); - } - - $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); - - message_die(GENERAL_MESSAGE, $message); - - break; - - case 'forum_order': - // - // Change order of forums in the DB - // - $move = intval($HTTP_GET_VARS['move']); - $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); - - $forum_info = get_info('forum', $forum_id); - - $cat_id = $forum_info['cat_id']; - - $sql = "UPDATE " . FORUMS_TABLE . " - SET forum_order = forum_order + $move - WHERE forum_id = $forum_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't change category order", "", __LINE__, __FILE__, $sql); - } - - renumber_order('forum', $forum_info['cat_id']); - $show_index = TRUE; - - break; - - case 'cat_order': - // - // Change order of categories in the DB - // - $move = intval($HTTP_GET_VARS['move']); - $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); - - $sql = "UPDATE " . CATEGORIES_TABLE . " - SET cat_order = cat_order + $move - WHERE cat_id = $cat_id"; - if( !$result = $db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, "Couldn't change category order", "", __LINE__, __FILE__, $sql); - } - - renumber_order('category'); - $show_index = TRUE; - - break; - - case 'forum_sync': - sync('forum', intval($HTTP_GET_VARS[POST_FORUM_URL])); - $show_index = TRUE; - - break; - - default: - message_die(GENERAL_MESSAGE, $lang['No_mode']); - break; - } - - if ($show_index != TRUE) - { - include('./page_footer_admin.'.$phpEx); - exit; - } -} - -// -// Start page proper -// -$template->set_filenames(array( - "body" => "admin/forum_admin_body.tpl") -); - -$template->assign_vars(array( - 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), - 'L_FORUM_TITLE' => $lang['Forum_admin'], - 'L_FORUM_EXPLAIN' => $lang['Forum_admin_explain'], - 'L_CREATE_FORUM' => $lang['Create_forum'], - 'L_CREATE_CATEGORY' => $lang['Create_category'], - 'L_EDIT' => $lang['Edit'], - 'L_DELETE' => $lang['Delete'], - 'L_MOVE_UP' => $lang['Move_up'], - 'L_MOVE_DOWN' => $lang['Move_down'], - 'L_RESYNC' => $lang['Resync']) -); - -$sql = "SELECT cat_id, cat_title, cat_order - FROM " . CATEGORIES_TABLE . " - ORDER BY cat_order"; -if( !$q_categories = $db->sql_query($sql) ) -{ - message_die(GENERAL_ERROR, "Could not query categories list", "", __LINE__, __FILE__, $sql); -} - -if( $total_categories = $db->sql_numrows($q_categories) ) -{ - $category_rows = $db->sql_fetchrowset($q_categories); - - $sql = "SELECT * - FROM " . FORUMS_TABLE . " - ORDER BY cat_id, forum_order"; - if(!$q_forums = $db->sql_query($sql)) - { - message_die(GENERAL_ERROR, "Could not query forums information", "", __LINE__, __FILE__, $sql); - } - - if( $total_forums = $db->sql_numrows($q_forums) ) - { - $forum_rows = $db->sql_fetchrowset($q_forums); - } - - // - // Okay, let's build the index - // - $gen_cat = array(); - - for($i = 0; $i < $total_categories; $i++) - { - $cat_id = $category_rows[$i]['cat_id']; - - $template->assign_block_vars("catrow", array( - 'S_ADD_FORUM_SUBMIT' => "addforum[$cat_id]", - 'S_ADD_FORUM_NAME' => "forumname[$cat_id]", - - 'CAT_ID' => $cat_id, - 'CAT_DESC' => $category_rows[$i]['cat_title'], - - 'U_CAT_EDIT' => append_sid("admin_forums.$phpEx?mode=editcat&" . POST_CAT_URL . "=$cat_id"), - 'U_CAT_DELETE' => append_sid("admin_forums.$phpEx?mode=deletecat&" . POST_CAT_URL . "=$cat_id"), - 'U_CAT_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=cat_order&move=-15&" . POST_CAT_URL . "=$cat_id"), - 'U_CAT_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=cat_order&move=15&" . POST_CAT_URL . "=$cat_id"), - 'U_VIEWCAT' => append_sid($phpbb_root_path."index.$phpEx?" . POST_CAT_URL . "=$cat_id")) - ); - - for($j = 0; $j < $total_forums; $j++) - { - $forum_id = $forum_rows[$j]['forum_id']; - - if ($forum_rows[$j]['cat_id'] == $cat_id) - { - - $template->assign_block_vars("catrow.forumrow", array( - 'FORUM_NAME' => $forum_rows[$j]['forum_name'], - 'FORUM_DESC' => $forum_rows[$j]['forum_desc'], - 'ROW_COLOR' => $row_color, - 'NUM_TOPICS' => $forum_rows[$j]['forum_topics'], - 'NUM_POSTS' => $forum_rows[$j]['forum_posts'], - - 'U_VIEWFORUM' => append_sid($phpbb_root_path."viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_EDIT' => append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&move=-15&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&move=15&" . POST_FORUM_URL . "=$forum_id"), - 'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$forum_id")) - ); - - }// if ... forumid == catid - - } // for ... forums - - } // for ... categories - -}// if ... total_categories - -$template->pparse("body"); - -include('./page_footer_admin.'.$phpEx); - -?>