source: trunk/web/punbb/admin_ranks.php @ 2

Last change on this file since 2 was 1, checked in by dj3c1t, 13 years ago

import initial

File size: 6.7 KB
RevLine 
[1]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
26// Tell header.php to use the admin template
27define('PUN_ADMIN_CONSOLE', 1);
28
29define('PUN_ROOT', './');
30require PUN_ROOT.'include/common.php';
31require PUN_ROOT.'include/common_admin.php';
32
33
34if ($pun_user['g_id'] > PUN_ADMIN)
35        message($lang_common['No permission']);
36
37
38// Add a rank
39if (isset($_POST['add_rank']))
40{
41        confirm_referrer('admin_ranks.php');
42
43        $rank = trim($_POST['new_rank']);
44        $min_posts = $_POST['new_min_posts'];
45
46        if ($rank == '')
47                message('Vous devez saisir un titre au rang.');
48
49        if (!preg_match('#^\d+$#', $min_posts))
50                message('Le nombre minimum de messages doit être un entier positif.');
51
52        // Make sure there isn't already a rank with the same min_posts value
53        $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());
54        if ($db->num_rows($result))
55                message('Il y a déjà un rang avec un nombre minimum de '.$min_posts.'messages.');
56
57        $db->query('INSERT INTO '.$db->prefix.'ranks (rank, min_posts) VALUES(\''.$db->escape($rank).'\', '.$min_posts.')') or error('Impossible d\'ajouter le rang', __FILE__, __LINE__, $db->error());
58
59        // Regenerate the ranks cache
60        require_once PUN_ROOT.'include/cache.php';
61        generate_ranks_cache();
62
63        redirect('admin_ranks.php', 'Rang ajouté. Redirection ...');
64}
65
66
67// Update a rank
68else if (isset($_POST['update']))
69{
70        confirm_referrer('admin_ranks.php');
71
72        $id = intval(key($_POST['update']));
73
74        $rank = trim($_POST['rank'][$id]);
75        $min_posts = trim($_POST['min_posts'][$id]);
76
77        if ($rank == '')
78                message('You must enter a rank title.');
79
80        if (!preg_match('#^\d+$#', $min_posts))
81                message('Le nombre minimum de messages doit être un entier positif.');
82
83        // Make sure there isn't already a rank with the same min_posts value
84        $result = $db->query('SELECT 1 FROM '.$db->prefix.'ranks WHERE id!='.$id.' && min_posts='.$min_posts) or error('Impossible de retrouver les informations des rangs', __FILE__, __LINE__, $db->error());
85        if ($db->num_rows($result))
86                message('Il y a déjà un rang avec un nombre minimum de '.$min_posts.' messages.');
87
88        $db->query('UPDATE '.$db->prefix.'ranks SET rank=\''.$db->escape($rank).'\', min_posts='.$min_posts.' WHERE id='.$id) or error('Impossible de modifier les rangs', __FILE__, __LINE__, $db->error());
89
90        // Regenerate the ranks cache
91        require_once PUN_ROOT.'include/cache.php';
92        generate_ranks_cache();
93
94        redirect('admin_ranks.php', 'Rangs modifiés. Redirection ...');
95}
96
97
98// Remove a rank
99else if (isset($_POST['remove']))
100{
101        confirm_referrer('admin_ranks.php');
102
103        $id = intval(key($_POST['remove']));
104
105        $db->query('DELETE FROM '.$db->prefix.'ranks WHERE id='.$id) or error('Impossible de supprimer le rang', __FILE__, __LINE__, $db->error());
106
107        // Regenerate the ranks cache
108        require_once PUN_ROOT.'include/cache.php';
109        generate_ranks_cache();
110
111        redirect('admin_ranks.php', 'Rang supprimé. Redirection ...');
112}
113
114
115$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Rangs';
116$focus_element = array('ranks', 'new_rank');
117require PUN_ROOT.'header.php';
118
119generate_admin_menu('ranks');
120
121?>
122        <div class="blockform">
123                <h2><span>Rangs</span></h2>
124                <div class="box">
125                        <form id="ranks" method="post" action="admin_ranks.php?action=foo">
126                                <div class="inform">
127                                        <fieldset>
128                                                <legend>Ajouter un rang</legend>
129                                                <div class="infldset">
130                                                        <p>Saisissez un titre de rang et un nombre minimum de messages que l'utilisateur devra atteindre afin d'obtenir ce rang. Plusieurs rangs ne peuvent avoir le même nombre minimum de messages. Si un titre est donné à un utilisateur, le titre sera affiché à la place du rang. <strong>Les rangs utilisateurs doivent êtres activés à la page <a href="admin_options.php#ranks">Options</a> pour qu'ils aient un quelconque effet.</strong></p>
131                                                        <table  cellspacing="0">
132                                                        <thead>
133                                                                <tr>
134                                                                        <th class="tcl" scope="col">Titre du rang</th>
135                                                                        <th class="tc2" scope="col">Nombre minimum de messages</th>
136                                                                        <th class="hidehead" scope="col">Action</th>
137                                                                </tr>
138                                                        </thead>
139                                                        <tbody>
140                                                                <tr>
141                                                                        <td><input type="text" name="new_rank" size="24" maxlength="50" tabindex="1" /></td>
142                                                                        <td><input type="text" name="new_min_posts" size="7" maxlength="7" tabindex="2" /></td>
143                                                                        <td><input type="submit" name="add_rank" value=" Ajouter " tabindex="3" /></td>
144                                                                </tr>
145                                                        </tbody>
146                                                        </table>
147                                                </div>
148                                        </fieldset>
149                                </div>
150                                <div class="inform">
151                                        <fieldset>
152                                                <legend>Modifier/supprimer les rangs</legend>
153                                                <div class="infldset">
154<?php
155
156$result = $db->query('SELECT id, rank, min_posts FROM '.$db->prefix.'ranks ORDER BY min_posts') or error('Impossible de retrouver la liste des rangs', __FILE__, __LINE__, $db->error());
157if ($db->num_rows($result))
158{
159
160?>
161                                                        <table  cellspacing="0">
162                                                        <thead>
163                                                                <tr>
164                                                                        <th class="tcl" scope="col"><strong>Titre du rang</strong></th>
165                                                                        <th class="tc2" scope="col"><strong>Nombre minimum de messages</strong></th>
166                                                                        <th class="hidehead" scope="col">Actions</th>
167                                                                </tr>
168                                                        </thead>
169                                                        <tbody>
170<?php
171
172        while ($cur_rank = $db->fetch_assoc($result))
173                echo "\t\t\t\t\t\t\t\t".'<tr><td><input type="text" name="rank['.$cur_rank['id'].']" value="'.pun_htmlspecialchars($cur_rank['rank']).'" size="24" maxlength="50" /></td><td><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="Modifier" />&#160;<input type="submit" name="remove['.$cur_rank['id'].']" value="Supprimer" /></td></tr>'."\n";
174
175?>
176                                                        </tbody>
177                                                        </table>
178<?php
179
180}
181else
182        echo "\t\t\t\t\t\t\t".'<p>Aucun rang dans la liste.</p>'."\n";
183
184?>
185                                                </div>
186                                        </fieldset>
187                                </div>
188                        </form>
189                </div>
190        </div>
191        <div class="clearer"></div>
192</div>
193<?php
194
195require PUN_ROOT.'footer.php';
Note: See TracBrowser for help on using the repository browser.