diff -r e3d7322305bf -r 5e1f1e916419 punbb/admin/forums.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/punbb/admin/forums.php Sat Apr 05 23:56:45 2008 -0400 @@ -0,0 +1,726 @@ + $_ ) +{ + $$key =& $GLOBALS[$key]; +} + +($hook = get_hook('afo_start')) ? eval($hook) : null; + +if ($session->user_level < USER_LEVEL_ADMIN) + message($lang_common['No permission']); + +// Load the admin.php language file +require PUN_ROOT.'lang/'.$pun_user['language'].'/admin.php'; +$GLOBALS['lang_admin'] = $lang_admin; + + +// Add a "default" forum +if (isset($_POST['add_forum'])) +{ + $add_to_cat = intval($_POST['add_to_cat']); + if ($add_to_cat < 1) + message($lang_common['Bad request']); + + $forum_name = trim($_POST['forum_name']); + $position = intval($_POST['position']); + + ($hook = get_hook('afo_add_forum_form_submitted')) ? eval($hook) : null; + + if ($forum_name == '') + message($lang_admin['Must enter forum message']); + + $query = array( + 'INSERT' => 'forum_name, disp_position, cat_id', + 'INTO' => 'forums', + 'VALUES' => '\''.$pun_db->escape($forum_name).'\', '.$position.', '.$add_to_cat + ); + + ($hook = get_hook('afo_qr_add_forum')) ? eval($hook) : null; + $pun_db->query_build($query) or error(__FILE__, __LINE__); + + // Regenerate the quickjump cache + require_once PUN_ROOT.'include/cache.php'; + generate_quickjump_cache(); + + pun_redirect(pun_link($pun_url['admin_forums']), $lang_admin['Forum added'].' '.$lang_admin['Redirect']); +} + + +// Delete a forum +else if (isset($_GET['del_forum'])) +{ + $forum_to_delete = intval($_GET['del_forum']); + if ($forum_to_delete < 1) + message($lang_common['Bad request']); + + // User pressed the cancel button + if (isset($_POST['del_forum_cancel'])) + pun_redirect(pun_link($pun_url['admin_forums']), $lang_admin['Cancel redirect']); + + ($hook = get_hook('afo_del_forum_form_submitted')) ? eval($hook) : null; + + if (isset($_POST['del_forum_comply'])) // Delete a forum with all posts + { + @set_time_limit(0); + + // Prune all posts and topics + prune($forum_to_delete, 1, -1); + + delete_orphans(); + + // Delete the forum and any forum specific group permissions + $query = array( + 'DELETE' => 'forums', + 'WHERE' => 'id='.$forum_to_delete + ); + + ($hook = get_hook('afo_qr_delete_forum')) ? eval($hook) : null; + $pun_db->query_build($query) or error(__FILE__, __LINE__); + + $query = array( + 'DELETE' => 'forum_perms', + 'WHERE' => 'forum_id='.$forum_to_delete + ); + + ($hook = get_hook('afo_qr_delete_forum_perms')) ? eval($hook) : null; + $pun_db->query_build($query) or error(__FILE__, __LINE__); + + // Regenerate the quickjump cache + require_once PUN_ROOT.'include/cache.php'; + generate_quickjump_cache(); + + pun_redirect(pun_link($pun_url['admin_forums']), $lang_admin['Forum deleted'].' '.$lang_admin['Redirect']); + } + else // If the user hasn't confirmed the delete + { + $query = array( + 'SELECT' => 'f.forum_name', + 'FROM' => 'forums AS f', + 'WHERE' => 'f.id='.$forum_to_delete + ); + + ($hook = get_hook('afo_qr_get_forum_name')) ? eval($hook) : null; + $result = $pun_db->query_build($query) or error(__FILE__, __LINE__); + $forum_name = $pun_db->result($result); + + + // Setup breadcrumbs + $pun_page['crumbs'] = array( + array($pun_config['o_board_title'], pun_link($pun_url['index'])), + array($lang_admin['Forum administration'], pun_link($pun_url['admin_index'])), + array($lang_admin['Forums'], pun_link($pun_url['admin_forums'])), + $lang_admin['Delete forum'] + ); + + ($hook = get_hook('afo_del_forum_pre_header_load')) ? eval($hook) : null; + + define('PUN_PAGE_SECTION', 'start'); + define('PUN_PAGE', 'admin-forums'); + require PUN_ROOT.'header.php'; + +?> +