diff options
Diffstat (limited to 'phpBB/includes/mcp/mcp_reports.php')
| -rw-r--r-- | phpBB/includes/mcp/mcp_reports.php | 102 | 
1 files changed, 43 insertions, 59 deletions
| diff --git a/phpBB/includes/mcp/mcp_reports.php b/phpBB/includes/mcp/mcp_reports.php index def5422be2..0a600d7057 100644 --- a/phpBB/includes/mcp/mcp_reports.php +++ b/phpBB/includes/mcp/mcp_reports.php @@ -2,9 +2,8 @@  /**  *  * @package mcp -* @version $Id$  * @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2  *  */ @@ -34,7 +33,7 @@ class mcp_reports  	function main($id, $mode)  	{  		global $auth, $db, $user, $template, $cache; -		global $config, $phpbb_root_path, $phpEx, $action; +		global $config, $phpbb_root_path, $phpEx, $action, $phpbb_container;  		include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx); @@ -72,7 +71,7 @@ class mcp_reports  				// closed reports are accessed by report id  				$report_id = request_var('r', 0); -				$sql = 'SELECT r.post_id, r.user_id, r.report_id, r.report_closed, report_time, r.report_text, rr.reason_title, rr.reason_description, u.username, u.username_clean, u.user_colour +				$sql = 'SELECT r.post_id, r.user_id, r.report_id, r.report_closed, report_time, r.report_text, r.reported_post_text, r.reported_post_uid, r.reported_post_bitfield, r.reported_post_enable_magic_url, r.reported_post_enable_smilies, r.reported_post_enable_bbcode, rr.reason_title, rr.reason_description, u.username, u.username_clean, u.user_colour  					FROM ' . REPORTS_TABLE . ' r, ' . REPORTS_REASONS_TABLE . ' rr, ' . USERS_TABLE . ' u  					WHERE ' . (($report_id) ? 'r.report_id = ' . $report_id : "r.post_id = $post_id") . '  						AND rr.reason_id = r.reason_id @@ -88,6 +87,10 @@ class mcp_reports  					trigger_error('NO_REPORT');  				} +				$phpbb_notifications = $phpbb_container->get('notification_manager'); + +				$phpbb_notifications->mark_notifications_read('report_post', $post_id, $user->data['user_id']); +  				if (!$report_id && $report['report_closed'])  				{  					trigger_error('REPORT_CLOSED'); @@ -95,6 +98,10 @@ class mcp_reports  				$post_id = $report['post_id'];  				$report_id = $report['report_id']; +				 +				$parse_post_flags = $report['reported_post_enable_bbcode'] ? OPTION_FLAG_BBCODE : 0; +				$parse_post_flags += $report['reported_post_enable_smilies'] ? OPTION_FLAG_SMILIES : 0; +				$parse_post_flags += $report['reported_post_enable_magic_url'] ? OPTION_FLAG_LINKS : 0;   				$post_info = get_post_data(array($post_id), 'm_report', true); @@ -117,8 +124,9 @@ class mcp_reports  					$template->assign_vars(array(  						'S_TOPIC_REVIEW'	=> true,  						'S_BBCODE_ALLOWED'	=> $post_info['enable_bbcode'], -						'TOPIC_TITLE'		=> $post_info['topic_title']) -					); +						'TOPIC_TITLE'		=> $post_info['topic_title'], +						'REPORTED_POST_ID'	=> $post_id, +					));  				}  				$topic_tracking_info = $extensions = $attachments = array(); @@ -136,18 +144,7 @@ class mcp_reports  				$post_unread = (isset($topic_tracking_info[$post_info['topic_id']]) && $post_info['post_time'] > $topic_tracking_info[$post_info['topic_id']]) ? true : false; -				// Process message, leave it uncensored -				$message = $post_info['post_text']; - -				if ($post_info['bbcode_bitfield']) -				{ -					include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx); -					$bbcode = new bbcode($post_info['bbcode_bitfield']); -					$bbcode->bbcode_second_pass($message, $post_info['bbcode_uid'], $post_info['bbcode_bitfield']); -				} -				$message = bbcode_nl2br($message); -				$message = smiley_text($message);  				$report['report_text'] = make_clickable(bbcode_nl2br($report['report_text']));  				if ($post_info['post_attachment'] && $auth->acl_get('u_download') && $auth->acl_get('f_download', $post_info['forum_id'])) @@ -168,7 +165,7 @@ class mcp_reports  					if (sizeof($attachments))  					{  						$update_count = array(); -						parse_attachments($post_info['forum_id'], $message, $attachments, $update_count); +						parse_attachments($post_info['forum_id'], $report['reported_post_text'], $attachments, $update_count);  					}  					// Display not already displayed Attachments for this post, we already parsed them. ;) @@ -227,7 +224,7 @@ class mcp_reports  					'REPORTER_NAME'				=> get_username_string('username', $report['user_id'], $report['username'], $report['user_colour']),  					'U_VIEW_REPORTER_PROFILE'	=> get_username_string('profile', $report['user_id'], $report['username'], $report['user_colour']), -					'POST_PREVIEW'			=> $message, +					'POST_PREVIEW'			=> generate_text_for_display($report['reported_post_text'], $report['reported_post_uid'], $report['reported_post_bitfield'], $parse_post_flags, false),  					'POST_SUBJECT'			=> ($post_info['post_subject']) ? $post_info['post_subject'] : $user->lang['NO_SUBJECT'],  					'POST_DATE'				=> $user->format_date($post_info['post_time']),  					'POST_IP'				=> $post_info['poster_ip'], @@ -313,7 +310,6 @@ class mcp_reports  					$forum_info = $forum_info[$forum_id];  					$forum_list = array($forum_id); -					$global_id = $forum_id;  				}  				$forum_list[] = 0; @@ -369,7 +365,7 @@ class mcp_reports  				if (sizeof($report_ids))  				{ -					$sql = 'SELECT t.forum_id, t.topic_id, t.topic_title, p.post_id, p.post_subject, p.post_username, p.poster_id, p.post_time, u.username, u.username_clean, u.user_colour, r.user_id as reporter_id, ru.username as reporter_name, ru.user_colour as reporter_colour, r.report_time, r.report_id +					$sql = 'SELECT t.forum_id, t.topic_id, t.topic_title, p.post_id, p.post_subject, p.post_username, p.poster_id, p.post_time, p.post_attachment, u.username, u.username_clean, u.user_colour, r.user_id as reporter_id, ru.username as reporter_name, ru.user_colour as reporter_colour, r.report_time, r.report_id  						FROM ' . REPORTS_TABLE . ' r, ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . USERS_TABLE . ' u, ' . USERS_TABLE . ' ru  						WHERE ' . $db->sql_in_set('r.report_id', $report_ids) . '  							AND t.topic_id = p.topic_id @@ -383,14 +379,8 @@ class mcp_reports  					$report_data = $rowset = array();  					while ($row = $db->sql_fetchrow($result))  					{ -						$global_topic = ($row['forum_id']) ? false : true; -						if ($global_topic) -						{ -							$row['forum_id'] = $global_id; -						} -  						$template->assign_block_vars('postrow', array( -							'U_VIEWFORUM'				=> (!$global_topic) ? append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']) : '', +							'U_VIEWFORUM'				=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']),  							'U_VIEWPOST'				=> append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&p=' . $row['post_id']) . '#p' . $row['post_id'],  							'U_VIEW_DETAILS'			=> append_sid("{$phpbb_root_path}mcp.$phpEx", "i=reports&start=$start&mode=report_details&f={$row['forum_id']}&r={$row['report_id']}"), @@ -404,19 +394,23 @@ class mcp_reports  							'REPORTER'				=> get_username_string('username', $row['reporter_id'], $row['reporter_name'], $row['reporter_colour']),  							'U_REPORTER'			=> get_username_string('profile', $row['reporter_id'], $row['reporter_name'], $row['reporter_colour']), -							'FORUM_NAME'	=> (!$global_topic) ? $forum_data[$row['forum_id']]['forum_name'] : $user->lang['GLOBAL_ANNOUNCEMENT'], +							'FORUM_NAME'	=> $forum_data[$row['forum_id']]['forum_name'],  							'POST_ID'		=> $row['post_id'],  							'POST_SUBJECT'	=> ($row['post_subject']) ? $row['post_subject'] : $user->lang['NO_SUBJECT'],  							'POST_TIME'		=> $user->format_date($row['post_time']),  							'REPORT_ID'		=> $row['report_id'],  							'REPORT_TIME'	=> $user->format_date($row['report_time']), -							'TOPIC_TITLE'	=> $row['topic_title']) -						); +							'TOPIC_TITLE'	=> $row['topic_title'], +							'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']) : '', +						));  					}  					$db->sql_freeresult($result);  					unset($report_ids, $row);  				} +				$base_url = $this->u_action . "&f=$forum_id&t=$topic_id&st=$sort_days&sk=$sort_key&sd=$sort_dir"; +				phpbb_generate_template_pagination($template, $base_url, 'pagination', 'start', $total, $config['topics_per_page'], $start); +  				// Now display the page  				$template->assign_vars(array(  					'L_EXPLAIN'				=> ($mode == 'reports') ? $user->lang['MCP_REPORTS_OPEN_EXPLAIN'] : $user->lang['MCP_REPORTS_CLOSED_EXPLAIN'], @@ -427,11 +421,10 @@ class mcp_reports  					'S_FORUM_OPTIONS'		=> $forum_options,  					'S_CLOSED'				=> ($mode == 'reports_closed') ? true : false, -					'PAGINATION'			=> generate_pagination($this->u_action . "&f=$forum_id&t=$topic_id&st=$sort_days&sk=$sort_key&sd=$sort_dir", $total, $config['topics_per_page'], $start), -					'PAGE_NUMBER'			=> on_page($total, $config['topics_per_page'], $start), +					'PAGE_NUMBER'			=> phpbb_on_page($template, $user, $base_url, $total, $config['topics_per_page'], $start),  					'TOPIC_ID'				=> $topic_id,  					'TOTAL'					=> $total, -					'TOTAL_REPORTS'			=> ($total == 1) ? $user->lang['LIST_REPORT'] : sprintf($user->lang['LIST_REPORTS'], $total), +					'TOTAL_REPORTS'			=> $user->lang('LIST_REPORTS', (int) $total),  					)  				); @@ -447,7 +440,7 @@ class mcp_reports  function close_report($report_id_list, $mode, $action, $pm = false)  {  	global $db, $template, $user, $config, $auth; -	global $phpEx, $phpbb_root_path; +	global $phpEx, $phpbb_root_path, $phpbb_container;  	$pm_where = ($pm) ? ' AND r.post_id = 0 ' : ' AND r.pm_id = 0 ';  	$id_column = ($pm) ? 'pm_id' : 'post_id'; @@ -633,11 +626,11 @@ function close_report($report_id_list, $mode, $action, $pm = false)  			}  		} -		$messenger = new messenger(); -  		// Notify reporters  		if (sizeof($notify_reporters))  		{ +			$phpbb_notifications = $phpbb_container->get('notification_manager'); +  			foreach ($notify_reporters as $report_id => $reporter)  			{  				if ($reporter['user_id'] == ANONYMOUS) @@ -647,30 +640,25 @@ function close_report($report_id_list, $mode, $action, $pm = false)  				$post_id = $reporter[$id_column]; -				$messenger->template((($pm) ? 'pm_report_' : 'report_') . $action . 'd', $reporter['user_lang']); - -				$messenger->to($reporter['user_email'], $reporter['username']); -				$messenger->im($reporter['user_jabber'], $reporter['username']); -  				if ($pm)  				{ -					$messenger->assign_vars(array( -						'USERNAME'		=> htmlspecialchars_decode($reporter['username']), -						'CLOSER_NAME'	=> htmlspecialchars_decode($user->data['username']), -						'PM_SUBJECT'	=> htmlspecialchars_decode(censor_text($post_info[$post_id]['message_subject'])), -					)); +					$phpbb_notifications->add_notifications('report_pm_closed', array_merge($post_info[$post_id], array( +						'reporter'			=> $reporter['user_id'], +						'closer_id'			=> $user->data['user_id'], +						'from_user_id'		=> $post_info[$post_id]['author_id'], +					))); + +					$phpbb_notifications->delete_notifications('report_pm', $post_id);  				}  				else  				{ -					$messenger->assign_vars(array( -						'USERNAME'		=> htmlspecialchars_decode($reporter['username']), -						'CLOSER_NAME'	=> htmlspecialchars_decode($user->data['username']), -						'POST_SUBJECT'	=> htmlspecialchars_decode(censor_text($post_info[$post_id]['post_subject'])), -						'TOPIC_TITLE'	=> htmlspecialchars_decode(censor_text($post_info[$post_id]['topic_title']))) -					); -				} +					$phpbb_notifications->add_notifications('report_post_closed', array_merge($post_info[$post_id], array( +						'reporter'			=> $reporter['user_id'], +						'closer_id'			=> $user->data['user_id'], +					))); -				$messenger->send($reporter['user_notify_type']); +					$phpbb_notifications->delete_notifications('report_post', $post_id); +				}  			}  		} @@ -685,8 +673,6 @@ function close_report($report_id_list, $mode, $action, $pm = false)  		unset($notify_reporters, $post_info, $reports); -		$messenger->save_queue(); -  		$success_msg = (sizeof($report_id_list) == 1) ? "{$pm_prefix}REPORT_" . strtoupper($action) . 'D_SUCCESS' : "{$pm_prefix}REPORTS_" . strtoupper($action) . 'D_SUCCESS';  	}  	else @@ -724,5 +710,3 @@ function close_report($report_id_list, $mode, $action, $pm = false)  		trigger_error($user->lang[$success_msg] . '<br /><br />' . $return_forum . $return_topic . sprintf($user->lang['RETURN_PAGE'], "<a href=\"$redirect\">", '</a>'));  	}  } - -?>
\ No newline at end of file | 
