[6] | 1 | <?php |
---|
| 2 | |
---|
| 3 | /** |
---|
| 4 | * Copyright (C) 2008-2011 FluxBB |
---|
| 5 | * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB |
---|
| 6 | * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher |
---|
| 7 | */ |
---|
| 8 | |
---|
| 9 | // Tell header.php to use the admin template |
---|
| 10 | define('PUN_ADMIN_CONSOLE', 1); |
---|
| 11 | |
---|
| 12 | define('PUN_ROOT', dirname(__FILE__).'/'); |
---|
| 13 | require PUN_ROOT.'include/common.php'; |
---|
| 14 | require PUN_ROOT.'include/common_admin.php'; |
---|
| 15 | |
---|
| 16 | |
---|
| 17 | if ($pun_user['g_id'] != PUN_ADMIN) |
---|
| 18 | message($lang_common['No permission']); |
---|
| 19 | |
---|
| 20 | // Load the admin_ranks.php language file |
---|
| 21 | require PUN_ROOT.'lang/'.$admin_language.'/admin_ranks.php'; |
---|
| 22 | |
---|
| 23 | // Add a rank |
---|
| 24 | if (isset($_POST['add_rank'])) |
---|
| 25 | { |
---|
| 26 | confirm_referrer('admin_ranks.php'); |
---|
| 27 | |
---|
| 28 | $rank = pun_trim($_POST['new_rank']); |
---|
| 29 | $min_posts = trim($_POST['new_min_posts']); |
---|
| 30 | |
---|
| 31 | if ($rank == '') |
---|
| 32 | message($lang_admin_ranks['Must enter title message']); |
---|
| 33 | |
---|
| 34 | if ($min_posts == '' || preg_match('%[^0-9]%', $min_posts)) |
---|
| 35 | message($lang_admin_ranks['Must be integer message']); |
---|
| 36 | |
---|
| 37 | // Make sure there isn't already a rank with the same min_posts value |
---|
| 38 | $result = $db->query('SELECT 1 FROM '.$db->prefix.'ranks WHERE min_posts='.$min_posts) or error('Unable to fetch rank info', __FILE__, __LINE__, $db->error()); |
---|
| 39 | if ($db->num_rows($result)) |
---|
| 40 | message(sprintf($lang_admin_ranks['Dupe min posts message'], $min_posts)); |
---|
| 41 | |
---|
| 42 | $db->query('INSERT INTO '.$db->prefix.'ranks (rank, min_posts) VALUES(\''.$db->escape($rank).'\', '.$min_posts.')') or error('Unable to add rank', __FILE__, __LINE__, $db->error()); |
---|
| 43 | |
---|
| 44 | // Regenerate the ranks cache |
---|
| 45 | if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) |
---|
| 46 | require PUN_ROOT.'include/cache.php'; |
---|
| 47 | |
---|
| 48 | generate_ranks_cache(); |
---|
| 49 | |
---|
| 50 | redirect('admin_ranks.php', $lang_admin_ranks['Rank added redirect']); |
---|
| 51 | } |
---|
| 52 | |
---|
| 53 | |
---|
| 54 | // Update a rank |
---|
| 55 | else if (isset($_POST['update'])) |
---|
| 56 | { |
---|
| 57 | confirm_referrer('admin_ranks.php'); |
---|
| 58 | |
---|
| 59 | $id = intval(key($_POST['update'])); |
---|
| 60 | |
---|
| 61 | $rank = pun_trim($_POST['rank'][$id]); |
---|
| 62 | $min_posts = trim($_POST['min_posts'][$id]); |
---|
| 63 | |
---|
| 64 | if ($rank == '') |
---|
| 65 | message($lang_admin_ranks['Must enter title message']); |
---|
| 66 | |
---|
| 67 | if ($min_posts == '' || preg_match('%[^0-9]%', $min_posts)) |
---|
| 68 | message($lang_admin_ranks['Must be integer message']); |
---|
| 69 | |
---|
| 70 | // Make sure there isn't already a rank with the same min_posts value |
---|
| 71 | $result = $db->query('SELECT 1 FROM '.$db->prefix.'ranks WHERE id!='.$id.' AND min_posts='.$min_posts) or error('Unable to fetch rank info', __FILE__, __LINE__, $db->error()); |
---|
| 72 | if ($db->num_rows($result)) |
---|
| 73 | message(sprintf($lang_admin_ranks['Dupe min posts message'], $min_posts)); |
---|
| 74 | |
---|
| 75 | $db->query('UPDATE '.$db->prefix.'ranks SET rank=\''.$db->escape($rank).'\', min_posts='.$min_posts.' WHERE id='.$id) or error('Unable to update rank', __FILE__, __LINE__, $db->error()); |
---|
| 76 | |
---|
| 77 | // Regenerate the ranks cache |
---|
| 78 | if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) |
---|
| 79 | require PUN_ROOT.'include/cache.php'; |
---|
| 80 | |
---|
| 81 | generate_ranks_cache(); |
---|
| 82 | |
---|
| 83 | redirect('admin_ranks.php', $lang_admin_ranks['Rank updated redirect']); |
---|
| 84 | } |
---|
| 85 | |
---|
| 86 | |
---|
| 87 | // Remove a rank |
---|
| 88 | else if (isset($_POST['remove'])) |
---|
| 89 | { |
---|
| 90 | confirm_referrer('admin_ranks.php'); |
---|
| 91 | |
---|
| 92 | $id = intval(key($_POST['remove'])); |
---|
| 93 | |
---|
| 94 | $db->query('DELETE FROM '.$db->prefix.'ranks WHERE id='.$id) or error('Unable to delete rank', __FILE__, __LINE__, $db->error()); |
---|
| 95 | |
---|
| 96 | // Regenerate the ranks cache |
---|
| 97 | if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) |
---|
| 98 | require PUN_ROOT.'include/cache.php'; |
---|
| 99 | |
---|
| 100 | generate_ranks_cache(); |
---|
| 101 | |
---|
| 102 | redirect('admin_ranks.php', $lang_admin_ranks['Rank removed redirect']); |
---|
| 103 | } |
---|
| 104 | |
---|
| 105 | $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Ranks']); |
---|
| 106 | $focus_element = array('ranks', 'new_rank'); |
---|
| 107 | define('PUN_ACTIVE_PAGE', 'admin'); |
---|
| 108 | require PUN_ROOT.'header.php'; |
---|
| 109 | |
---|
| 110 | generate_admin_menu('ranks'); |
---|
| 111 | |
---|
| 112 | ?> |
---|
| 113 | <div class="blockform"> |
---|
| 114 | <h2><span><?php echo $lang_admin_ranks['Ranks head'] ?></span></h2> |
---|
| 115 | <div class="box"> |
---|
| 116 | <form id="ranks" method="post" action="admin_ranks.php"> |
---|
| 117 | <div class="inform"> |
---|
| 118 | <fieldset> |
---|
| 119 | <legend><?php echo $lang_admin_ranks['Add rank subhead'] ?></legend> |
---|
| 120 | <div class="infldset"> |
---|
| 121 | <p><?php echo $lang_admin_ranks['Add rank info'].' '.($pun_config['o_ranks'] == '1' ? sprintf($lang_admin_ranks['Ranks enabled'], '<a href="admin_options.php#ranks">'.$lang_admin_common['Options'].'</a>') : sprintf($lang_admin_ranks['Ranks disabled'], '<a href="admin_options.php#ranks">'.$lang_admin_common['Options'].'</a>')) ?></p> |
---|
| 122 | <table cellspacing="0"> |
---|
| 123 | <thead> |
---|
| 124 | <tr> |
---|
| 125 | <th class="tcl" scope="col"><?php echo $lang_admin_ranks['Rank title label'] ?></th> |
---|
| 126 | <th class="tc2" scope="col"><?php echo $lang_admin_ranks['Minimum posts label'] ?></th> |
---|
| 127 | <th class="hidehead" scope="col"><?php echo $lang_admin_ranks['Actions label'] ?></th> |
---|
| 128 | </tr> |
---|
| 129 | </thead> |
---|
| 130 | <tbody> |
---|
| 131 | <tr> |
---|
| 132 | <td class="tcl"><input type="text" name="new_rank" size="24" maxlength="50" tabindex="1" /></td> |
---|
| 133 | <td class="tc2"><input type="text" name="new_min_posts" size="7" maxlength="7" tabindex="2" /></td> |
---|
| 134 | <td><input type="submit" name="add_rank" value="<?php echo $lang_admin_common['Add'] ?>" tabindex="3" /></td> |
---|
| 135 | </tr> |
---|
| 136 | </tbody> |
---|
| 137 | </table> |
---|
| 138 | </div> |
---|
| 139 | </fieldset> |
---|
| 140 | </div> |
---|
| 141 | <div class="inform"> |
---|
| 142 | <fieldset> |
---|
| 143 | <legend><?php echo $lang_admin_ranks['Edit remove subhead'] ?></legend> |
---|
| 144 | <div class="infldset"> |
---|
| 145 | <?php |
---|
| 146 | |
---|
| 147 | $result = $db->query('SELECT id, rank, min_posts FROM '.$db->prefix.'ranks ORDER BY min_posts') or error('Unable to fetch rank list', __FILE__, __LINE__, $db->error()); |
---|
| 148 | if ($db->num_rows($result)) |
---|
| 149 | { |
---|
| 150 | |
---|
| 151 | ?> |
---|
| 152 | <table cellspacing="0"> |
---|
| 153 | <thead> |
---|
| 154 | <tr> |
---|
| 155 | <th class="tcl" scope="col"><?php echo $lang_admin_ranks['Rank title label'] ?></th> |
---|
| 156 | <th class="tc2" scope="col"><?php echo $lang_admin_ranks['Minimum posts label'] ?></th> |
---|
| 157 | <th class="hidehead" scope="col"><?php echo $lang_admin_ranks['Actions label'] ?></th> |
---|
| 158 | </tr> |
---|
| 159 | </thead> |
---|
| 160 | <tbody> |
---|
| 161 | <?php |
---|
| 162 | |
---|
| 163 | while ($cur_rank = $db->fetch_assoc($result)) |
---|
| 164 | echo "\t\t\t\t\t\t\t\t".'<tr><td class="tcl"><input type="text" name="rank['.$cur_rank['id'].']" value="'.pun_htmlspecialchars($cur_rank['rank']).'" size="24" maxlength="50" /></td><td class="tc2"><input type="text" name="min_posts['.$cur_rank['id'].']" value="'.$cur_rank['min_posts'].'" size="7" maxlength="7" /></td><td><input type="submit" name="update['.$cur_rank['id'].']" value="'.$lang_admin_common['Update'].'" /> <input type="submit" name="remove['.$cur_rank['id'].']" value="'.$lang_admin_common['Remove'].'" /></td></tr>'."\n"; |
---|
| 165 | |
---|
| 166 | ?> |
---|
| 167 | </tbody> |
---|
| 168 | </table> |
---|
| 169 | <?php |
---|
| 170 | |
---|
| 171 | } |
---|
| 172 | else |
---|
| 173 | echo "\t\t\t\t\t\t\t".'<p>'.$lang_admin_ranks['No ranks in list'].'</p>'."\n"; |
---|
| 174 | |
---|
| 175 | ?> |
---|
| 176 | </div> |
---|
| 177 | </fieldset> |
---|
| 178 | </div> |
---|
| 179 | </form> |
---|
| 180 | </div> |
---|
| 181 | </div> |
---|
| 182 | <div class="clearer"></div> |
---|
| 183 | </div> |
---|
| 184 | <?php |
---|
| 185 | |
---|
| 186 | require PUN_ROOT.'footer.php'; |
---|