2 /***********************************************************************
4 Copyright (C) 2002-2005 Rickard Andersson (rickard@punbb.org)
6 This file is part of PunBB.
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.
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.
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,
23 ************************************************************************/
25 // Make sure no one attempts to run this script "directly"
31 // Display the admin navigation menu
33 function generate_admin_menu($page = '')
35 global $pun_config, $pun_user;
37 $is_admin = $pun_user['g_id'] == PUN_ADMIN ? true
: false
;
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
>
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
>
64 // See if there are any plugins
66 $d = dir(PUN_ROOT
.'plugins');
67 while (($entry = $d->read()) !== false
)
69 $prefix = substr($entry, 0, strpos($entry, '_'));
70 $suffix = substr($entry, strlen($entry) - 4);
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);
77 // Did we find any plugins?
82 <h2
class="block2"><span
>Plugins
</span
></h2
>
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";
108 // Delete topics from $forum_id that are "older than" $prune_date (if $prune_sticky is 1, sticky topics will also be deleted)
110 function prune($forum_id, $prune_sticky, $prune_date)
114 $extra_sql = ($prune_date != -1) ?
' AND last_post<'.$prune_date : '';
117 $extra_sql .= ' AND sticky=\'0\'';
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('Unable to fetch topics', __FILE__
, __LINE__
, $db->error());
123 while ($row = $db->fetch_row($result))
124 $topic_ids .= (($topic_ids != '') ?
',' : '').$row[0];
126 if ($topic_ids != '')
128 // Fetch posts to prune
129 $result = $db->query('SELECT id FROM '.$db->prefix
.'posts WHERE topic_id IN('.$topic_ids.')', true
) or error('Unable to fetch posts', __FILE__
, __LINE__
, $db->error());
132 while ($row = $db->fetch_row($result))
133 $post_ids .= (($post_ids != '') ?
',' : '').$row[0];
138 $db->query('DELETE FROM '.$db->prefix
.'topics WHERE id IN('.$topic_ids.')') or error('Unable to prune topics', __FILE__
, __LINE__
, $db->error());
139 // Delete subscriptions
140 $db->query('DELETE FROM '.$db->prefix
.'subscriptions WHERE topic_id IN('.$topic_ids.')') or error('Unable to prune subscriptions', __FILE__
, __LINE__
, $db->error());
142 $db->query('DELETE FROM '.$db->prefix
.'posts WHERE id IN('.$post_ids.')') or error('Unable to prune posts', __FILE__
, __LINE__
, $db->error());
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);