source: trunk/web/punbb/admin_reports.php

Last change on this file was 6, checked in by dj3c1t, 13 years ago

mise a jour du trunk

File size: 8.0 KB
RevLine 
[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
10define('PUN_ADMIN_CONSOLE', 1);
11
12define('PUN_ROOT', dirname(__FILE__).'/');
13require PUN_ROOT.'include/common.php';
14require PUN_ROOT.'include/common_admin.php';
15
16
17if (!$pun_user['is_admmod'])
18        message($lang_common['No permission']);
19
20// Load the admin_reports.php language file
21require PUN_ROOT.'lang/'.$admin_language.'/admin_reports.php';
22
23// Zap a report
24if (isset($_POST['zap_id']))
25{
26        confirm_referrer('admin_reports.php');
27
28        $zap_id = intval(key($_POST['zap_id']));
29
30        $result = $db->query('SELECT zapped FROM '.$db->prefix.'reports WHERE id='.$zap_id) or error('Unable to fetch report info', __FILE__, __LINE__, $db->error());
31        $zapped = $db->result($result);
32
33        if ($zapped == '')
34                $db->query('UPDATE '.$db->prefix.'reports SET zapped='.time().', zapped_by='.$pun_user['id'].' WHERE id='.$zap_id) or error('Unable to zap report', __FILE__, __LINE__, $db->error());
35
36        // Delete old reports (which cannot be viewed anyway)
37        $result = $db->query('SELECT zapped FROM '.$db->prefix.'reports WHERE zapped IS NOT NULL ORDER BY zapped DESC LIMIT 10,1') or error('Unable to fetch read reports to delete', __FILE__, __LINE__, $db->error());
38        if ($db->num_rows($result) > 0)
39        {
40                $zapped_threshold = $db->result($result);
41                $db->query('DELETE FROM '.$db->prefix.'reports WHERE zapped <= '.$zapped_threshold) or error('Unable to delete old read reports', __FILE__, __LINE__, $db->error());
42        }
43
44        redirect('admin_reports.php', $lang_admin_reports['Report zapped redirect']);
45}
46
47
48$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Reports']);
49define('PUN_ACTIVE_PAGE', 'admin');
50require PUN_ROOT.'header.php';
51
52generate_admin_menu('reports');
53
54?>
55        <div class="blockform">
56                <h2><span><?php echo $lang_admin_reports['New reports head'] ?></span></h2>
57                <div class="box">
58                        <form method="post" action="admin_reports.php?action=zap">
59<?php
60
61$result = $db->query('SELECT r.id, r.topic_id, r.forum_id, r.reported_by, r.created, r.message, p.id AS pid, t.subject, f.forum_name, u.username AS reporter FROM '.$db->prefix.'reports AS r LEFT JOIN '.$db->prefix.'posts AS p ON r.post_id=p.id LEFT JOIN '.$db->prefix.'topics AS t ON r.topic_id=t.id LEFT JOIN '.$db->prefix.'forums AS f ON r.forum_id=f.id LEFT JOIN '.$db->prefix.'users AS u ON r.reported_by=u.id WHERE r.zapped IS NULL ORDER BY created DESC') or error('Unable to fetch report list', __FILE__, __LINE__, $db->error());
62
63if ($db->num_rows($result))
64{
65        while ($cur_report = $db->fetch_assoc($result))
66        {
67                $reporter = ($cur_report['reporter'] != '') ? '<a href="profile.php?id='.$cur_report['reported_by'].'">'.pun_htmlspecialchars($cur_report['reporter']).'</a>' : $lang_admin_reports['Deleted user'];
68                $forum = ($cur_report['forum_name'] != '') ? '<span><a href="viewforum.php?id='.$cur_report['forum_id'].'">'.pun_htmlspecialchars($cur_report['forum_name']).'</a></span>' : '<span>'.$lang_admin_reports['Deleted'].'</span>';
69                $topic = ($cur_report['subject'] != '') ? '<span>»&#160;<a href="viewtopic.php?id='.$cur_report['topic_id'].'">'.pun_htmlspecialchars($cur_report['subject']).'</a></span>' : '<span>»&#160;'.$lang_admin_reports['Deleted'].'</span>';
70                $post = str_replace("\n", '<br />', pun_htmlspecialchars($cur_report['message']));
71                $post_id = ($cur_report['pid'] != '') ? '<span>»&#160;<a href="viewtopic.php?pid='.$cur_report['pid'].'#p'.$cur_report['pid'].'">'.sprintf($lang_admin_reports['Post ID'], $cur_report['pid']).'</a></span>' : '<span>»&#160;'.$lang_admin_reports['Deleted'].'</span>';
72                $report_location = array($forum, $topic, $post_id);
73
74?>
75                                <div class="inform">
76                                        <fieldset>
77                                                <legend><?php printf($lang_admin_reports['Report subhead'], format_time($cur_report['created'])) ?></legend>
78                                                <div class="infldset">
79                                                        <table class="aligntop" cellspacing="0">
80                                                                <tr>
81                                                                        <th scope="row"><?php printf($lang_admin_reports['Reported by'], $reporter) ?></th>
82                                                                        <td class="location"><?php echo implode(' ', $report_location) ?></td>
83                                                                </tr>
84                                                                <tr>
85                                                                        <th scope="row"><?php echo $lang_admin_reports['Reason'] ?><div><input type="submit" name="zap_id[<?php echo $cur_report['id'] ?>]" value="<?php echo $lang_admin_reports['Zap'] ?>" /></div></th>
86                                                                        <td><?php echo $post ?></td>
87                                                                </tr>
88                                                        </table>
89                                                </div>
90                                        </fieldset>
91                                </div>
92<?php
93
94        }
95}
96else
97{
98
99?>
100                                <div class="inform">
101                                        <fieldset>
102                                                <legend><?php echo $lang_admin_common['None'] ?></legend>
103                                                <div class="infldset">
104                                                        <p><?php echo $lang_admin_reports['No new reports'] ?></p>
105                                                </div>
106                                        </fieldset>
107                                </div>
108<?php
109
110}
111
112?>
113                        </form>
114                </div>
115        </div>
116
117        <div class="blockform block2">
118                <h2><span><?php echo $lang_admin_reports['Last 10 head'] ?></span></h2>
119                <div class="box">
120                        <div class="fakeform">
121<?php
122
123$result = $db->query('SELECT r.id, r.topic_id, r.forum_id, r.reported_by, r.message, r.zapped, r.zapped_by AS zapped_by_id, p.id AS pid, t.subject, f.forum_name, u.username AS reporter, u2.username AS zapped_by FROM '.$db->prefix.'reports AS r LEFT JOIN '.$db->prefix.'posts AS p ON r.post_id=p.id LEFT JOIN '.$db->prefix.'topics AS t ON r.topic_id=t.id LEFT JOIN '.$db->prefix.'forums AS f ON r.forum_id=f.id LEFT JOIN '.$db->prefix.'users AS u ON r.reported_by=u.id LEFT JOIN '.$db->prefix.'users AS u2 ON r.zapped_by=u2.id WHERE r.zapped IS NOT NULL ORDER BY zapped DESC LIMIT 10') or error('Unable to fetch report list', __FILE__, __LINE__, $db->error());
124
125if ($db->num_rows($result))
126{
127        while ($cur_report = $db->fetch_assoc($result))
128        {
129                $reporter = ($cur_report['reporter'] != '') ? '<a href="profile.php?id='.$cur_report['reported_by'].'">'.pun_htmlspecialchars($cur_report['reporter']).'</a>' : $lang_admin_reports['Deleted user'];
130                $forum = ($cur_report['forum_name'] != '') ? '<span><a href="viewforum.php?id='.$cur_report['forum_id'].'">'.pun_htmlspecialchars($cur_report['forum_name']).'</a></span>' : '<span>'.$lang_admin_reports['Deleted'].'</span>';
131                $topic = ($cur_report['subject'] != '') ? '<span>»&#160;<a href="viewtopic.php?id='.$cur_report['topic_id'].'">'.pun_htmlspecialchars($cur_report['subject']).'</a></span>' : '<span>»&#160;'.$lang_admin_reports['Deleted'].'</span>';
132                $post = str_replace("\n", '<br />', pun_htmlspecialchars($cur_report['message']));
133                $post_id = ($cur_report['pid'] != '') ? '<span>»&#160;<a href="viewtopic.php?pid='.$cur_report['pid'].'#p'.$cur_report['pid'].'">'.sprintf($lang_admin_reports['Post ID'], $cur_report['pid']).'</a></span>' : '<span>»&#160;'.$lang_admin_reports['Deleted'].'</span>';
134                $zapped_by = ($cur_report['zapped_by'] != '') ? '<a href="profile.php?id='.$cur_report['zapped_by_id'].'">'.pun_htmlspecialchars($cur_report['zapped_by']).'</a>' : $lang_admin_reports['NA'];
135                $zapped_by = ($cur_report['zapped_by'] != '') ? '<strong>'.pun_htmlspecialchars($cur_report['zapped_by']).'</strong>' : $lang_admin_reports['NA'];
136                $report_location = array($forum, $topic, $post_id);
137
138?>
139                                <div class="inform">
140                                        <fieldset>
141                                                <legend><?php printf($lang_admin_reports['Zapped subhead'], format_time($cur_report['zapped']), $zapped_by) ?></legend>
142                                                <div class="infldset">
143                                                        <table class="aligntop" cellspacing="0">
144                                                                <tr>
145                                                                        <th scope="row"><?php printf($lang_admin_reports['Reported by'], $reporter) ?></th>
146                                                                        <td class="location"><?php echo implode(' ', $report_location) ?></td>
147                                                                </tr>
148                                                                <tr>
149                                                                        <th scope="row"><?php echo $lang_admin_reports['Reason'] ?></th>
150                                                                        <td><?php echo $post ?></td>
151                                                                </tr>
152                                                        </table>
153                                                </div>
154                                        </fieldset>
155                                </div>
156<?php
157
158        }
159}
160else
161{
162
163?>
164                                <div class="inform">
165                                        <fieldset>
166                                                <legend><?php echo $lang_admin_common['None'] ?></legend>
167                                                <div class="infldset">
168                                                        <p><?php echo $lang_admin_reports['No zapped reports'] ?></p>
169                                                </div>
170                                        </fieldset>
171                                </div>
172<?php
173
174}
175
176?>
177                        </div>
178                </div>
179        </div>
180        <div class="clearer"></div>
181</div>
182<?php
183
184require PUN_ROOT.'footer.php';
Note: See TracBrowser for help on using the repository browser.