diff options
Diffstat (limited to 'phpBB/includes/mcp/mcp_post.php')
| -rw-r--r-- | phpBB/includes/mcp/mcp_post.php | 85 | 
1 files changed, 53 insertions, 32 deletions
| diff --git a/phpBB/includes/mcp/mcp_post.php b/phpBB/includes/mcp/mcp_post.php index df5dc27996..1687409198 100644 --- a/phpBB/includes/mcp/mcp_post.php +++ b/phpBB/includes/mcp/mcp_post.php @@ -1,10 +1,13 @@  <?php  /**  * -* @package mcp -* @version $Id$ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file.  *  */ @@ -30,7 +33,7 @@ function mcp_post_details($id, $mode, $action)  	$start	= request_var('start', 0);  	// Get post data -	$post_info = get_post_data(array($post_id), false, true); +	$post_info = phpbb_get_post_data(array($post_id), false, true);  	add_form_key('mcp_post_details'); @@ -40,7 +43,7 @@ function mcp_post_details($id, $mode, $action)  	}  	$post_info = $post_info[$post_id]; -	$url = append_sid("{$phpbb_root_path}mcp.$phpEx?" . extra_url()); +	$url = append_sid("{$phpbb_root_path}mcp.$phpEx?" . phpbb_extra_url());  	switch ($action)  	{ @@ -126,17 +129,8 @@ function mcp_post_details($id, $mode, $action)  	$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); +	$parse_flags = ($post_info['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES; +	$message = generate_text_for_display($post_info['post_text'], $post_info['bbcode_uid'], $post_info['bbcode_bitfield'], $parse_flags, false);  	if ($post_info['post_attachment'] && $auth->acl_get('u_download') && $auth->acl_get('f_download', $post_info['forum_id']))  	{ @@ -176,6 +170,33 @@ function mcp_post_details($id, $mode, $action)  		}  	} +	// Deleting information +	if ($post_info['post_visibility'] == ITEM_DELETED && $post_info['post_delete_user']) +	{ +		// User having deleted the post also being the post author? +		if (!$post_info['post_delete_user'] || $post_info['post_delete_user'] == $post_info['poster_id']) +		{ +			$display_username = get_username_string('full', $post_info['poster_id'], $post_info['username'], $post_info['user_colour'], $post_info['post_username']); +		} +		else +		{ +			$sql = 'SELECT user_id, username, user_colour +				FROM ' . USERS_TABLE . ' +				WHERE user_id = ' . (int) $post_info['post_delete_user']; +			$result = $db->sql_query($sql); +			$user_delete_row = $db->sql_fetchrow($result); +			$db->sql_freeresult($result); +			$display_username = get_username_string('full', $post_info['post_delete_user'], $user_delete_row['username'], $user_delete_row['user_colour']); +		} + +		$user->add_lang('viewtopic'); +		$l_deleted_by = $user->lang('DELETED_INFORMATION', $display_username, $user->format_date($post_info['post_delete_time'], false, true)); +	} +	else +	{ +		$l_deleted_by = ''; +	} +  	$template->assign_vars(array(  		'U_MCP_ACTION'			=> "$url&i=main&quickmod=1&mode=post_details", // Use this for mode paramaters  		'U_POST_ACTION'			=> "$url&i=$id&mode=post_details", // Use this for action parameters @@ -187,10 +208,13 @@ function mcp_post_details($id, $mode, $action)  		'S_CAN_DELETE_POST'		=> $auth->acl_get('m_delete', $post_info['forum_id']),  		'S_POST_REPORTED'		=> ($post_info['post_reported']) ? true : false, -		'S_POST_UNAPPROVED'		=> (!$post_info['post_approved']) ? true : false, +		'S_POST_UNAPPROVED'		=> ($post_info['post_visibility'] == ITEM_UNAPPROVED || $post_info['post_visibility'] == ITEM_REAPPROVE) ? true : false, +		'S_POST_DELETED'		=> ($post_info['post_visibility'] == ITEM_DELETED) ? true : false,  		'S_POST_LOCKED'			=> ($post_info['post_edit_locked']) ? true : false,  		'S_USER_NOTES'			=> true,  		'S_CLEAR_ALLOWED'		=> ($auth->acl_get('a_clearlogs')) ? true : false, +		'DELETED_MESSAGE'		=> $l_deleted_by, +		'DELETE_REASON'			=> $post_info['post_delete_reason'],  		'U_EDIT'				=> ($auth->acl_get('m_edit', $post_info['forum_id'])) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=edit&f={$post_info['forum_id']}&p={$post_info['post_id']}") : '',  		'U_FIND_USERNAME'		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=mcp_chgposter&field=username&select_single=true'), @@ -207,6 +231,7 @@ function mcp_post_details($id, $mode, $action)  		'RETURN_FORUM'			=> sprintf($user->lang['RETURN_FORUM'], '<a href="' . append_sid("{$phpbb_root_path}viewforum.$phpEx", "f={$post_info['forum_id']}&start={$start}") . '">', '</a>'),  		'REPORTED_IMG'			=> $user->img('icon_topic_reported', $user->lang['POST_REPORTED']),  		'UNAPPROVED_IMG'		=> $user->img('icon_topic_unapproved', $user->lang['POST_UNAPPROVED']), +		'DELETED_IMG'			=> $user->img('icon_topic_deleted', $user->lang['POST_DELETED']),  		'EDIT_IMG'				=> $user->img('icon_post_edit', $user->lang['EDIT_POST']),  		'SEARCH_IMG'			=> $user->img('icon_user_search', $user->lang['SEARCH']), @@ -274,8 +299,8 @@ function mcp_post_details($id, $mode, $action)  					'REPORT_ID'		=> $row['report_id'],  					'REASON_TITLE'	=> $row['reason_title'],  					'REASON_DESC'	=> $row['reason_description'], -					'REPORTER'		=> ($row['user_id'] != ANONYMOUS) ? $row['username'] : $user->lang['GUEST'], -					'U_REPORTER'	=> ($row['user_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['user_id']) : '', +					'REPORTER'		=> get_username_string('username', $row['user_id'], $row['username']), +					'U_REPORTER'	=> get_username_string('profile', $row['user_id'], $row['username']),  					'USER_NOTIFY'	=> ($row['user_notify']) ? true : false,  					'REPORT_TIME'	=> $user->format_date($row['report_time']),  					'REPORT_TEXT'	=> bbcode_nl2br(trim($row['report_text'])), @@ -334,11 +359,11 @@ function mcp_post_details($id, $mode, $action)  			foreach ($users_ary as $user_id => $user_row)  			{  				$template->assign_block_vars('userrow', array( -					'USERNAME'		=> ($user_id == ANONYMOUS) ? $user->lang['GUEST'] : $user_row['username'], +					'USERNAME'		=> get_username_string('username', $user_id, $user_row['username']),  					'NUM_POSTS'		=> $user_row['postings'],  					'L_POST_S'		=> ($user_row['postings'] == 1) ? $user->lang['POST'] : $user->lang['POSTS'], -					'U_PROFILE'		=> ($user_id == ANONYMOUS) ? '' : append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $user_id), +					'U_PROFILE'		=> get_username_string('profile', $user_id, $user_row['username']),  					'U_SEARCHPOSTS' => append_sid("{$phpbb_root_path}search.$phpEx", 'author_id=' . $user_id . '&sr=topics'))  				);  			} @@ -395,7 +420,7 @@ function mcp_post_details($id, $mode, $action)  */  function change_poster(&$post_info, $userdata)  { -	global $auth, $db, $config, $phpbb_root_path, $phpEx; +	global $auth, $db, $config, $phpbb_root_path, $phpEx, $user;  	if (empty($userdata) || $userdata['user_id'] == $post_info['user_id'])  	{ @@ -417,7 +442,7 @@ function change_poster(&$post_info, $userdata)  	}  	// Adjust post counts... only if the post is approved (else, it was not added the users post count anyway) -	if ($post_info['post_postcount'] && $post_info['post_approved']) +	if ($post_info['post_postcount'] && $post_info['post_visibility'] == ITEM_APPROVED)  	{  		$sql = 'UPDATE ' . USERS_TABLE . '  			SET user_posts = user_posts - 1 @@ -466,15 +491,13 @@ function change_poster(&$post_info, $userdata)  	}  	// refresh search cache of this post -	$search_type = basename($config['search_type']); +	$search_type = $config['search_type']; -	if (file_exists($phpbb_root_path . 'includes/search/' . $search_type . '.' . $phpEx)) +	if (class_exists($search_type))  	{ -		require("{$phpbb_root_path}includes/search/$search_type.$phpEx"); -  		// We do some additional checks in the module to ensure it can actually be utilised  		$error = false; -		$search = new $search_type($error); +		$search = new $search_type($error, $phpbb_root_path, $phpEx, $auth, $config, $db, $user);  		if (!$error && method_exists($search, 'destroy_cache'))  		{ @@ -486,7 +509,7 @@ function change_poster(&$post_info, $userdata)  	$to_username = $userdata['username'];  	// Renew post info -	$post_info = get_post_data(array($post_id), false, true); +	$post_info = phpbb_get_post_data(array($post_id), false, true);  	if (!sizeof($post_info))  	{ @@ -498,5 +521,3 @@ function change_poster(&$post_info, $userdata)  	// Now add log entry  	add_log('mod', $post_info['forum_id'], $post_info['topic_id'], 'LOG_MCP_CHANGE_POSTER', $post_info['topic_title'], $from_username, $to_username);  } - -?>
\ No newline at end of file | 
