Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
mcp_front.php
001 <?php
002 /**
003 *
004 * This file is part of the phpBB Forum Software package.
005 *
006 * @copyright (c) phpBB Limited <https://www.phpbb.com>
007 * @license GNU General Public License, version 2 (GPL-2.0)
008 *
009 * For full copyright and license information, please see
010 * the docs/CREDITS.txt file.
011 *
012 */
013
014 /**
015 * @ignore
016 */
017 if (!defined('IN_PHPBB'))
018 {
019 exit;
020 }
021
022 /**
023 * MCP Front Panel
024 */
025 function mcp_front_view($id, $mode, $action)
026 {
027 global $phpEx, $phpbb_root_path;
028 global $template, $db, $user, $auth, $module;
029 global $phpbb_dispatcher, $request;
030
031 // Latest 5 unapproved
032 if ($module->loaded('queue'))
033 {
034 $forum_list = array_values(array_intersect(get_forum_list('f_read'), get_forum_list('m_approve')));
035 $post_list = array();
036 $forum_names = array();
037
038 $forum_id = $request->variable('f', 0);
039
040 $template->assign_var('S_SHOW_UNAPPROVED', (!empty($forum_list)) ? true : false);
041
042 if (!empty($forum_list))
043 {
044 $sql_ary = array(
045 'SELECT' => 'COUNT(post_id) AS total',
046 'FROM' => array(
047 POSTS_TABLE => 'p',
048 ),
049 'WHERE' => $db->sql_in_set('p.forum_id', $forum_list) . '
050 AND ' . $db->sql_in_set('p.post_visibility', array(ITEM_UNAPPROVED, ITEM_REAPPROVE))
051 );
052
053 /**
054 * Allow altering the query to get the number of unapproved posts
055 *
056 * @event core.mcp_front_queue_unapproved_total_before
057 * @var array sql_ary Query array to get the total number of unapproved posts
058 * @var array forum_list List of forums to look for unapproved posts
059 * @since 3.1.5-RC1
060 */
061 $vars = array('sql_ary', 'forum_list');
062 extract($phpbb_dispatcher->trigger_event('core.mcp_front_queue_unapproved_total_before', compact($vars)));
063
064 $sql = $db->sql_build_query('SELECT', $sql_ary);
065 $result = $db->sql_query($sql);
066 $total = (int) $db->sql_fetchfield('total');
067 $db->sql_freeresult($result);
068
069 if ($total)
070 {
071 $sql = 'SELECT forum_id, forum_name
072 FROM ' . FORUMS_TABLE . '
073 WHERE ' . $db->sql_in_set('forum_id', $forum_list);
074 $result = $db->sql_query($sql);
075
076 while ($row = $db->sql_fetchrow($result))
077 {
078 $forum_names[$row['forum_id']] = $row['forum_name'];
079 }
080 $db->sql_freeresult($result);
081
082 $sql = 'SELECT post_id
083 FROM ' . POSTS_TABLE . '
084 WHERE ' . $db->sql_in_set('forum_id', $forum_list) . '
085 AND ' . $db->sql_in_set('post_visibility', array(ITEM_UNAPPROVED, ITEM_REAPPROVE)) . '
086 ORDER BY post_time DESC, post_id DESC';
087 $result = $db->sql_query_limit($sql, 5);
088
089 while ($row = $db->sql_fetchrow($result))
090 {
091 $post_list[] = $row['post_id'];
092 }
093 $db->sql_freeresult($result);
094
095 if (empty($post_list))
096 {
097 $total = 0;
098 }
099 }
100
101 /**
102 * Alter list of posts and total as required
103 *
104 * @event core.mcp_front_view_queue_postid_list_after
105 * @var int total Number of unapproved posts
106 * @var array post_list List of unapproved posts
107 * @var array forum_list List of forums that contain the posts
108 * @var array forum_names Associative array with forum_id as key and it's corresponding forum_name as value
109 * @since 3.1.0-RC3
110 */
111 $vars = array('total', 'post_list', 'forum_list', 'forum_names');
112 extract($phpbb_dispatcher->trigger_event('core.mcp_front_view_queue_postid_list_after', compact($vars)));
113
114 if ($total)
115 {
116 $sql = 'SELECT p.post_id, p.post_subject, p.post_time, p.post_attachment, p.poster_id, p.post_username, u.username, u.username_clean, u.user_colour, t.topic_id, t.topic_title, t.topic_first_post_id, p.forum_id
117 FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . USERS_TABLE . ' u
118 WHERE ' . $db->sql_in_set('p.post_id', $post_list) . '
119 AND t.topic_id = p.topic_id
120 AND p.poster_id = u.user_id
121 ORDER BY p.post_time DESC, p.post_id DESC';
122 $result = $db->sql_query($sql);
123
124 while ($row = $db->sql_fetchrow($result))
125 {
126 $template->assign_block_vars('unapproved', array(
127 'U_POST_DETAILS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=approve_details&f=' . $row['forum_id'] . '&p=' . $row['post_id']),
128 'U_MCP_FORUM' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=forum_view&f=' . $row['forum_id']),
129 'U_MCP_TOPIC' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=topic_view&f=' . $row['forum_id'] . '&t=' . $row['topic_id']),
130 'U_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']),
131 'U_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&t=' . $row['topic_id']),
132
133 'AUTHOR_FULL' => get_username_string('full', $row['poster_id'], $row['username'], $row['user_colour']),
134 'AUTHOR' => get_username_string('username', $row['poster_id'], $row['username'], $row['user_colour']),
135 'AUTHOR_COLOUR' => get_username_string('colour', $row['poster_id'], $row['username'], $row['user_colour']),
136 'U_AUTHOR' => get_username_string('profile', $row['poster_id'], $row['username'], $row['user_colour']),
137
138 'FORUM_NAME' => $forum_names[$row['forum_id']],
139 'POST_ID' => $row['post_id'],
140 'TOPIC_TITLE' => $row['topic_title'],
141 'SUBJECT' => ($row['post_subject']) ? $row['post_subject'] : $user->lang['NO_SUBJECT'],
142 'POST_TIME' => $user->format_date($row['post_time']),
143 'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $auth->acl_get('f_download', $row['forum_id']) && $row['post_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
144 ));
145 }
146 $db->sql_freeresult($result);
147 }
148
149 $s_hidden_fields = build_hidden_fields(array(
150 'redirect' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main' . (($forum_id) ? '&f=' . $forum_id : ''))
151 ));
152
153 $template->assign_vars(array(
154 'S_HIDDEN_FIELDS' => $s_hidden_fields,
155 'S_MCP_QUEUE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue"),
156 'L_UNAPPROVED_TOTAL' => $user->lang('UNAPPROVED_POSTS_TOTAL', (int) $total),
157 'S_HAS_UNAPPROVED_POSTS'=> ($total != 0),
158 ));
159 }
160 }
161
162 // Latest 5 reported
163 if ($module->loaded('reports'))
164 {
165 $forum_list = array_values(array_intersect(get_forum_list('f_read'), get_forum_list('m_report')));
166
167 $template->assign_var('S_SHOW_REPORTS', (!empty($forum_list)) ? true : false);
168
169 if (!empty($forum_list))
170 {
171 $sql = 'SELECT COUNT(r.report_id) AS total
172 FROM ' . REPORTS_TABLE . ' r, ' . POSTS_TABLE . ' p
173 WHERE r.post_id = p.post_id
174 AND r.pm_id = 0
175 AND r.report_closed = 0
176 AND ' . $db->sql_in_set('p.forum_id', $forum_list);
177
178 /**
179 * Alter sql query to count the number of reported posts
180 *
181 * @event core.mcp_front_reports_count_query_before
182 * @var string sql The query string used to get the number of reports that exist
183 * @var array forum_list List of forums that contain the posts
184 * @since 3.1.5-RC1
185 */
186 $vars = array('sql', 'forum_list');
187 extract($phpbb_dispatcher->trigger_event('core.mcp_front_reports_count_query_before', compact($vars)));
188
189 $result = $db->sql_query($sql);
190 $total = (int) $db->sql_fetchfield('total');
191 $db->sql_freeresult($result);
192
193 if ($total)
194 {
195 $sql_ary = array(
196 'SELECT' => 'r.report_time, p.post_id, p.post_subject, p.post_time, p.post_attachment, u.username, u.username_clean, u.user_colour, u.user_id, u2.username as author_name, u2.username_clean as author_name_clean, u2.user_colour as author_colour, u2.user_id as author_id, t.topic_id, t.topic_title, f.forum_id, f.forum_name',
197
198 'FROM' => array(
199 REPORTS_TABLE => 'r',
200 REPORTS_REASONS_TABLE => 'rr',
201 TOPICS_TABLE => 't',
202 USERS_TABLE => array('u', 'u2'),
203 POSTS_TABLE => 'p',
204 ),
205
206 'LEFT_JOIN' => array(
207 array(
208 'FROM' => array(FORUMS_TABLE => 'f'),
209 'ON' => 'f.forum_id = p.forum_id',
210 ),
211 ),
212
213 'WHERE' => 'r.post_id = p.post_id
214 AND r.pm_id = 0
215 AND r.report_closed = 0
216 AND r.reason_id = rr.reason_id
217 AND p.topic_id = t.topic_id
218 AND r.user_id = u.user_id
219 AND p.poster_id = u2.user_id
220 AND ' . $db->sql_in_set('p.forum_id', $forum_list),
221
222 'ORDER_BY' => 'p.post_time DESC, p.post_id DESC',
223 );
224
225 /**
226 * Alter sql query to get latest reported posts
227 *
228 * @event core.mcp_front_reports_listing_query_before
229 * @var array sql_ary Associative array with the query to be executed
230 * @var array forum_list List of forums that contain the posts
231 * @since 3.1.0-RC3
232 */
233 $vars = array('sql_ary', 'forum_list');
234 extract($phpbb_dispatcher->trigger_event('core.mcp_front_reports_listing_query_before', compact($vars)));
235
236 $sql = $db->sql_build_query('SELECT', $sql_ary);
237 $result = $db->sql_query_limit($sql, 5);
238
239 while ($row = $db->sql_fetchrow($result))
240 {
241 $template->assign_block_vars('report', array(
242 'U_POST_DETAILS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'f=' . $row['forum_id'] . '&p=' . $row['post_id'] . "&i=reports&mode=report_details"),
243 'U_MCP_FORUM' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'f=' . $row['forum_id'] . "&i=$id&mode=forum_view"),
244 'U_MCP_TOPIC' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'f=' . $row['forum_id'] . '&t=' . $row['topic_id'] . "&i=$id&mode=topic_view"),
245 'U_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']),
246 'U_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&t=' . $row['topic_id']),
247
248 'REPORTER_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
249 'REPORTER' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
250 'REPORTER_COLOUR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
251 'U_REPORTER' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
252
253 'AUTHOR_FULL' => get_username_string('full', $row['author_id'], $row['author_name'], $row['author_colour']),
254 'AUTHOR' => get_username_string('username', $row['author_id'], $row['author_name'], $row['author_colour']),
255 'AUTHOR_COLOUR' => get_username_string('colour', $row['author_id'], $row['author_name'], $row['author_colour']),
256 'U_AUTHOR' => get_username_string('profile', $row['author_id'], $row['author_name'], $row['author_colour']),
257
258 'FORUM_NAME' => $row['forum_name'],
259 'TOPIC_TITLE' => $row['topic_title'],
260 'SUBJECT' => ($row['post_subject']) ? $row['post_subject'] : $user->lang['NO_SUBJECT'],
261 'REPORT_TIME' => $user->format_date($row['report_time']),
262 'POST_TIME' => $user->format_date($row['post_time']),
263 'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $auth->acl_get('f_download', $row['forum_id']) && $row['post_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
264 ));
265 }
266 $db->sql_freeresult($result);
267 }
268
269 $template->assign_vars(array(
270 'L_REPORTS_TOTAL' => $user->lang('REPORTS_TOTAL', (int) $total),
271 'S_HAS_REPORTS' => ($total != 0),
272 ));
273 }
274 }
275
276 // Latest 5 reported PMs
277 if ($module->loaded('pm_reports') && $auth->acl_get('m_pm_report'))
278 {
279 $template->assign_var('S_SHOW_PM_REPORTS', true);
280 $user->add_lang(array('ucp'));
281
282 $sql = 'SELECT COUNT(r.report_id) AS total
283 FROM ' . REPORTS_TABLE . ' r, ' . PRIVMSGS_TABLE . ' p
284 WHERE r.post_id = 0
285 AND r.pm_id = p.msg_id
286 AND r.report_closed = 0';
287 $result = $db->sql_query($sql);
288 $total = (int) $db->sql_fetchfield('total');
289 $db->sql_freeresult($result);
290
291 if ($total)
292 {
293 include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
294
295 $sql_ary = array(
296 'SELECT' => 'r.report_id, r.report_time, p.msg_id, p.message_subject, p.message_time, p.to_address, p.bcc_address, p.message_attachment, u.username, u.username_clean, u.user_colour, u.user_id, u2.username as author_name, u2.username_clean as author_name_clean, u2.user_colour as author_colour, u2.user_id as author_id',
297
298 'FROM' => array(
299 REPORTS_TABLE => 'r',
300 REPORTS_REASONS_TABLE => 'rr',
301 USERS_TABLE => array('u', 'u2'),
302 PRIVMSGS_TABLE => 'p',
303 ),
304
305 'WHERE' => 'r.pm_id = p.msg_id
306 AND r.post_id = 0
307 AND r.report_closed = 0
308 AND r.reason_id = rr.reason_id
309 AND r.user_id = u.user_id
310 AND p.author_id = u2.user_id',
311
312 'ORDER_BY' => 'p.message_time DESC',
313 );
314 $sql = $db->sql_build_query('SELECT', $sql_ary);
315 $result = $db->sql_query_limit($sql, 5);
316
317 $pm_by_id = $pm_list = array();
318 while ($row = $db->sql_fetchrow($result))
319 {
320 $pm_by_id[(int) $row['msg_id']] = $row;
321 $pm_list[] = (int) $row['msg_id'];
322 }
323 $db->sql_freeresult($result);
324
325 $address_list = get_recipient_strings($pm_by_id);
326
327 foreach ($pm_list as $message_id)
328 {
329 $row = $pm_by_id[$message_id];
330
331 $template->assign_block_vars('pm_report', array(
332 'U_PM_DETAILS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'r=' . $row['report_id'] . "&i=pm_reports&mode=pm_report_details"),
333
334 'REPORTER_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
335 'REPORTER' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
336 'REPORTER_COLOUR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
337 'U_REPORTER' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
338
339 'PM_AUTHOR_FULL' => get_username_string('full', $row['author_id'], $row['author_name'], $row['author_colour']),
340 'PM_AUTHOR' => get_username_string('username', $row['author_id'], $row['author_name'], $row['author_colour']),
341 'PM_AUTHOR_COLOUR' => get_username_string('colour', $row['author_id'], $row['author_name'], $row['author_colour']),
342 'U_PM_AUTHOR' => get_username_string('profile', $row['author_id'], $row['author_name'], $row['author_colour']),
343
344 'PM_SUBJECT' => $row['message_subject'],
345 'REPORT_TIME' => $user->format_date($row['report_time']),
346 'PM_TIME' => $user->format_date($row['message_time']),
347 'RECIPIENTS' => implode(', ', $address_list[$row['msg_id']]),
348 'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $row['message_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
349 ));
350 }
351 }
352
353 $template->assign_vars(array(
354 'L_PM_REPORTS_TOTAL' => $user->lang('PM_REPORTS_TOTAL', (int) $total),
355 'S_HAS_PM_REPORTS' => ($total != 0),
356 ));
357 }
358
359 // Latest 5 logs
360 if ($module->loaded('logs'))
361 {
362 $forum_list = array_values(array_intersect(get_forum_list('f_read'), get_forum_list('m_')));
363
364 if (!empty($forum_list))
365 {
366 $log_count = false;
367 $log = array();
368 view_log('mod', $log, $log_count, 5, 0, $forum_list);
369
370 foreach ($log as $row)
371 {
372 $template->assign_block_vars('log', array(
373 'USERNAME' => $row['username_full'],
374 'IP' => $row['ip'],
375 'TIME' => $user->format_date($row['time']),
376 'ACTION' => $row['action'],
377 'U_VIEW_TOPIC' => (!empty($row['viewtopic'])) ? $row['viewtopic'] : '',
378 'U_VIEWLOGS' => (!empty($row['viewlogs'])) ? $row['viewlogs'] : '')
379 );
380 }
381 }
382
383 $template->assign_vars(array(
384 'S_SHOW_LOGS' => (!empty($forum_list)) ? true : false,
385 'S_HAS_LOGS' => (!empty($log)) ? true : false)
386 );
387 }
388
389 $template->assign_var('S_MCP_ACTION', append_sid("{$phpbb_root_path}mcp.$phpEx"));
390 make_jumpbox(append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=forum_view'), 0, false, 'm_', true);
391 }
392