[ Index ] |
PHP Cross Reference of phpBB-3.3.14-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 /** 15 * @ignore 16 */ 17 if (!defined('IN_PHPBB')) 18 { 19 exit; 20 } 21 22 /** 23 * MCP Front Panel 24 */ 25 function mcp_front_view($id, $mode, $action) 26 { 27 global $phpEx, $phpbb_root_path; 28 global $template, $db, $user, $auth, $module; 29 global $phpbb_dispatcher, $request; 30 31 // Latest 5 unapproved 32 if ($module->loaded('queue')) 33 { 34 $forum_list = array_values(array_intersect(get_forum_list('f_read'), get_forum_list('m_approve'))); 35 $post_list = array(); 36 $forum_names = array(); 37 38 $forum_id = $request->variable('f', 0); 39 40 $template->assign_var('S_SHOW_UNAPPROVED', (!empty($forum_list)) ? true : false); 41 42 if (!empty($forum_list)) 43 { 44 $sql_ary = array( 45 'SELECT' => 'COUNT(post_id) AS total', 46 'FROM' => array( 47 POSTS_TABLE => 'p', 48 ), 49 'WHERE' => $db->sql_in_set('p.forum_id', $forum_list) . ' 50 AND ' . $db->sql_in_set('p.post_visibility', array(ITEM_UNAPPROVED, ITEM_REAPPROVE)) 51 ); 52 53 /** 54 * Allow altering the query to get the number of unapproved posts 55 * 56 * @event core.mcp_front_queue_unapproved_total_before 57 * @var array sql_ary Query array to get the total number of unapproved posts 58 * @var array forum_list List of forums to look for unapproved posts 59 * @since 3.1.5-RC1 60 */ 61 $vars = array('sql_ary', 'forum_list'); 62 extract($phpbb_dispatcher->trigger_event('core.mcp_front_queue_unapproved_total_before', compact($vars))); 63 64 $sql = $db->sql_build_query('SELECT', $sql_ary); 65 $result = $db->sql_query($sql); 66 $total = (int) $db->sql_fetchfield('total'); 67 $db->sql_freeresult($result); 68 69 if ($total) 70 { 71 $sql = 'SELECT forum_id, forum_name 72 FROM ' . FORUMS_TABLE . ' 73 WHERE ' . $db->sql_in_set('forum_id', $forum_list); 74 $result = $db->sql_query($sql); 75 76 while ($row = $db->sql_fetchrow($result)) 77 { 78 $forum_names[$row['forum_id']] = $row['forum_name']; 79 } 80 $db->sql_freeresult($result); 81 82 $sql = 'SELECT post_id 83 FROM ' . POSTS_TABLE . ' 84 WHERE ' . $db->sql_in_set('forum_id', $forum_list) . ' 85 AND ' . $db->sql_in_set('post_visibility', array(ITEM_UNAPPROVED, ITEM_REAPPROVE)) . ' 86 ORDER BY post_time DESC, post_id DESC'; 87 $result = $db->sql_query_limit($sql, 5); 88 89 while ($row = $db->sql_fetchrow($result)) 90 { 91 $post_list[] = $row['post_id']; 92 } 93 $db->sql_freeresult($result); 94 95 if (empty($post_list)) 96 { 97 $total = 0; 98 } 99 } 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 its 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 123 /** 124 * Alter posts data SQL query 125 * 126 * @event core.mcp_front_view_modify_posts_data_sql 127 * @var array forum_list List of forums that contain the posts 128 * @var array forum_names Associative array with forum_id as key and its corresponding forum_name as value 129 * @var array post_list List of unapproved posts 130 * @var string sql String with the SQL query to be executed 131 * @var int total Number of unapproved posts 132 * @since 3.3.5-RC1 133 */ 134 $vars = [ 135 'forum_list', 136 'forum_names', 137 'post_list', 138 'sql', 139 'total', 140 ]; 141 extract($phpbb_dispatcher->trigger_event('core.mcp_front_view_modify_posts_data_sql', compact($vars))); 142 143 $result = $db->sql_query($sql); 144 145 while ($row = $db->sql_fetchrow($result)) 146 { 147 $unapproved_post_row = [ 148 'U_POST_DETAILS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=approve_details&p=' . $row['post_id']), 149 'U_MCP_FORUM' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=forum_view&f=' . $row['forum_id']), 150 'U_MCP_TOPIC' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=topic_view&t=' . $row['topic_id']), 151 'U_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']), 152 'U_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $row['topic_id']), 153 154 'AUTHOR_FULL' => get_username_string('full', $row['poster_id'], $row['username'], $row['user_colour']), 155 'AUTHOR' => get_username_string('username', $row['poster_id'], $row['username'], $row['user_colour']), 156 'AUTHOR_COLOUR' => get_username_string('colour', $row['poster_id'], $row['username'], $row['user_colour']), 157 'U_AUTHOR' => get_username_string('profile', $row['poster_id'], $row['username'], $row['user_colour']), 158 159 'FORUM_NAME' => $forum_names[$row['forum_id']], 160 'POST_ID' => $row['post_id'], 161 'TOPIC_TITLE' => $row['topic_title'], 162 'SUBJECT' => ($row['post_subject']) ? $row['post_subject'] : $user->lang['NO_SUBJECT'], 163 'POST_TIME' => $user->format_date($row['post_time']), 164 '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']) : '', 165 ]; 166 167 /** 168 * Alter unapproved posts template block for MCP front page 169 * 170 * @event core.mcp_front_view_modify_unapproved_post_row 171 * @var array forum_names Array containing forum names 172 * @var string mode MCP front view mode 173 * @var array row Array with unapproved post data 174 * @var array unapproved_post_row Template block array of the unapproved post 175 * @since 3.3.5-RC1 176 */ 177 $vars = [ 178 'forum_names', 179 'mode', 180 'row', 181 'unapproved_post_row', 182 ]; 183 extract($phpbb_dispatcher->trigger_event('core.mcp_front_view_modify_unapproved_post_row', compact($vars))); 184 185 $template->assign_block_vars('unapproved', $unapproved_post_row); 186 } 187 $db->sql_freeresult($result); 188 } 189 190 $s_hidden_fields = build_hidden_fields(array( 191 'redirect' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main' . (($forum_id) ? '&f=' . $forum_id : '')) 192 )); 193 194 $template->assign_vars(array( 195 'S_HIDDEN_FIELDS' => $s_hidden_fields, 196 'S_MCP_QUEUE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue"), 197 'L_UNAPPROVED_TOTAL' => $user->lang('UNAPPROVED_POSTS_TOTAL', (int) $total), 198 'S_HAS_UNAPPROVED_POSTS'=> ($total != 0), 199 )); 200 } 201 } 202 203 // Latest 5 reported 204 if ($module->loaded('reports')) 205 { 206 $forum_list = array_values(array_intersect(get_forum_list('f_read'), get_forum_list('m_report'))); 207 208 $template->assign_var('S_SHOW_REPORTS', (!empty($forum_list)) ? true : false); 209 210 if (!empty($forum_list)) 211 { 212 $sql = 'SELECT COUNT(r.report_id) AS total 213 FROM ' . REPORTS_TABLE . ' r, ' . POSTS_TABLE . ' p 214 WHERE r.post_id = p.post_id 215 AND r.pm_id = 0 216 AND r.report_closed = 0 217 AND ' . $db->sql_in_set('p.forum_id', $forum_list); 218 219 /** 220 * Alter sql query to count the number of reported posts 221 * 222 * @event core.mcp_front_reports_count_query_before 223 * @var string sql The query string used to get the number of reports that exist 224 * @var array forum_list List of forums that contain the posts 225 * @since 3.1.5-RC1 226 */ 227 $vars = array('sql', 'forum_list'); 228 extract($phpbb_dispatcher->trigger_event('core.mcp_front_reports_count_query_before', compact($vars))); 229 230 $result = $db->sql_query($sql); 231 $total = (int) $db->sql_fetchfield('total'); 232 $db->sql_freeresult($result); 233 234 if ($total) 235 { 236 $sql_ary = array( 237 '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', 238 239 'FROM' => array( 240 REPORTS_TABLE => 'r', 241 REPORTS_REASONS_TABLE => 'rr', 242 TOPICS_TABLE => 't', 243 USERS_TABLE => array('u', 'u2'), 244 POSTS_TABLE => 'p', 245 ), 246 247 'LEFT_JOIN' => array( 248 array( 249 'FROM' => array(FORUMS_TABLE => 'f'), 250 'ON' => 'f.forum_id = p.forum_id', 251 ), 252 ), 253 254 'WHERE' => 'r.post_id = p.post_id 255 AND r.pm_id = 0 256 AND r.report_closed = 0 257 AND r.reason_id = rr.reason_id 258 AND p.topic_id = t.topic_id 259 AND r.user_id = u.user_id 260 AND p.poster_id = u2.user_id 261 AND ' . $db->sql_in_set('p.forum_id', $forum_list), 262 263 'ORDER_BY' => 'p.post_time DESC, p.post_id DESC', 264 ); 265 266 /** 267 * Alter sql query to get latest reported posts 268 * 269 * @event core.mcp_front_reports_listing_query_before 270 * @var array sql_ary Associative array with the query to be executed 271 * @var array forum_list List of forums that contain the posts 272 * @since 3.1.0-RC3 273 */ 274 $vars = array('sql_ary', 'forum_list'); 275 extract($phpbb_dispatcher->trigger_event('core.mcp_front_reports_listing_query_before', compact($vars))); 276 277 $sql = $db->sql_build_query('SELECT', $sql_ary); 278 $result = $db->sql_query_limit($sql, 5); 279 280 while ($row = $db->sql_fetchrow($result)) 281 { 282 $reported_post_row = [ 283 'U_POST_DETAILS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'p=' . $row['post_id'] . "&i=reports&mode=report_details"), 284 'U_MCP_FORUM' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'f=' . $row['forum_id'] . "&i=$id&mode=forum_view"), 285 'U_MCP_TOPIC' => append_sid("{$phpbb_root_path}mcp.$phpEx", 't=' . $row['topic_id'] . "&i=$id&mode=topic_view"), 286 'U_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']), 287 'U_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $row['topic_id']), 288 289 'REPORTER_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']), 290 'REPORTER' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']), 291 'REPORTER_COLOUR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']), 292 'U_REPORTER' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']), 293 294 'AUTHOR_FULL' => get_username_string('full', $row['author_id'], $row['author_name'], $row['author_colour']), 295 'AUTHOR' => get_username_string('username', $row['author_id'], $row['author_name'], $row['author_colour']), 296 'AUTHOR_COLOUR' => get_username_string('colour', $row['author_id'], $row['author_name'], $row['author_colour']), 297 'U_AUTHOR' => get_username_string('profile', $row['author_id'], $row['author_name'], $row['author_colour']), 298 299 'FORUM_NAME' => $row['forum_name'], 300 'TOPIC_TITLE' => $row['topic_title'], 301 'SUBJECT' => ($row['post_subject']) ? $row['post_subject'] : $user->lang['NO_SUBJECT'], 302 'REPORT_TIME' => $user->format_date($row['report_time']), 303 'POST_TIME' => $user->format_date($row['post_time']), 304 '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']) : '', 305 ]; 306 307 /** 308 * Alter reported posts template block for MCP front page 309 * 310 * @event core.mcp_front_view_modify_reported_post_row 311 * @var array forum_list List of forums that contain the posts 312 * @var string mode MCP front view mode 313 * @var array reported_post_row Template block array of the reported post 314 * @var array row Array with reported post data 315 * @since 3.3.5-RC1 316 */ 317 $vars = [ 318 'forum_list', 319 'mode', 320 'reported_post_row', 321 'row', 322 ]; 323 extract($phpbb_dispatcher->trigger_event('core.mcp_front_view_modify_reported_post_row', compact($vars))); 324 325 $template->assign_block_vars('report', $reported_post_row); 326 } 327 $db->sql_freeresult($result); 328 } 329 330 $template->assign_vars(array( 331 'L_REPORTS_TOTAL' => $user->lang('REPORTS_TOTAL', (int) $total), 332 'S_HAS_REPORTS' => ($total != 0), 333 )); 334 } 335 } 336 337 // Latest 5 reported PMs 338 if ($module->loaded('pm_reports') && $auth->acl_get('m_pm_report')) 339 { 340 $template->assign_var('S_SHOW_PM_REPORTS', true); 341 $user->add_lang(array('ucp')); 342 343 $sql = 'SELECT COUNT(r.report_id) AS total 344 FROM ' . REPORTS_TABLE . ' r, ' . PRIVMSGS_TABLE . ' p 345 WHERE r.post_id = 0 346 AND r.pm_id = p.msg_id 347 AND r.report_closed = 0'; 348 $result = $db->sql_query($sql); 349 $total = (int) $db->sql_fetchfield('total'); 350 $db->sql_freeresult($result); 351 352 if ($total) 353 { 354 if (!function_exists('get_recipient_strings')) 355 { 356 include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx); 357 } 358 359 $sql_ary = array( 360 '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', 361 362 'FROM' => array( 363 REPORTS_TABLE => 'r', 364 REPORTS_REASONS_TABLE => 'rr', 365 USERS_TABLE => array('u', 'u2'), 366 PRIVMSGS_TABLE => 'p', 367 ), 368 369 'WHERE' => 'r.pm_id = p.msg_id 370 AND r.post_id = 0 371 AND r.report_closed = 0 372 AND r.reason_id = rr.reason_id 373 AND r.user_id = u.user_id 374 AND p.author_id = u2.user_id', 375 376 'ORDER_BY' => 'p.message_time DESC', 377 ); 378 $sql = $db->sql_build_query('SELECT', $sql_ary); 379 $result = $db->sql_query_limit($sql, 5); 380 381 $pm_by_id = $pm_list = array(); 382 while ($row = $db->sql_fetchrow($result)) 383 { 384 $pm_by_id[(int) $row['msg_id']] = $row; 385 $pm_list[] = (int) $row['msg_id']; 386 } 387 $db->sql_freeresult($result); 388 389 $address_list = get_recipient_strings($pm_by_id); 390 391 foreach ($pm_list as $message_id) 392 { 393 $row = $pm_by_id[$message_id]; 394 395 $template->assign_block_vars('pm_report', array( 396 'U_PM_DETAILS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'r=' . $row['report_id'] . "&i=pm_reports&mode=pm_report_details"), 397 398 'REPORTER_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']), 399 'REPORTER' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']), 400 'REPORTER_COLOUR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']), 401 'U_REPORTER' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']), 402 403 'PM_AUTHOR_FULL' => get_username_string('full', $row['author_id'], $row['author_name'], $row['author_colour']), 404 'PM_AUTHOR' => get_username_string('username', $row['author_id'], $row['author_name'], $row['author_colour']), 405 'PM_AUTHOR_COLOUR' => get_username_string('colour', $row['author_id'], $row['author_name'], $row['author_colour']), 406 'U_PM_AUTHOR' => get_username_string('profile', $row['author_id'], $row['author_name'], $row['author_colour']), 407 408 'PM_SUBJECT' => $row['message_subject'], 409 'REPORT_TIME' => $user->format_date($row['report_time']), 410 'PM_TIME' => $user->format_date($row['message_time']), 411 'RECIPIENTS' => implode(', ', $address_list[$row['msg_id']]), 412 'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $row['message_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '', 413 )); 414 } 415 } 416 417 $template->assign_vars(array( 418 'L_PM_REPORTS_TOTAL' => $user->lang('PM_REPORTS_TOTAL', (int) $total), 419 'S_HAS_PM_REPORTS' => ($total != 0), 420 )); 421 } 422 423 // Latest 5 logs 424 if ($module->loaded('logs')) 425 { 426 $forum_list = array_values(array_intersect(get_forum_list('f_read'), get_forum_list('m_'))); 427 428 if (!empty($forum_list)) 429 { 430 $log_count = false; 431 $log = array(); 432 view_log('mod', $log, $log_count, 5, 0, $forum_list); 433 434 foreach ($log as $row) 435 { 436 $template->assign_block_vars('log', array( 437 'USERNAME' => $row['username_full'], 438 'IP' => $row['ip'], 439 'TIME' => $user->format_date($row['time']), 440 'ACTION' => $row['action'], 441 'U_VIEW_TOPIC' => (!empty($row['viewtopic'])) ? $row['viewtopic'] : '', 442 'U_VIEWLOGS' => (!empty($row['viewlogs'])) ? $row['viewlogs'] : '') 443 ); 444 } 445 } 446 447 $template->assign_vars(array( 448 'S_SHOW_LOGS' => (!empty($forum_list)) ? true : false, 449 'S_HAS_LOGS' => (!empty($log)) ? true : false) 450 ); 451 } 452 453 $template->assign_var('S_MCP_ACTION', append_sid("{$phpbb_root_path}mcp.$phpEx")); 454 make_jumpbox(append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=forum_view'), 0, false, 'm_', true); 455 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Nov 25 19:05:08 2024 | Cross-referenced by PHPXref 0.7.1 |