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'; |
---|