~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/php/phpBB3/report.php

Dispatch now generates an index for each plugin type, allowing plugins to
be written which are aware of other plugins, and other plugin types.

All view plugins now subclass from ivle.webapp.base.plugins.ViewPlugin,
as opposed to subclassing BasePlugin directly. This will allow us to
easily re-write console as an OverlayPlugin, and allow future new
plugins types to be created.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
*
 
4
* @package phpBB3
 
5
* @version $Id: report.php,v 1.39 2007/10/05 14:30:06 acydburn Exp $
 
6
* @copyright (c) 2005 phpBB Group
 
7
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
 
8
*
 
9
*/
 
10
 
 
11
/**
 
12
* @ignore
 
13
*/
 
14
define('IN_PHPBB', true);
 
15
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
 
16
$phpEx = substr(strrchr(__FILE__, '.'), 1);
 
17
include($phpbb_root_path . 'common.' . $phpEx);
 
18
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
 
19
 
 
20
// Start session management
 
21
$user->session_begin();
 
22
$auth->acl($user->data);
 
23
$user->setup('mcp');
 
24
 
 
25
$forum_id               = request_var('f', 0);
 
26
$post_id                = request_var('p', 0);
 
27
$reason_id              = request_var('reason_id', 0);
 
28
$report_text    = utf8_normalize_nfc(request_var('report_text', '', true));
 
29
$user_notify    = ($user->data['is_registered']) ? request_var('notify', 0) : false;
 
30
 
 
31
$submit = (isset($_POST['submit'])) ? true : false;
 
32
 
 
33
if (!$post_id)
 
34
{
 
35
        trigger_error('NO_POST_SELECTED');
 
36
}
 
37
 
 
38
$redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;p=$post_id") . "#p$post_id";
 
39
 
 
40
// Has the report been cancelled?
 
41
if (isset($_POST['cancel']))
 
42
{
 
43
        redirect($redirect_url);
 
44
}
 
45
 
 
46
// Grab all relevant data
 
47
$sql = 'SELECT t.*, p.*
 
48
        FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . " t
 
49
        WHERE p.post_id = $post_id
 
50
                AND p.topic_id = t.topic_id";
 
51
$result = $db->sql_query($sql);
 
52
$report_data = $db->sql_fetchrow($result);
 
53
$db->sql_freeresult($result);
 
54
 
 
55
if (!$report_data)
 
56
{
 
57
        trigger_error('POST_NOT_EXIST');
 
58
}
 
59
 
 
60
$forum_id = (int) ($report_data['forum_id']) ? $report_data['forum_id'] : $forum_id;
 
61
$topic_id = (int) $report_data['topic_id'];
 
62
 
 
63
$sql = 'SELECT *
 
64
        FROM ' . FORUMS_TABLE . '
 
65
        WHERE forum_id = ' . $forum_id;
 
66
$result = $db->sql_query($sql);
 
67
$forum_data = $db->sql_fetchrow($result);
 
68
$db->sql_freeresult($result);
 
69
 
 
70
if (!$forum_data)
 
71
{
 
72
        trigger_error('FORUM_NOT_EXIST');
 
73
}
 
74
 
 
75
// Check required permissions
 
76
$acl_check_ary = array('f_list' => 'POST_NOT_EXIST', 'f_read' => 'USER_CANNOT_READ', 'f_report' => 'USER_CANNOT_REPORT');
 
77
 
 
78
foreach ($acl_check_ary as $acl => $error)
 
79
{
 
80
        if (!$auth->acl_get($acl, $forum_id))
 
81
        {
 
82
                trigger_error($error);
 
83
        }
 
84
}
 
85
unset($acl_check_ary);
 
86
 
 
87
if ($report_data['post_reported'])
 
88
{
 
89
        $message = $user->lang['ALREADY_REPORTED'];
 
90
        $message .= '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');
 
91
        trigger_error($message);
 
92
}
 
93
 
 
94
// Submit report?
 
95
if ($submit && $reason_id)
 
96
{
 
97
        $sql = 'SELECT *
 
98
                FROM ' . REPORTS_REASONS_TABLE . "
 
99
                WHERE reason_id = $reason_id";
 
100
        $result = $db->sql_query($sql);
 
101
        $row = $db->sql_fetchrow($result);
 
102
        $db->sql_freeresult($result);
 
103
 
 
104
        if (!$row || (!$report_text && strtolower($row['reason_title']) == 'other'))
 
105
        {
 
106
                trigger_error('EMPTY_REPORT');
 
107
        }
 
108
 
 
109
        $sql_ary = array(
 
110
                'reason_id'             => (int) $reason_id,
 
111
                'post_id'               => $post_id,
 
112
                'user_id'               => (int) $user->data['user_id'],
 
113
                'user_notify'   => (int) $user_notify,
 
114
                'report_closed' => 0,
 
115
                'report_time'   => (int) time(),
 
116
                'report_text'   => (string) $report_text
 
117
        );
 
118
 
 
119
        $sql = 'INSERT INTO ' . REPORTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
 
120
        $db->sql_query($sql);
 
121
        $report_id = $db->sql_nextid();
 
122
 
 
123
        if (!$report_data['post_reported'])
 
124
        {
 
125
                $sql = 'UPDATE ' . POSTS_TABLE . '
 
126
                        SET post_reported = 1
 
127
                        WHERE post_id = ' . $post_id;
 
128
                $db->sql_query($sql);
 
129
        }
 
130
 
 
131
        if (!$report_data['topic_reported'])
 
132
        {
 
133
                $sql = 'UPDATE ' . TOPICS_TABLE . '
 
134
                        SET topic_reported = 1
 
135
                        WHERE topic_id = ' . $report_data['topic_id'] . '
 
136
                                OR topic_moved_id = ' . $report_data['topic_id'];
 
137
                $db->sql_query($sql);
 
138
        }
 
139
 
 
140
        meta_refresh(3, $redirect_url);
 
141
 
 
142
        $message = $user->lang['POST_REPORTED_SUCCESS'] . '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');
 
143
        trigger_error($message);
 
144
}
 
145
 
 
146
// Generate the reasons
 
147
display_reasons($reason_id);
 
148
 
 
149
$template->assign_vars(array(
 
150
        'REPORT_TEXT'           => $report_text,
 
151
        'S_REPORT_ACTION'       => append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&amp;p=' . $post_id),
 
152
 
 
153
        'S_NOTIFY'                      => $user_notify,
 
154
        'S_CAN_NOTIFY'          => ($user->data['is_registered']) ? true : false)
 
155
);
 
156
 
 
157
generate_forum_nav($forum_data);
 
158
 
 
159
// Start output of page
 
160
page_header($user->lang['REPORT_POST']);
 
161
 
 
162
$template->set_filenames(array(
 
163
        'body' => 'report_body.html')
 
164
);
 
165
 
 
166
page_footer();
 
167
 
 
168
?>
 
 
b'\\ No newline at end of file'