1 | <?php |
---|
2 | /*********************************************************************** |
---|
3 | |
---|
4 | Copyright (C) 2002-2005 Rickard Andersson (rickard@punbb.org) |
---|
5 | |
---|
6 | This file is part of PunBB. |
---|
7 | |
---|
8 | PunBB is free software; you can redistribute it and/or modify it |
---|
9 | under the terms of the GNU General Public License as published |
---|
10 | by the Free Software Foundation; either version 2 of the License, |
---|
11 | or (at your option) any later version. |
---|
12 | |
---|
13 | PunBB is distributed in the hope that it will be useful, but |
---|
14 | WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
16 | GNU General Public License for more details. |
---|
17 | |
---|
18 | You should have received a copy of the GNU General Public License |
---|
19 | along with this program; if not, write to the Free Software |
---|
20 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
---|
21 | MA 02111-1307 USA |
---|
22 | |
---|
23 | ************************************************************************/ |
---|
24 | |
---|
25 | // Make sure no one attempts to run this script "directly" |
---|
26 | if (!defined('PUN')) |
---|
27 | exit; |
---|
28 | |
---|
29 | |
---|
30 | // |
---|
31 | // Display the admin navigation menu |
---|
32 | // |
---|
33 | function generate_admin_menu($page = '') |
---|
34 | { |
---|
35 | global $pun_config, $pun_user; |
---|
36 | |
---|
37 | $is_admin = $pun_user['g_id'] == PUN_ADMIN ? true : false; |
---|
38 | |
---|
39 | ?> |
---|
40 | <div id="adminconsole" class="block2col"> |
---|
41 | <div id="adminmenu" class="blockmenu"> |
---|
42 | <h2><span>Menu <?php echo ($is_admin) ? 'Admin' : 'Modérateur' ?></span></h2> |
---|
43 | <div class="box"> |
---|
44 | <div class="inbox"> |
---|
45 | <ul> |
---|
46 | <li<?php if ($page == 'index') echo ' class="isactive"'; ?>><a href="admin_index.php">Index</a></li> |
---|
47 | <?php if ($is_admin): ?> <li<?php if ($page == 'categories') echo ' class="isactive"'; ?>><a href="admin_categories.php">Catégories</a></li> |
---|
48 | <?php endif; ?><?php if ($is_admin): ?> <li<?php if ($page == 'forums') echo ' class="isactive"'; ?>><a href="admin_forums.php">Forums</a></li> |
---|
49 | <?php endif; ?> <li<?php if ($page == 'users') echo ' class="isactive"'; ?>><a href="admin_users.php">Utilisateurs</a></li> |
---|
50 | <?php if ($is_admin): ?> <li<?php if ($page == 'groups') echo ' class="isactive"'; ?>><a href="admin_groups.php">Groupes</a></li> |
---|
51 | <?php endif; ?><?php if ($is_admin): ?> <li<?php if ($page == 'options') echo ' class="isactive"'; ?>><a href="admin_options.php">Options</a></li> |
---|
52 | <?php endif; ?><?php if ($is_admin): ?> <li<?php if ($page == 'permissions') echo ' class="isactive"'; ?>><a href="admin_permissions.php">Permissions</a></li> |
---|
53 | <?php endif; ?> <li<?php if ($page == 'censoring') echo ' class="isactive"'; ?>><a href="admin_censoring.php">Mots censurés</a></li> |
---|
54 | <?php if ($is_admin): ?> <li<?php if ($page == 'ranks') echo ' class="isactive"'; ?>><a href="admin_ranks.php">Rangs utilisateurs</a></li> |
---|
55 | <?php endif; ?><?php if ($is_admin || $pun_config['p_mod_ban_users'] == '1'): ?> <li<?php if ($page == 'bans') echo ' class="isactive"'; ?>><a href="admin_bans.php">Bannissements</a></li> |
---|
56 | <?php endif; ?><?php if ($is_admin): ?> <li<?php if ($page == 'prune') echo ' class="isactive"'; ?>><a href="admin_prune.php">Ãlaguage</a></li> |
---|
57 | <?php endif; ?><?php if ($is_admin): ?> <li<?php if ($page == 'maintenance') echo ' class="isactive"'; ?>><a href="admin_maintenance.php">Maintenance</a></li> |
---|
58 | <?php endif; ?> <li<?php if ($page == 'reports') echo ' class="isactive"'; ?>><a href="admin_reports.php">Signalements</a></li> |
---|
59 | </ul> |
---|
60 | </div> |
---|
61 | </div> |
---|
62 | <?php |
---|
63 | |
---|
64 | // See if there are any plugins |
---|
65 | $plugins = array(); |
---|
66 | $d = dir(PUN_ROOT.'plugins'); |
---|
67 | while (($entry = $d->read()) !== false) |
---|
68 | { |
---|
69 | $prefix = substr($entry, 0, strpos($entry, '_')); |
---|
70 | $suffix = substr($entry, strlen($entry) - 4); |
---|
71 | |
---|
72 | if ($suffix == '.php' && ((!$is_admin && $prefix == 'AMP') || ($is_admin && ($prefix == 'AP' || $prefix == 'AMP')))) |
---|
73 | $plugins[] = array(substr(substr($entry, strpos($entry, '_') + 1), 0, -4), $entry); |
---|
74 | } |
---|
75 | $d->close(); |
---|
76 | |
---|
77 | // Did we find any plugins? |
---|
78 | if (!empty($plugins)) |
---|
79 | { |
---|
80 | |
---|
81 | ?> |
---|
82 | <h2 class="block2"><span>Plugins</span></h2> |
---|
83 | <div class="box"> |
---|
84 | <div class="inbox"> |
---|
85 | <ul> |
---|
86 | <?php |
---|
87 | |
---|
88 | while (list(, $cur_plugin) = @each($plugins)) |
---|
89 | echo "\t\t\t\t\t".'<li'.(($page == $cur_plugin[1]) ? ' class="isactive"' : '').'><a href="admin_loader.php?plugin='.$cur_plugin[1].'">'.str_replace('_', ' ', $cur_plugin[0]).'</a></li>'."\n"; |
---|
90 | |
---|
91 | ?> |
---|
92 | </ul> |
---|
93 | </div> |
---|
94 | </div> |
---|
95 | <?php |
---|
96 | |
---|
97 | } |
---|
98 | |
---|
99 | ?> |
---|
100 | </div> |
---|
101 | |
---|
102 | <?php |
---|
103 | |
---|
104 | } |
---|
105 | |
---|
106 | |
---|
107 | // |
---|
108 | // Delete topics from $forum_id that are "older than" $prune_date (if $prune_sticky is 1, sticky topics will also be deleted) |
---|
109 | // |
---|
110 | function prune($forum_id, $prune_sticky, $prune_date) |
---|
111 | { |
---|
112 | global $db; |
---|
113 | |
---|
114 | $extra_sql = ($prune_date != -1) ? ' AND last_post<'.$prune_date : ''; |
---|
115 | |
---|
116 | if (!$prune_sticky) |
---|
117 | $extra_sql .= ' AND sticky=\'0\''; |
---|
118 | |
---|
119 | // Fetch topics to prune |
---|
120 | $result = $db->query('SELECT id FROM '.$db->prefix.'topics WHERE forum_id='.$forum_id.$extra_sql, true) or error('Impossible de retrouver la liste des discussions', __FILE__, __LINE__, $db->error()); |
---|
121 | |
---|
122 | $topic_ids = ''; |
---|
123 | while ($row = $db->fetch_row($result)) |
---|
124 | $topic_ids .= (($topic_ids != '') ? ',' : '').$row[0]; |
---|
125 | |
---|
126 | if ($topic_ids != '') |
---|
127 | { |
---|
128 | // Fetch posts to prune |
---|
129 | $result = $db->query('SELECT id FROM '.$db->prefix.'posts WHERE topic_id IN('.$topic_ids.')', true) or error('Impossible de retrouver les messages', __FILE__, __LINE__, $db->error()); |
---|
130 | |
---|
131 | $post_ids = ''; |
---|
132 | while ($row = $db->fetch_row($result)) |
---|
133 | $post_ids .= (($post_ids != '') ? ',' : '').$row[0]; |
---|
134 | |
---|
135 | if ($post_ids != '') |
---|
136 | { |
---|
137 | // Delete topics |
---|
138 | $db->query('DELETE FROM '.$db->prefix.'topics WHERE id IN('.$topic_ids.')') or error('Impossible d\'élaguer les discussions', __FILE__, __LINE__, $db->error()); |
---|
139 | // Delete subscriptions |
---|
140 | $db->query('DELETE FROM '.$db->prefix.'subscriptions WHERE topic_id IN('.$topic_ids.')') or error('Impossible d\'élaguer les abonnements', __FILE__, __LINE__, $db->error()); |
---|
141 | // Delete posts |
---|
142 | $db->query('DELETE FROM '.$db->prefix.'posts WHERE id IN('.$post_ids.')') or error('Impossible d\'élaguer les messages', __FILE__, __LINE__, $db->error()); |
---|
143 | |
---|
144 | // We removed a bunch of posts, so now we have to update the search index |
---|
145 | require_once PUN_ROOT.'include/search_idx.php'; |
---|
146 | strip_search_index($post_ids); |
---|
147 | } |
---|
148 | } |
---|
149 | } |
---|