diff options
Diffstat (limited to 'phpBB/includes/functions_privmsgs.php')
| -rw-r--r-- | phpBB/includes/functions_privmsgs.php | 39 | 
1 files changed, 33 insertions, 6 deletions
| diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php index baadf5bdee..fe2308ec29 100644 --- a/phpBB/includes/functions_privmsgs.php +++ b/phpBB/includes/functions_privmsgs.php @@ -1985,9 +1985,16 @@ function message_history($msg_id, $user_id, $message_row, $folder, $in_post_mode  	$recipients = array_unique($recipients);  	// Get History Messages (could be newer) -	$sql = 'SELECT t.*, p.*, u.* -		FROM ' . PRIVMSGS_TABLE . ' p, ' . PRIVMSGS_TO_TABLE . ' t, ' . USERS_TABLE . ' u -		WHERE t.msg_id = p.msg_id +	$sql_array = array( +		'SELECT'	=> 'SELECT t.*, p.*, u.*', +		'FROM'		=> array( +			PRIVMSGS_TABLE		=> 'p', +			PRIVMSGS_TO_TABLE	=> 't', +			USERS_TABLE			=> 'u' +		) +	); +	 +	$sql_where = 't.msg_id = p.msg_id  			AND p.author_id = u.user_id  			AND t.folder_id NOT IN (' . PRIVMSGS_NO_BOX . ', ' . PRIVMSGS_HOLD_BOX . ')  			AND ' . $db->sql_in_set('t.author_id', $recipients, false, true) . " @@ -1998,14 +2005,34 @@ function message_history($msg_id, $user_id, $message_row, $folder, $in_post_mode  	if (!$message_row['root_level'])  	{ -		$sql .= " AND (p.root_level = $msg_id OR (p.root_level = 0 AND p.msg_id = $msg_id))"; +		$sql_where .= " AND (p.root_level = $msg_id OR (p.root_level = 0 AND p.msg_id = $msg_id))";  	}  	else  	{ -		$sql .= " AND (p.root_level = " . $message_row['root_level'] . ' OR p.msg_id = ' . $message_row['root_level'] . ')'; +		$sql_where .= " AND (p.root_level = " . $message_row['root_level'] . ' OR p.msg_id = ' . $message_row['root_level'] . ')';  	} -	$sql .= ' ORDER BY p.message_time DESC'; +	$sql_ary = array( +		'SELECT'	=> $sql_array['SELECT'], +		'FROM'		=> $sql_array['FROM'], +		'LEFT_JOIN'	=> array(), + +		'WHERE'		=> $sql_where, + +		'ORDER_BY'	=> 'p.message_time DESC', +	); + +	/** +	* Event to modify the SQL query before the message history in private message is queried +	* +	* @event core.message_history_modify_sql_ary +	* @var	array	sql_ary		The SQL array to get the data of the message history in private message +	* @since 3.2.8-RC1 +	*/ +	$vars = array('sql_ary'); +	extract($phpbb_dispatcher->trigger_event('core.message_history_modify_sql_ary', compact($vars))); + +	$sql = $db->sql_build_query('SELECT', $sql_ary);  	$result = $db->sql_query($sql);  	$row = $db->sql_fetchrow($result); | 
