public function display() { global $lang_common, $lang_admin_common, $lang_admin_censoring; require FEATHER_ROOT . 'include/common_admin.php'; if ($this->user->g_id != FEATHER_ADMIN) { message($lang_common['No permission'], '403'); } define('FEATHER_ADMIN_CONSOLE', 1); // Load the admin_options.php language file require FEATHER_ROOT . 'lang/' . $admin_language . '/censoring.php'; // Add a censor word if ($this->request->post('add_word')) { $this->model->add_word(); } elseif ($this->request->post('update')) { $this->model->update_word(); } elseif ($this->request->post('remove')) { $this->model->remove_word(); } $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Censoring']); $focus_element = array('censoring', 'new_search_for'); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->setFocusElement($focus_element)->display(); generate_admin_menu('censoring'); $this->feather->render('admin/censoring.php', array('lang_admin_censoring' => $lang_admin_censoring, 'lang_admin_common' => $lang_admin_common, 'feather_config' => $this->config, 'word_data' => $this->model->get_words())); $this->footer->display(); }
public function display() { global $lang_common, $lang_admin_common, $lang_admin_index; require FEATHER_ROOT . 'include/common_admin.php'; if (!$this->user->is_admmod) { message($lang_common['No permission'], '403'); } define('FEATHER_ADMIN_CONSOLE', 1); // Load the admin_index.php language file require FEATHER_ROOT . 'lang/' . $admin_language . '/index.php'; $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Server statistics']); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->display(); generate_admin_menu('index'); $total = $this->model->get_total_size(); $this->feather->render('admin/statistics.php', array('lang_admin_common' => $lang_admin_common, 'lang_admin_index' => $lang_admin_index, 'feather_config' => $this->config, 'server_load' => $this->model->get_server_load(), 'num_online' => $this->model->get_num_online(), 'total_size' => $total['size'], 'total_records' => $total['records'], 'php_accelerator' => $this->model->get_php_accelerator(), 'feather' => $this->feather)); $this->footer->display(); }
public function display() { global $lang_common, $lang_admin_maintenance, $lang_admin_common; require FEATHER_ROOT . 'include/common_admin.php'; if ($this->user->g_id != FEATHER_ADMIN) { message($lang_common['No permission'], '403'); } define('FEATHER_ADMIN_CONSOLE', 1); // Load the admin_options.php language file require FEATHER_ROOT . 'lang/' . $admin_language . '/maintenance.php'; $action = ''; if ($this->request->post('action')) { $action = $this->request->post('action'); } elseif ($this->request->get('action')) { $action = $this->request->get('action'); } if ($action == 'rebuild') { $this->model->rebuild(); $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_maintenance['Rebuilding search index']); $this->feather->render('admin/maintenance/rebuild.php', array('lang_admin_maintenance' => $lang_admin_maintenance, 'page_title' => $page_title)); $query_str = $this->model->get_query_str(); exit('<script type="text/javascript">window.location="' . get_link('admin/maintenance/') . $query_str . '"</script><hr /><p>' . sprintf($lang_admin_maintenance['Javascript redirect failed'], '<a href="' . get_link('admin/maintenance/') . $query_str . '">' . $lang_admin_maintenance['Click here'] . '</a>') . '</p>'); } if ($action == 'prune') { $prune_from = feather_trim($this->request->post('prune_from')); $prune_sticky = intval($this->request->post('prune_sticky')); $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Prune']); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->display(); generate_admin_menu('maintenance'); if ($this->request->post('prune_comply')) { $this->model->prune_comply($prune_from, $prune_sticky); } $this->feather->render('admin/maintenance/prune.php', array('lang_admin_maintenance' => $lang_admin_maintenance, 'lang_admin_common' => $lang_admin_common, 'prune_sticky' => $prune_sticky, 'prune_from' => $prune_from, 'prune' => $this->model->get_info_prune($prune_sticky, $prune_from))); $this->footer->display(); } $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Maintenance']); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->display(); generate_admin_menu('maintenance'); $this->feather->render('admin/maintenance/admin_maintenance.php', array('lang_admin_maintenance' => $lang_admin_maintenance, 'lang_admin_common' => $lang_admin_common, 'first_id' => $this->model->get_first_id(), 'categories' => $this->model->get_categories())); $this->footer->display(); }
public function display() { global $lang_common, $lang_admin_common; require FEATHER_ROOT . 'include/common_admin.php'; if ($this->user->g_id != FEATHER_ADMIN) { message($lang_common['No permission'], '403'); } define('FEATHER_ADMIN_CONSOLE', 1); // Load the admin_options.php language file require FEATHER_ROOT . 'lang/' . $admin_language . '/options.php'; if ($this->feather->request->isPost()) { $this->model->update_options(); } $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Options']); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->display(); generate_admin_menu('options'); $this->feather->render('admin/options.php', array('lang_admin_options' => $lang_admin_options, 'feather_config' => $this->config, 'feather_user' => $this->user, 'languages' => forum_list_langs(), 'styles' => $this->model->get_styles(), 'times' => $this->model->get_times(), 'feather' => $this->feather)); $this->footer->display(); }
public function display() { global $lang_common, $lang_admin_common, $lang_admin_permissions; require FEATHER_ROOT . 'include/common_admin.php'; if (!$this->user->is_admmod) { message($lang_common['No permission'], '403'); } define('FEATHER_ADMIN_CONSOLE', 1); // Load the admin_options.php language file require FEATHER_ROOT . 'lang/' . $admin_language . '/permissions.php'; // Update permissions if ($this->feather->request->isPost()) { $this->model->update_permissions(); } $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Permissions']); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->display(); generate_admin_menu('permissions'); $this->feather->render('admin/permissions.php', array('lang_admin_permissions' => $lang_admin_permissions, 'lang_admin_common' => $lang_admin_common, 'feather_config' => $this->config)); $this->footer->display(); }
public function display($action = null) { global $lang_common, $lang_admin_common, $lang_admin_index; require FEATHER_ROOT . 'include/common_admin.php'; if (!$this->user->is_admmod) { message($lang_common['No permission'], '403'); } // Load the admin_index.php language file require FEATHER_ROOT . 'lang/' . $admin_language . '/index.php'; define('FEATHER_ADMIN_CONSOLE', 1); // Check for upgrade if ($action == 'check_upgrade') { if (!ini_get('allow_url_fopen')) { message($lang_admin_index['fopen disabled message']); } $latest_version = trim(@file_get_contents('http://featherbb.org/latest_version')); if (empty($latest_version)) { message($lang_admin_index['Upgrade check failed message']); } if (version_compare($this->config['o_cur_version'], $latest_version, '>=')) { message($lang_admin_index['Running latest version message']); } else { message(sprintf($lang_admin_index['New version available message'], '<a href="http://featherbb.org/">FeatherBB.org</a>')); } } elseif ($action == 'remove_install_file') { $deleted = $this->remove_install_folder(FEATHER_ROOT . 'install'); if ($deleted) { redirect(get_link('admin/'), $lang_admin_index['Deleted install.php redirect']); } else { message($lang_admin_index['Delete install.php failed']); } } $install_folder_exists = is_dir(FEATHER_ROOT . 'install'); $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Index']); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->display(); generate_admin_menu('index'); $this->feather->render('admin/index.php', array('lang_admin_index' => $lang_admin_index, 'install_file_exists' => $install_folder_exists, 'feather_config' => $this->config)); $this->footer->display(); }
public function display() { global $lang_common, $lang_admin_common, $lang_admin_users; define('FEATHER_ADMIN_CONSOLE', 1); require FEATHER_ROOT . 'include/common_admin.php'; if (!$this->user->is_admmod) { message($lang_common['No permission'], '403'); } // Load the admin_bans.php language file require FEATHER_ROOT . 'lang/' . $admin_language . '/users.php'; // Move multiple users to other user groups if ($this->request->post('move_users') || $this->request->post('move_users_comply')) { if ($this->user->g_id > FEATHER_ADMIN) { message($lang_common['No permission'], '403'); } $move = $this->model->move_users(); $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Users'], $lang_admin_users['Move users']); define('FEATHER_ACTIVE_PAGE', 'moderate'); $this->header->setTitle($page_title)->display(); generate_admin_menu('users'); $this->feather->render('admin/users/move_users.php', array('lang_admin_users' => $lang_admin_users, 'lang_admin_common' => $lang_admin_common, 'move' => $move)); $this->footer->display(); } // Delete multiple users if ($this->request->post('delete_users') || $this->request->post('delete_users_comply')) { if ($this->user->g_id > FEATHER_ADMIN) { message($lang_common['No permission'], '403'); } $user_ids = $this->model->delete_users(); $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Users'], $lang_admin_users['Delete users']); define('FEATHER_ACTIVE_PAGE', 'moderate'); $this->header->setTitle($page_title)->display(); generate_admin_menu('users'); $this->feather->render('admin/users/delete_users.php', array('lang_admin_users' => $lang_admin_users, 'lang_admin_common' => $lang_admin_common, 'user_ids' => $user_ids)); $this->footer->display(); } // Ban multiple users if ($this->request->post('ban_users') || $this->request->post('ban_users_comply')) { if ($this->user->g_id != FEATHER_ADMIN && ($this->user->g_moderator != '1' || $this->user->g_mod_ban_users == '0')) { message($lang_common['No permission'], '403'); } $user_ids = $this->model->ban_users(); $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Bans']); $focus_element = array('bans2', 'ban_message'); define('FEATHER_ACTIVE_PAGE', 'moderate'); $this->header->setTitle($page_title)->setFocusElement($focus_element)->display(); generate_admin_menu('users'); $this->feather->render('admin/users/ban_users.php', array('lang_admin_users' => $lang_admin_users, 'lang_admin_common' => $lang_admin_common, 'user_ids' => $user_ids)); $this->footer->display(); } // Display bans if ($this->request->get('find_user')) { // Return conditions and query string for the URL $search = $this->model->get_user_search(); // Fetch user count $num_users = $this->model->get_num_users_search($search['conditions']); // Determine the user offset (based on $_GET['p']) $num_pages = ceil($num_users / 50); $p = !$this->request->get('p') || $this->request->get('p') <= 1 || $this->request->get('p') > $num_pages ? 1 : intval($this->request->get('p')); $start_from = 50 * ($p - 1); // Generate paging links $paging_links = '<span class="pages-label">' . $lang_common['Pages'] . ' </span>' . paginate_old($num_pages, $p, '?find_user=&' . implode('&', $search['query_str'])); // Some helper variables for permissions $can_delete = $can_move = $this->user->g_id == FEATHER_ADMIN; $can_ban = $this->user->g_id == FEATHER_ADMIN || $this->user->g_moderator == '1' && $this->user->g_mod_ban_users == '1'; $can_action = ($can_delete || $can_ban || $can_move) && $num_users > 0; $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Users'], $lang_admin_users['Results head']); $page_head = array('js' => '<script type="text/javascript" src="' . get_base_url() . '/js/common.js"></script>'); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->setPage($p)->setPagingLinks($paging_links)->setPageHead($page_head)->display(); $this->feather->render('admin/users/find_users.php', array('lang_admin_users' => $lang_admin_users, 'lang_admin_common' => $lang_admin_common, 'search' => $search, 'start_from' => $start_from, 'can_delete' => $can_delete, 'can_ban' => $can_ban, 'can_action' => $can_action, 'can_move' => $can_move, 'user_data' => $this->model->print_users($search['conditions'], $search['order_by'], $search['direction'], $start_from))); $this->footer->display(); } $page_title = array(feather_escape($this->config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Users']); $focus_element = array('find_user', 'form[username]'); define('FEATHER_ACTIVE_PAGE', 'admin'); $this->header->setTitle($page_title)->setFocusElement($focus_element)->display(); generate_admin_menu('users'); $this->feather->render('admin/users/admin_users.php', array('lang_admin_users' => $lang_admin_users, 'lang_admin_common' => $lang_admin_common, 'group_list' => $this->model->get_group_list())); $this->footer->display(); }
</div> </div> </div> <div class="linksb"> <div class="inbox"> <div><a href="javascript:history.go(-1)">Go back</a></div> </div> </div> <?php require PUN_ROOT . 'footer.php'; } else { $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Users'; $focus_element = array('find_user', 'username'); require PUN_ROOT . 'header.php'; generate_admin_menu('users'); ?> <div class="blockform"> <h2><span>User search</span></h2> <div class="box"> <form id="find_user" method="post" action="admin_users.php?action=find_user"> <p class="submittop"><input type="submit" name="find_user" value="Submit search" tabindex="1" /></p> <div class="inform"> <fieldset> <legend>Enter search criteria</legend> <div class="infldset"> <p>Search for users in the database. You can enter one or more terms to search for. Wildcards in the form of asterisks (*) are accepted.</p> <table class="aligntop"> <tr> <th scope="row">Forum name</th> <td><input type="text" name="username" size="25" maxlength="25" tabindex="2" /></td>
// Only update values that have changed if (array_key_exists('o_' . $key, $pun_config) && $pun_config['o_' . $key] != $input) { $params = array(':name' => 'o_' . $key, ':value' => $input != '' || is_int($input) ? $input : 'NULL'); $query->run($params); unset($params); } } unset($query); // Regenerate the config cache $cache->delete('config'); redirect('admin_options.php', $lang->t('Options updated redirect')); } $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang->t('Admin'), $lang->t('Options')); define('PUN_ACTIVE_PAGE', 'admin'); require PUN_ROOT . 'header.php'; generate_admin_menu('options'); ?> <div class="blockform"> <h2><span><?php echo $lang->t('Options head'); ?> </span></h2> <div class="box"> <form method="post" action="admin_options.php"> <p class="submittop"><input type="submit" name="save" value="<?php echo $lang->t('Save changes'); ?> " /></p> <div class="inform"> <input type="hidden" name="form_sent" value="1" /> <fieldset>
</form> </div> </div> <div class="clearer"></div> </div> <?php require PUN_ROOT . 'footer.php'; } } } } $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Forums']); define('PUN_ACTIVE_PAGE', 'admin'); require PUN_ROOT . 'header.php'; generate_admin_menu('forums'); ?> <div class="blockform"> <h2><span><?php echo $lang_admin_forums['Add forum head']; ?> </span></h2> <div class="box"> <form method="post" action="admin_forums.php?action=adddel"> <?php $result = $db->query('SELECT id, cat_name FROM ' . $db->prefix . 'categories ORDER BY disp_position') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result) > 0) { ?> <div class="inform"> <fieldset> <legend><?php
// Regenerate the quickjump cache require_once PUN_ROOT . 'include/cache.php'; generate_quickjump_cache(); redirect('admin_categories.php', 'Categories updated. Redirecting …'); } } } // Generate an array with all categories $result = $db->query('SELECT id, cat_name, disp_position FROM ' . $db->prefix . 'categories ORDER BY disp_position') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error()); $num_cats = $db->num_rows($result); for ($i = 0; $i < $num_cats; ++$i) { $cat_list[] = $db->fetch_row($result); } $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Categories'; require PUN_ROOT . 'header.php'; generate_admin_menu('categories'); ?> <div class="blockform"> <h2><span>Add/remove/edit categories</span></h2> <div class="box"> <form method="post" action="admin_categories.php?action=foo"> <div class="inform"> <fieldset> <legend>Add/delete categories</legend> <div class="infldset"> <table class="aligntop" cellspacing="0"> <tr> <th scope="row">Add a new category<div><input type="submit" name="add_cat" value="Add New" tabindex="2" /></div></th> <td> <input type="text" name="new_cat_name" size="35" maxlength="80" tabindex="1" /> <span>The name of the new category you want to add. You can edit the name of the category later (see below).Go to <a href="admin_forums.php">Forums</a> to add forums to your new category.</span>
$total_size = round($total_size, 2) . ' KB'; } } // See if MMCache or PHPA is loaded if (function_exists('mmcache')) { $php_accelerator = '<a href="http://turck-mmcache.sourceforge.net/">Turck MMCache</a>'; } else { if (isset($_PHPA)) { $php_accelerator = '<a href="http://www.php-accelerator.co.uk/">ionCube PHP Accelerator</a>'; } else { $php_accelerator = 'N/A'; } } $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin'; require PUN_ROOT . 'header.php'; generate_admin_menu('index'); ?> <div class="block"> <h2>Forum administration</h2> <div id="adintro" class="box"> <div class="inbox"> <p> Welcome to the PunBB administration control panel. From here you can control vital aspects of the forum. Depending on whether you are an administrator or a moderator you can<br /><br /> - organize categories and forums.<br /> - set forum-wide options and preferences.<br /> - control permissions for users and guests.<br /> - view IP statistics for users.<br /> - ban users.<br /> - censor words.<br /> - set up user ranks.<br /> - prune old posts.<br />
// Regenerate the users info cache if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require PANTHER_ROOT . 'include/cache.php'; } generate_users_info_cache(); redirect(panther_link($panther_url['admin_maintenance']), $lang_admin_maintenance['User created message']); } } // Get the first post ID from the db $ps = $db->select('posts', 'id', array(), '', 'id ASC LIMIT 1'); $first_id = $ps->rowCount() ? $ps->fetchColumn() : 0; $page_title = array($panther_config['o_board_title'], $lang_admin_common['Admin'], $lang_admin_common['Maintenance']); define('PANTHER_ACTIVE_PAGE', 'admin'); require PANTHER_ROOT . 'header.php'; $options = array(); $ps = $db->run('SELECT u.id, u.username, g.g_title FROM ' . $db->prefix . 'users AS u INNER JOIN ' . $db->prefix . 'groups AS g ON u.group_id=g.g_id WHERE u.id!=1 ORDER BY u.id ASC'); foreach ($ps as $result) { $options[] = array('id' => $result['id'], 'username' => $result['username'], 'group_title' => $result['g_title']); } $forums = $catgeories = array(); $ps = $db->run('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name FROM ' . $db->prefix . 'categories AS c INNER JOIN ' . $db->prefix . 'forums AS f ON c.id=f.cat_id WHERE f.redirect_url IS NULL ORDER BY c.disp_position, c.id, f.disp_position'); foreach ($ps as $cur_forum) { if (!isset($categories[$cur_forum['cid']])) { $categories[$cur_forum['cid']] = array('id' => $cur_forum['cid'], 'name' => $cur_forum['cat_name']); } $forums[] = array('category_id' => $cur_forum['cid'], 'name' => $cur_forum['forum_name'], 'id' => $cur_forum['fid']); } generate_admin_menu('maintenance'); $tpl = load_template('admin_maintenance.tpl'); echo $tpl->render(array('lang_admin_maintenance' => $lang_admin_maintenance, 'lang_admin_common' => $lang_admin_common, 'lang_common' => $lang_common, 'form_action' => panther_link($panther_url['admin_maintenance']), 'csrf_token' => generate_csrf_token(PANTHER_ADMIN_DIR . '/maintenance.php'), 'options_link' => panther_link($panther_url['admin_options']), 'first_id' => $first_id, 'POST' => $_POST, 'panther_config' => $panther_config, 'errors' => $errors, 'options' => $options, 'forums' => $forums, 'categories' => $categories)); require PANTHER_ROOT . 'footer.php';
for ($i = 0; $i < count($topics['topics']); $i++) { $markers[] = '?'; $data[] = $topics['topics'][$i]; } $db->run('UPDATE ' . $db->prefix . 'topics SET archived=1 WHERE id IN (' . implode(',', $markers) . ')', $data); $percentage = round($topics['count'] / $total * 100, 2); } $update = array('conf_value' => serialize($rules)); $data = array(':conf_name' => 'o_archive_rules'); $db->update('config', $update, 'conf_name=:conf_name', $data); generate_config_cache(); $redirect_lang = $panther_config['o_archiving'] == '1' ? sprintf($lang_admin_archive['Archive rules updated'], $topics['count'], $total, $percentage . '%') : $lang_admin_archive['Updated redirect']; redirect(panther_link($panther_url['admin_archive']), $redirect_lang); } $archive_rules = $panther_config['o_archive_rules'] != '' ? unserialize($panther_config['o_archive_rules']) : array('closed' => 0, 'sticky' => 0, 'time' => 0, 'unit' => 'days', 'forums' => array(0)); $percentage = $ps->rowCount() != 0 ? round($archived / $total * 100, 2) : 0; $categories = $forums = array(); $ps = $db->run('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name FROM ' . $db->prefix . 'categories AS c INNER JOIN ' . $db->prefix . 'forums AS f ON c.id=f.cat_id WHERE f.redirect_url IS NULL ORDER BY c.disp_position, c.id, f.disp_position'); foreach ($ps as $cur_forum) { if (!isset($categories[$cur_forum['cid']])) { $categories[$cur_forum['cid']] = array('name' => $cur_forum['cat_name'], 'id' => $cur_forum['cid']); } $forums[] = array('id' => $cur_forum['fid'], 'selected' => in_array($cur_forum['fid'], $archive_rules['forums']) ? true : false, 'name' => $cur_forum['forum_name'], 'category_id' => $cur_forum['cid']); } $page_title = array($panther_config['o_board_title'], $lang_admin_common['Admin'], $lang_admin_common['Archive']); define('PANTHER_ACTIVE_PAGE', 'admin'); require PANTHER_ROOT . 'header.php'; generate_admin_menu('archive'); $tpl = load_template('admin_archive.tpl'); echo $tpl->render(array('lang_admin_common' => $lang_admin_common, 'lang_admin_archive' => $lang_admin_archive, 'form_action' => panther_link($panther_url['admin_archive']), 'csrf_token' => generate_csrf_token(PANTHER_ADMIN_DIR . '/archive.php'), 'archive_lang' => $panther_config['o_archiving'] == '1' ? $lang_admin_archive['Archive enabled'] : $lang_admin_archive['Archive disabled'], 'admin_options' => panther_link($panther_url['admin_options']), 'archived' => $archived, 'percentage' => $percentage, 'archive_rules' => $archive_rules, 'lang_common' => $lang_common, 'categories' => $categories, 'forums' => $forums)); require PANTHER_ROOT . 'footer.php';
confirm_referrer('admin_permissions.php'); $form = array_map('intval', $_POST['form']); while (list($key, $input) = @each($form)) { // Only update values that have changed if (array_key_exists('p_' . $key, $pun_config) && $pun_config['p_' . $key] != $input) { $db->query('UPDATE ' . $db->prefix . 'config SET conf_value=' . $input . ' WHERE conf_name=\'p_' . $db->escape($key) . '\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error()); } } // Regenerate the config cache require_once PUN_ROOT . 'include/cache.php'; generate_config_cache(); redirect('admin_permissions.php', 'Permissions updated. Redirecting …'); } $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Permissions'; require PUN_ROOT . 'header.php'; generate_admin_menu('permissions'); ?> <div class="blockform"> <h2><span>Permissions</span></h2> <div class="box"> <form method="post" action="admin_permissions.php"> <p class="submittop"><input type="submit" name="save" value="Save changes" /></p> <div class="inform"> <input type="hidden" name="form_sent" value="1" /> <fieldset> <legend>Posting</legend> <div class="infldset"> <table class="aligntop" cellspacing="0"> <tr> <th scope="row">BBCode</th> <td>
} else { if (isset($_POST['remove'])) { confirm_referrer('admin_ranks.php'); $id = intval(key($_POST['remove'])); $db->query('DELETE FROM ' . $db->prefix . 'ranks WHERE id=' . $id) or error('Unable to delete rank', __FILE__, __LINE__, $db->error()); // Regenerate the ranks cache require_once PUN_ROOT . 'include/cache.php'; generate_ranks_cache(); redirect('admin_ranks.php', 'Rank removed. Redirecting …'); } } } $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Ranks'; $focus_element = array('ranks', 'new_rank'); require PUN_ROOT . 'header.php'; generate_admin_menu('ranks'); ?> <div class="blockform"> <h2><span>Ranks</span></h2> <div class="box"> <form id="ranks" method="post" action="admin_ranks.php?action=foo"> <div class="inform"> <fieldset> <legend>Add rank</legend> <div class="infldset"> <p>Enter a rank and the minimum number of posts that a user has to have to aquire the rank. Different ranks cannot have the same value for minimum posts. If a title is set for a user, the title will be displayed instead of any rank. <strong>User ranks must be enabled in <a href="admin_options.php#ranks">Options</a> for this to have any effect.</strong></p> <table cellspacing="0"> <thead> <tr> <th class="tcl" scope="col">Rank title</th> <th class="tc2" scope="col">Minimum posts</th>
message($lang_common['Bad request']); } } } $ps = $db->select('announcements', 'COUNT(id)'); $total = $ps->fetchColumn(); $num_pages = ceil($total / $panther_config['o_disp_topics_default']); if ($page > $num_pages) { $page = 1; } $start_from = intval($panther_config['o_disp_topics_default']) * ($page - 1); $data = array(':start' => $start_from, ':limit' => $panther_config['o_disp_topics_default']); $page_title = array($panther_config['o_board_title'], $lang_admin_common['Admin'], $lang_admin_common['Announcements']); define('PANTHER_ACTIVE_PAGE', 'admin'); require PANTHER_ROOT . 'header.php'; generate_admin_menu('announcements'); if ($action == 'add' || $action == 'edit' && $id > 0) { if ($action == 'edit') { $data = array(':id' => $id); $ps = $db->select('announcements', 'message, forum_id, subject', $data, 'id=:id'); if (!$ps->rowCount()) { message($lang_common['Bad request']); } $cur_announcement = $ps->fetch(); } else { $cur_announcement = array('forum_id' => 0, 'subject' => '', 'message' => ''); } $id_list = explode(',', $cur_announcement['forum_id']); // Display all the categories and forums $categories = $forums = array(); $ps = $db->run('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name FROM ' . $db->prefix . 'categories AS c INNER JOIN ' . $db->prefix . 'forums AS f ON c.id=f.cat_id WHERE f.redirect_url IS NULL ORDER BY c.disp_position, c.id, f.disp_position');
$message = trim($_POST['global_message']); if (empty($message)) { message('You didn\'t enter a message'); } sendglobal($message); redirect($_SERVER['REQUEST_URI'], 'Global message sent. Redirecting …'); } elseif (isset($_POST['alert'])) { $user = encode_username($_POST['alert_username']); $message = trim($_POST['alert_message']); if (!$user || empty($message)) { message('Invalid username, or no message supplied'); } alertplayer($user, $message); redirect($_SERVER['REQUEST_URI'], pun_htmlspecialchars($result) . '. Redirecting …'); } generate_admin_menu('rscd_control'); ?> <div class="blockform"> <h2 class="block2"><span>Server Control</span></h2> <div class="box"> <form method="post" action="admin_rscd_control.php"> <div class="inform"> <?php if ($pun_user['g_id'] == PUN_ADMIN) { ?> <fieldset> <legend>Shutdown the Worlds</legend> <div class="infldset"> <table class="aligntop" cellspacing="0"> <tr> <th scope="row"><input type="submit" name="update" value="Update" /></th>
define('PANTHER_ACTIVE_PAGE', 'admin'); require PANTHER_ROOT . 'header.php'; generate_admin_menu('extensions'); $tpl = load_template('uninstall_extension.tpl'); echo $tpl->render(array('extension' => $extension, 'lang_admin_extensions' => $lang_admin_extensions, 'lang_common' => $lang_common, 'form_action' => panther_link($panther_url['uninstall_extension'], array($file)), 'csrf_token' => generate_csrf_token(PANTHER_ADMIN_DIR . '/addons.php'))); } else { $extension_files = array(); $files = array_diff(scandir(PANTHER_ROOT . PANTHER_ADMIN_DIR . '/extensions'), array('.', '..')); foreach ($files as $entry) { if (substr($entry, -4) == '.xml') { $extension_files[$entry] = array('title' => substr($entry, 0, -4), 'file' => $entry, 'install_link' => panther_link($panther_url['install_extension'], array(substr($entry, 0, -4)))); } } $extensions = array(); $ps = $db->select('extensions', 'id, title, enabled'); foreach ($ps as $cur_extension) { if (file_exists(PANTHER_ROOT . PANTHER_ADMIN_DIR . '/extensions/' . $cur_extension['id'] . '.xml')) { unset($extension_files[$cur_extension['id'] . '.xml']); } $extensions[] = array('id' => $cur_extension['id'], 'title' => $cur_extension['title'], 'enabled' => $cur_extension['enabled'], 'enable_link' => $cur_extension['enabled'] ? panther_link($panther_url['disable_extension'], array($cur_extension['id'])) : panther_link($panther_url['enable_extension'], array($cur_extension['id'])), 'uninstall_link' => panther_link($panther_url['uninstall_extension'], array($cur_extension['id']))); } $page_title = array($panther_config['o_board_title'], $lang_admin_common['Admin'], $lang_admin_common['Extensions']); define('PANTHER_ACTIVE_PAGE', 'admin'); require PANTHER_ROOT . 'header.php'; generate_admin_menu('extensions'); $tpl = load_template('admin_extensions.tpl'); echo $tpl->render(array('lang_admin_common' => $lang_admin_common, 'lang_admin_extensions' => $lang_admin_extensions, 'form_action' => panther_link($panther_url['admin_addons']), 'csrf_token' => generate_csrf_token(PANTHER_ADMIN_DIR . '/addons.php'), 'extensions' => $extensions, 'extension_files' => $extension_files, 'errors' => $errors)); } } } require PANTHER_ROOT . 'footer.php';
$ps = $db->select('topics', 'num_replies', $topic_data, 'id=:id'); $num_replies = $ps->fetchColumn(); $update = array('num_replies' => $num_replies + 1, 'last_post' => $posted, 'last_post_id' => $last_id, 'last_poster' => $poster); $db->update('topics', $update, 'id=:id', $topic_data); update_search_index('post', $post_id, $post['message']); update_forum($post['forum_id']); redirect(panther_link($panther_url['admin_deleted']), $lang_admin_deleted['Post approved redirect']); } } else { if ($is_topic_post) { permanently_delete_topic($post['topic_id']); redirect(panther_link($panther_url['admin_deleted']), $lang_admin_deleted['Topic deleted redirect']); } else { permanently_delete_post($post_id); redirect(panther_link($panther_url['admin_deleted']), $lang_admin_deleted['Post deleted redirect']); } } } $ps = $db->run('SELECT t.id AS topic_id, t.forum_id, p.poster, p.poster_id, p.posted, p.message, p.id AS pid, p.hide_smilies, t.subject, f.forum_name FROM ' . $db->prefix . 'posts AS p LEFT JOIN ' . $db->prefix . 'topics AS t ON p.topic_id=t.id LEFT JOIN ' . $db->prefix . 'forums AS f ON t.forum_id=f.id WHERE p.deleted=1 OR t.deleted=1 ORDER BY p.posted DESC'); require PANTHER_ROOT . 'include/parser.php'; $page_title = array($panther_config['o_board_title'], $lang_admin_common['Admin'], $lang_admin_common['Deleted']); define('PANTHER_ACTIVE_PAGE', 'admin'); require PANTHER_ROOT . 'header.php'; generate_admin_menu('deleted'); $posts = array(); foreach ($ps as $cur_post) { $posts[] = array('id' => $cur_post['pid'], 'posted' => format_time($cur_post['posted']), 'message' => $parser->parse_message($cur_post['message'], $cur_post['hide_smilies']), 'poster' => $cur_post['poster'] != '' ? array('href' => panther_link($panther_url['profile'], array($cur_post['poster_id'], url_friendly($cur_post['poster']))), 'poster' => $cur_post['poster']) : '', 'forum' => $cur_post['forum_name'] != '' ? array('href' => panther_link($panther_url['forum'], array($cur_post['forum_id'], url_friendly($cur_post['forum_name']))), 'forum_name' => $cur_post['forum_name']) : '', 'topic' => $cur_post['subject'] != '' ? array('href' => panther_link($panther_url['topic'], array($cur_post['topic_id'], url_friendly($cur_post['subject']))), 'subject' => $cur_post['subject']) : '', 'post' => $cur_post['pid'] != '' ? array('href' => panther_link($panther_url['post'], array($cur_post['pid'])), 'post' => sprintf($lang_admin_deleted['Post ID'], $cur_post['pid'])) : ''); } $tpl = load_template('admin_deleted.tpl'); echo $tpl->render(array('lang_admin_common' => $lang_admin_common, 'lang_admin_deleted' => $lang_admin_deleted, 'lang_common' => $lang_common, 'form_action' => panther_link($panther_url['admin_deleted']), 'csrf_token' => generate_csrf_token(PANTHER_ADMIN_DIR . '/deleted.php'), 'posts' => $posts)); require PANTHER_ROOT . 'footer.php';
<div class="block"> <h2><span>Example plugin</span></h2> <div class="box"> <div class="inbox"> <p>You said "<?php echo pun_htmlspecialchars($_POST['text_to_show']); ?> ". Great stuff.</p> <p><a href="javascript: history.go(-1)">Go back</a></p> </div> </div> </div> <?php } else { // Display the admin navigation menu generate_admin_menu($plugin); ?> <div id="exampleplugin" class="blockform"> <h2><span>Example plugin</span></h2> <div class="box"> <div class="inbox"> <p>This plugin doesn't do anything useful. Hence the name "Example".</p> <p>This would be a good spot to talk a little about your plugin. Describe what it does and how it should be used. Be brief, but informative.</p> </div> </div> <h2 class="block2"><span>An example form</span></h2> <div class="box"> <form id="example" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>
$zapped = $db->result($result); if ($zapped == '') { $db->query('UPDATE ' . $db->prefix . 'reports SET zapped=' . time() . ', zapped_by=' . $pun_user['id'] . ' WHERE id=' . $zap_id) or error('Unable to zap report', __FILE__, __LINE__, $db->error()); } // Delete old reports (which cannot be viewed anyway) $result = $db->query('SELECT zapped FROM ' . $db->prefix . 'reports WHERE zapped IS NOT NULL ORDER BY zapped DESC LIMIT 10,1') or error('Unable to fetch read reports to delete', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result) > 0) { $zapped_threshold = $db->result($result); $db->query('DELETE FROM ' . $db->prefix . 'reports WHERE zapped <= ' . $zapped_threshold) or error('Unable to delete old read reports', __FILE__, __LINE__, $db->error()); } redirect('admin_reports.php', $lang_admin_reports['Report zapped redirect']); } $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Reports']); define('PUN_ACTIVE_PAGE', 'admin'); require PUN_ROOT . 'header.php'; generate_admin_menu('reports'); ?> <div class="blockform"> <h2><span><?php echo $lang_admin_reports['New reports head']; ?> </span></h2> <div class="box"> <form method="post" action="admin_reports.php?action=zap"> <?php $result = $db->query('SELECT r.id, r.topic_id, r.forum_id, r.reported_by, r.created, r.message, p.id AS pid, t.subject, f.forum_name, u.username AS reporter FROM ' . $db->prefix . 'reports AS r LEFT JOIN ' . $db->prefix . 'posts AS p ON r.post_id=p.id LEFT JOIN ' . $db->prefix . 'topics AS t ON r.topic_id=t.id LEFT JOIN ' . $db->prefix . 'forums AS f ON r.forum_id=f.id LEFT JOIN ' . $db->prefix . 'users AS u ON r.reported_by=u.id WHERE r.zapped IS NULL ORDER BY created DESC') or error('Unable to fetch report list', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) { while ($cur_report = $db->fetch_assoc($result)) { $reporter = $cur_report['reporter'] != '' ? '<a href="profile.php?id=' . $cur_report['reported_by'] . '">' . pun_htmlspecialchars($cur_report['reporter']) . '</a>' : $lang_admin_reports['Deleted user']; $forum = $cur_report['forum_name'] != '' ? '<span><a href="viewforum.php?id=' . $cur_report['forum_id'] . '">' . pun_htmlspecialchars($cur_report['forum_name']) . '</a></span>' : '<span>' . $lang_admin_reports['Deleted'] . '</span>'; $topic = $cur_report['subject'] != '' ? '<span>» <a href="viewtopic.php?id=' . $cur_report['topic_id'] . '">' . pun_htmlspecialchars($cur_report['subject']) . '</a></span>' : '<span>» ' . $lang_admin_reports['Deleted'] . '</span>';
$ban_id = intval($_GET['del_ban']); if ($ban_id < 1) { message($lang_common['Bad request']); } $db->query('DELETE FROM ' . $db->prefix . 'bans WHERE id=' . $ban_id) or error('Unable to delete ban', __FILE__, __LINE__, $db->error()); // Regenerate the bans cache require_once PUN_ROOT . 'include/cache.php'; generate_bans_cache(); redirect('admin_bans.php', 'Ban removed. Redirecting …'); } } } $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Bans'; $focus_element = array('bans', 'new_ban_user'); require PUN_ROOT . 'header.php'; generate_admin_menu('bans'); ?> <div class="blockform"> <h2><span>New ban</span></h2> <div class="box"> <form id="bans" method="post" action="admin_bans.php?action=more"> <div class="inform"> <fieldset> <legend>Add ban</legend> <div class="infldset"> <table class="aligntop" cellspacing="0"> <tr> <th scope="row">Username<div><input type="submit" name="add_ban" value=" Add " tabindex="2" /></div></th> <td> <input type="text" name="new_ban_user" size="25" maxlength="25" tabindex="1" /> <span>The username to ban (case insensitive). The next page will let you enter a custom IP and e-mail. If you just want to ban a specific IP/IP-range or e-mail just leave it blank.</span>
$db->update('multi_moderation', $update, 'id=:id', $data); redirect(panther_link($panther_url['admin_moderate']), $lang_admin_moderate['edit redirect']); } elseif ($action == 'delete' && $id > '0') { $data = array(':id' => $id); $rows = $db->delete('multi_moderation', 'id=:id', $data); if (!$rows) { message($lang_common['Bad request']); } // If there are no rows returned we've either attempted to URL hack or something is wrong with the database (which will be displayed) redirect(panther_link($panther_url['admin_moderate']), $lang_admin_moderate['delete redirect']); } } $page_title = array($panther_config['o_board_title'], $lang_admin_common['Admin'], $lang_admin_common['Moderate']); define('PANTHER_ACTIVE_PAGE', 'admin'); require PANTHER_ROOT . 'header.php'; generate_admin_menu('moderate'); if ($action == 'add' || $action == 'edit') { if ($action == 'edit') { $data = array(':id' => $id); $ps = $db->select('multi_moderation', 'close, stick, archive, move, leave_redirect, reply_message, title, add_start, add_end, send_email, increment_posts', $data, 'id=:id'); $cur_action = $ps->fetch(); } else { $cur_action = array('close' => 2, 'stick' => 2, 'archive' => 2, 'move' => 0, 'leave_redirect' => 0, 'reply_message' => '', 'title' => '', 'add_start' => '', 'add_end' => '', 'send_email' => 1, 'increment_posts' => 1); } // Display all the categories and forums $categories = $forums = array(); $ps = $db->run('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name FROM ' . $db->prefix . 'categories AS c INNER JOIN ' . $db->prefix . 'forums AS f ON c.id = f.cat_id WHERE f.redirect_url IS NULL ORDER BY c.disp_position, c.id, f.disp_position'); foreach ($ps as $cur_forum) { if (!isset($categories[$cur_forum['cid']])) { $categories[$cur_forum['cid']] = array('name' => $cur_forum['cat_name'], 'id' => $cur_forum['cid']); }
} else { $value = 'NULL'; } $db->query('UPDATE ' . $db->prefix . 'config SET conf_value=' . $value . ' WHERE conf_name=\'file_' . $db->escape($key) . '\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error()); } } // Regenerate the config cache include_once PUN_ROOT . 'include/cache.php'; generate_config_cache(); redirect('admin_files.php', 'Options updated. Redirecting …'); } else { $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Files'; $focus_element = array('files', 'form[upload_path]'); require_once PUN_ROOT . 'header.php'; // Display the admin navigation menu generate_admin_menu('files'); if (isset($_POST['show_errors'])) { //confirm_referrer('admin_files.php'); $log = show_problems(); echo '<div id="imageupload" class="blockform"> <h2><span>Отчет об ошибках</span></h2> <div class="box"> <div class="inform"> <div class="infldset"> <table class="aligntop" cellspacing="0"> <tr> <td>'; echo implode('<br/>', $log); echo '</td> </tr> </table>
} $db->query('UPDATE ' . $db->prefix . 'censoring SET search_for=\'' . $db->escape($search_for) . '\', replace_with=\'' . $db->escape($replace_with) . '\' WHERE id=' . $id) or error('Unable to update censor word', __FILE__, __LINE__, $db->error()); redirect('admin_censoring.php', 'Censor word updated. Redirecting …'); } else { if (isset($_POST['remove'])) { confirm_referrer('admin_censoring.php'); $id = intval(key($_POST['remove'])); $db->query('DELETE FROM ' . $db->prefix . 'censoring WHERE id=' . $id) or error('Unable to delete censor word', __FILE__, __LINE__, $db->error()); redirect('admin_censoring.php', 'Censor word removed. Redirecting …'); } } } $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Censoring'; $focus_element = array('censoring', 'new_search_for'); require PUN_ROOT . 'header.php'; generate_admin_menu('censoring'); ?> <div class="blockform"> <h2><span>Censoring</span></h2> <div class="box"> <form id="censoring" method="post" action="admin_censoring.php?action=foo"> <div class="inform"> <fieldset> <legend>Add word</legend> <div class="infldset"> <p>Enter a word that you want to censor and the replacement text for this word. Wildcards are accepted (i.e. *some* would match somewhere and lonesome). Censor words also affect usernames. New users will not be able to register with usernames containing any censored words. The search is case insensitive. <strong>Censor words must be enabled in <a href="admin_options.php#censoring">Options</a> for this to have any effect.</strong></p> <table cellspacing="0"> <thead> <tr> <th class="tcl" scope="col">Censored word</th> <th class="tc2" scope="col">Replacement text</th>
</fieldset> </div> <p><input type="submit" name="prune_comply" value="Prune" /><a href="javascript:history.go(-1)">Go back</a></p> </form> </div> </div> <div class="clearer"></div> </div> <?php require PUN_ROOT . 'footer.php'; } else { $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / Prune'; $required_fields = array('req_prune_days' => 'Days old'); $focus_element = array('prune', 'req_prune_days'); require PUN_ROOT . 'header.php'; generate_admin_menu('prune'); ?> <div class="blockform"> <h2><span>Prune</span></h2> <div class="box"> <form id="prune" method="post" action="admin_prune.php?action=foo" onsubmit="return process_form(this)"> <div class="inform"> <input type="hidden" name="form_sent" value="1" /> <fieldset> <legend>Prune old posts</legend> <div class="infldset"> <table class="aligntop" cellspacing="0"> <tr> <th scope="row">Days old</th> <td> <input type="text" name="req_prune_days" size="3" maxlength="3" tabindex="1" />
</a></p> </form> </div> </div> <div class="clearer"></div> </div> <?php require PUN_ROOT . 'footer.php'; } } } } $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang->t('Admin'), $lang->t('User groups')); define('PUN_ACTIVE_PAGE', 'admin'); require PUN_ROOT . 'header.php'; generate_admin_menu('groups'); ?> <div class="blockform"> <h2><span><?php echo $lang->t('Add groups head'); ?> </span></h2> <div class="box"> <form id="groups" method="post" action="admin_groups.php"> <div class="inform"> <fieldset> <legend><?php echo $lang->t('Add group subhead'); ?> </legend> <div class="infldset">
<?php // Tell header.php to use the admin template define('PUN_ADMIN_CONSOLE', 1); define('PUN_ROOT', './'); require PUN_ROOT . 'include/common.php'; require PUN_ROOT . 'include/common_admin.php'; if ($pun_user['g_id'] != PUN_ADMIN) { message($lang_common['No permission']); } $page_title = pun_htmlspecialchars($pun_config['o_board_title']) . ' / Admin / RSCD Traps'; require PUN_ROOT . 'header.php'; generate_admin_menu('rscd_traps'); ?> <div class="blockform"> <h2><span>Trapped Characters</span></h2> <div class="box"> <div class="inbox"> <table cellspacing="0"> <thead> <tr> <th class="tc3" scope="col">Username</th> <th class="tc3" scope="col">Owner</th> <th class="tc3" scope="col">Status</th> <th class="tc3" scope="col">Time Caught</th> <th class="tc3" scope="col">IP Caught</th> <th class="tcr" scope="col">Details</th> </tr> </thead> <tbody> <?php
} $tpl_main = str_replace('<!-- forum_admod -->', !empty($admod_links) ? '<ul id="brd-admod">' . implode(' ', $admod_links) . '</ul>' : '', $tpl_main); // END SUBST - <!-- forum_admod --> // MAIN SECTION INTERFACE ELEMENT SUBSTITUTION $main_elements = array(); // Top breadcrumbs $main_elements['<!-- forum_crumbs_top -->'] = FORUM_PAGE != 'index' ? '<div id="brd-crumbs-top" class="crumbs">' . "\n\t" . '<p>' . generate_crumbs(false) . '</p>' . "\n" . '</div>' : ''; // Bottom breadcrumbs $main_elements['<!-- forum_crumbs_end -->'] = FORUM_PAGE != 'index' ? '<div id="brd-crumbs-end" class="crumbs">' . "\n\t" . '<p>' . generate_crumbs(false) . '</p>' . "\n" . '</div>' : ''; // Main section heading $main_elements['<!-- forum_main_title -->'] = '<h1 class="main-title">' . (isset($forum_page['main_title']) ? $forum_page['main_title'] : forum_htmlencode(is_array($last_crumb = end($forum_page['crumbs'])) ? reset($last_crumb) : $last_crumb)) . (isset($forum_page['main_head_pages']) ? ' <small>' . $forum_page['main_head_pages'] . '</small>' : '') . '</h1>' . "\n"; // Top pagination and post links $main_elements['<!-- forum_main_pagepost_top -->'] = !empty($forum_page['page_post']) ? '<div id="brd-pagepost-top" class="main-pagepost gen-content">' . "\n\t" . implode("\n\t", $forum_page['page_post']) . "\n" . '</div>' : ''; // Bottom pagination and postlink $main_elements['<!-- forum_main_pagepost_end -->'] = !empty($forum_page['page_post']) ? '<div id="brd-pagepost-end" class="main-pagepost gen-content">' . "\n\t" . implode("\n\t", $forum_page['page_post']) . "\n" . '</div>' : ''; // Main section menu e.g. profile menu $main_elements['<!-- forum_main_menu -->'] = !empty($forum_page['main_menu']) ? '<div class="main-menu gen-content">' . "\n\t" . '<ul>' . "\n\t\t" . implode("\n\t\t", $forum_page['main_menu']) . "\n\t" . '</ul>' . "\n" . '</div>' : ''; // Main section menu e.g. profile menu if (substr(FORUM_PAGE, 0, 5) == 'admin' && FORUM_PAGE_TYPE != 'paged') { $main_elements['<!-- forum_admin_menu -->'] = '<div class="admin-menu gen-content">' . "\n\t" . '<ul>' . "\n\t\t" . generate_admin_menu(false) . "\n\t" . '</ul>' . "\n" . '</div>'; $forum_page['admin_sub'] = generate_admin_menu(true); $main_elements['<!-- forum_admin_submenu -->'] = $forum_page['admin_sub'] != '' ? '<div class="admin-submenu gen-content">' . "\n\t" . '<ul>' . "\n\t\t" . $forum_page['admin_sub'] . "\n\t" . '</ul>' . "\n" . '</div>' : ''; } ($hook = get_hook('hd_main_elements')) ? eval($hook) : null; $tpl_main = str_replace(array_keys($main_elements), array_values($main_elements), $tpl_main); unset($main_elements); // END MAIN SECTION INTERFACE ELEMENT SUBSTITUTION ($hook = get_hook('hd_end')) ? eval($hook) : null; if (!defined('FORUM_HEADER')) { define('FORUM_HEADER', 1); }