diff options
| -rw-r--r-- | phpBB/download/file.php | 10 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_forums.php | 6 | ||||
| -rw-r--r-- | phpBB/includes/auth/auth_ldap.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/functions.php | 45 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_pm_viewfolder.php | 26 | ||||
| -rw-r--r-- | phpBB/language/en/common.php | 2 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/ucp_pm_viewfolder.html | 2 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/ucp_pm_message_footer.html | 1 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html | 3 | 
9 files changed, 81 insertions, 16 deletions
diff --git a/phpBB/download/file.php b/phpBB/download/file.php index 00b8e2e656..2154847865 100644 --- a/phpBB/download/file.php +++ b/phpBB/download/file.php @@ -670,15 +670,7 @@ function set_modified_headers($stamp, $browser)  	{  		if ($last_load !== false && $last_load >= $stamp)  		{ -			if (substr(strtolower(@php_sapi_name()),0,3) === 'cgi') -			{ -				// in theory, we shouldn't need that due to php doing it. Reality offers a differing opinion, though -				header('Status: 304 Not Modified', true, 304); -			} -			else -			{ -				header('HTTP/1.0 304 Not Modified', true, 304); -			} +			send_status_line(304, 'Not Modified');  			// seems that we need those too ... browsers  			header('Pragma: public');  			header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 31536000)); diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php index 541a514bef..6261f866bb 100644 --- a/phpBB/includes/acp/acp_forums.php +++ b/phpBB/includes/acp/acp_forums.php @@ -190,12 +190,14 @@ class acp_forums  						$forum_perm_from = request_var('forum_perm_from', 0);  						$cache->destroy('sql', FORUMS_TABLE); +						$copied_permissions = false;  						// Copy permissions?  						if ($forum_perm_from && $forum_perm_from != $forum_data['forum_id'] &&  							($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))))  						{  							copy_forum_permissions($forum_perm_from, $forum_data['forum_id'], ($action == 'edit') ? true : false);  							cache_moderators(); +							$copied_permissions = true;  						}  /* Commented out because of questionable UI workflow - re-visit for 3.0.7  						else if (!$this->parent_id && $action != 'edit' && $auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth')) @@ -211,13 +213,13 @@ class acp_forums  						$message = ($action == 'add') ? $user->lang['FORUM_CREATED'] : $user->lang['FORUM_UPDATED'];  						// Redirect to permissions -						if ($auth->acl_get('a_fauth')) +						if ($auth->acl_get('a_fauth') && !$copied_permissions)  						{  							$message .= '<br /><br />' . sprintf($user->lang['REDIRECT_ACL'], '<a href="' . append_sid("{$phpbb_admin_path}index.$phpEx", 'i=permissions' . $acl_url) . '">', '</a>');  						}  						// redirect directly to permission settings screen if authed -						if ($action == 'add' && !$forum_perm_from && $auth->acl_get('a_fauth')) +						if ($action == 'add' && !$copied_permissions && $auth->acl_get('a_fauth'))  						{  							meta_refresh(4, append_sid("{$phpbb_admin_path}index.$phpEx", 'i=permissions' . $acl_url));  						} diff --git a/phpBB/includes/auth/auth_ldap.php b/phpBB/includes/auth/auth_ldap.php index a6092baba5..e8c957aaa3 100644 --- a/phpBB/includes/auth/auth_ldap.php +++ b/phpBB/includes/auth/auth_ldap.php @@ -74,7 +74,7 @@ function init_ldap()  	if ($search === false)  	{ -		return $user->lang['LDAP_NO_SERVER_CONNECTION']; +		return $user->lang['LDAP_SEARCH_FAILED'];  	}  	$result = @ldap_get_entries($ldap, $search); diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index cd8447a2a3..3e80f93114 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2578,6 +2578,47 @@ function meta_refresh($time, $url, $disable_cd_check = false)  	return $url;  } +/** +* Outputs correct status line header. +* +* Depending on php sapi one of the two following forms is used: +* +* Status: 404 Not Found +* +* HTTP/1.x 404 Not Found +* +* HTTP version is taken from HTTP_VERSION environment variable, +* and defaults to 1.0. +* +* Sample usage: +* +* send_status_line(404, 'Not Found'); +* +* @param int $code HTTP status code +* @param string $message Message for the status code +* @return void +*/ +function send_status_line($code, $message) +{ +	if (substr(strtolower(@php_sapi_name()), 0, 3) === 'cgi') +	{ +		// in theory, we shouldn't need that due to php doing it. Reality offers a differing opinion, though +		header("Status: $code $message", true, $code); +	} +	else +	{ +		if (isset($_SERVER['HTTP_VERSION'])) +		{ +			$version = $_SERVER['HTTP_VERSION']; +		} +		else +		{ +			$version = 'HTTP/1.0'; +		} +		header("$version $code $message", true, $code); +	} +} +  //Form validation @@ -3621,9 +3662,9 @@ function msg_handler($errno, $msg_text, $errfile, $errline)  				$user->setup();  			} -			if ($msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER') +			if ($msg_text == 'ERROR_NO_ATTACHMENT' || $msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER')  			{ -				header("HTTP/1.x 404 Not Found"); +				send_status_line(404, 'Not Found');  			}  			$msg_text = (!empty($user->lang[$msg_text])) ? $user->lang[$msg_text] : $msg_text; diff --git a/phpBB/includes/ucp/ucp_pm_viewfolder.php b/phpBB/includes/ucp/ucp_pm_viewfolder.php index 665dd2c83f..6b7172ca2b 100644 --- a/phpBB/includes/ucp/ucp_pm_viewfolder.php +++ b/phpBB/includes/ucp/ucp_pm_viewfolder.php @@ -170,10 +170,12 @@ function view_folder($id, $mode, $folder_id, $folder)  					'ATTACH_ICON_IMG'	=> ($auth->acl_get('u_pm_download') && $row['message_attachment'] && $config['allow_pm_attach']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',  					'S_PM_DELETED'		=> ($row['pm_deleted']) ? true : false, +					'S_PM_REPORTED'		=> (isset($row['report_id'])) ? true : false,  					'S_AUTHOR_DELETED'	=> ($row['author_id'] == ANONYMOUS) ? true : false,  					'U_VIEW_PM'			=> ($row['pm_deleted']) ? '' : $view_message_url,  					'U_REMOVE_PM'		=> ($row['pm_deleted']) ? $remove_message_url : '', +					'U_MCP_REPORT'		=> (isset($row['report_id'])) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=pm_reports&mode=pm_report_details&r=' . $row['report_id']) : '',  					'RECIPIENTS'		=> ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX) ? implode(', ', $address_list[$message_id]) : '')  				);  			} @@ -183,6 +185,7 @@ function view_folder($id, $mode, $folder_id, $folder)  				'S_SHOW_RECIPIENTS'		=> ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX) ? true : false,  				'S_SHOW_COLOUR_LEGEND'	=> true, +				'REPORTED_IMG'			=> $user->img('icon_topic_reported', 'PM_REPORTED'),  				'S_PM_ICONS'			=> ($config['enable_pm_icons']) ? true : false)  			);  		} @@ -502,7 +505,7 @@ function get_pm_from($folder_id, $folder, $user_id)  		$sql_sort_order = $sort_by_sql[$sort_key] . ' ' . $direction;  	} -	$sql = 'SELECT t.*, p.root_level, p.message_time, p.message_subject, p.icon_id, p.to_address, p.message_attachment, p.bcc_address, u.username, u.username_clean, u.user_colour +	$sql = 'SELECT t.*, p.root_level, p.message_time, p.message_subject, p.icon_id, p.to_address, p.message_attachment, p.bcc_address, u.username, u.username_clean, u.user_colour, p.message_reported  		FROM ' . PRIVMSGS_TO_TABLE . ' t, ' . PRIVMSGS_TABLE . ' p, ' . USERS_TABLE . " u  		WHERE t.user_id = $user_id  			AND p.author_id = u.user_id @@ -512,13 +515,34 @@ function get_pm_from($folder_id, $folder, $user_id)  		ORDER BY $sql_sort_order";  	$result = $db->sql_query_limit($sql, $sql_limit, $sql_start); +	$pm_reported = array();  	while ($row = $db->sql_fetchrow($result))  	{  		$rowset[$row['msg_id']] = $row;  		$pm_list[] = $row['msg_id']; +		if ($row['message_reported']) +		{ +			$pm_reported[] = $row['msg_id']; +		}  	}  	$db->sql_freeresult($result); +	// Fetch the report_ids, if there are any reported pms. +	if (!empty($pm_reported) && $auth->acl_getf_global('m_report')) +	{ +		$sql = 'SELECT pm_id, report_id +			FROM ' . REPORTS_TABLE . ' +			WHERE report_closed = 0 +				AND ' . $db->sql_in_set('pm_id', $pm_reported); +		$result = $db->sql_query($sql); + +		while ($row = $db->sql_fetchrow($result)) +		{ +			$rowset[$row['pm_id']]['report_id'] = $row['report_id']; +		} +		$db->sql_freeresult($result); +	} +  	$pm_list = ($store_reverse) ? array_reverse($pm_list) : $pm_list;  	return array( diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index a3d47b5b59..03986c0361 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -295,6 +295,7 @@ $lang = array_merge($lang, array(  	'LAST_VISIT'						=> 'Last visit',  	'LDAP_NO_LDAP_EXTENSION'			=> 'LDAP extension not available.',  	'LDAP_NO_SERVER_CONNECTION'			=> 'Could not connect to LDAP server.', +	'LDAP_SEARCH_FAILED'				=> 'An error occured while searching the LDAP directory.',  	'LEGEND'							=> 'Legend',  	'LOCATION'							=> 'Location',  	'LOCK_POST'							=> 'Lock post', @@ -420,6 +421,7 @@ $lang = array_merge($lang, array(  	'PIXEL'					=> 'px',  	'PLAY_QUICKTIME_FILE'	=> 'Play Quicktime file',  	'PM'					=> 'PM', +	'PM_REPORTED'			=> 'Click to view report',  	'POSTING_MESSAGE'		=> 'Posting message in %s',  	'POSTING_PRIVATE_MESSAGE'	=> 'Composing private message',  	'POST'					=> 'Post', diff --git a/phpBB/styles/prosilver/template/ucp_pm_viewfolder.html b/phpBB/styles/prosilver/template/ucp_pm_viewfolder.html index 7b309a74f7..d7e02e405e 100644 --- a/phpBB/styles/prosilver/template/ucp_pm_viewfolder.html +++ b/phpBB/styles/prosilver/template/ucp_pm_viewfolder.html @@ -71,7 +71,7 @@  							<br /><em class="small">{L_PM_FROM_REMOVED_AUTHOR}</em>  						<!-- ENDIF --> -						<!-- IF messagerow.S_TOPIC_REPORTED --><a href="{messagerow.U_MCP_REPORT}">{REPORTED_IMG}</a><!-- ENDIF --> {messagerow.ATTACH_ICON_IMG}<br /> +						<!-- IF messagerow.S_PM_REPORTED --><a href="{messagerow.U_MCP_REPORT}">{REPORTED_IMG}</a><!-- ENDIF --> {messagerow.ATTACH_ICON_IMG}<br />  						<!-- IF S_SHOW_RECIPIENTS -->{L_MESSAGE_TO} {messagerow.RECIPIENTS}<!-- ELSE -->{L_MESSAGE_BY_AUTHOR} {messagerow.MESSAGE_AUTHOR_FULL} » {messagerow.SENT_TIME}<!-- ENDIF -->  					</dt>  					<!-- IF S_SHOW_RECIPIENTS --><dd class="info"><span>{L_SENT_AT}: {messagerow.SENT_TIME}</span></dd><!-- ENDIF --> diff --git a/phpBB/styles/subsilver2/template/ucp_pm_message_footer.html b/phpBB/styles/subsilver2/template/ucp_pm_message_footer.html index 314d03caf3..d1ef5ebd10 100644 --- a/phpBB/styles/subsilver2/template/ucp_pm_message_footer.html +++ b/phpBB/styles/subsilver2/template/ucp_pm_message_footer.html @@ -14,6 +14,7 @@  					<span class="gensmall">  						<!-- IF U_PRINT_PM --><a href="{U_PRINT_PM}" title="{L_PRINT_PM}">{L_PRINT_PM}</a><!-- IF U_FORWARD_PM --> | <!-- ENDIF --><!-- ENDIF -->  						<!-- IF U_FORWARD_PM --><a href="{U_FORWARD_PM}" title="{L_FORWARD_PM}">{L_FORWARD_PM}</a><!-- ENDIF --> +						<!-- IF U_POST_REPLY_PM and S_PM_RECIPIENTS gt 1 --><!-- IF U_PRINT_PM or U_FORWARD_PM --> | <!-- ENDIF --><a title="{L_REPLY_TO_ALL}" href="{U_POST_REPLY_ALL}">{L_REPLY_TO_ALL}</a><!-- ENDIF -->  					</span>  				<!-- ENDIF -->  			</td> diff --git a/phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html b/phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html index 1663502865..f0b076edb2 100644 --- a/phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html +++ b/phpBB/styles/subsilver2/template/ucp_pm_viewfolder.html @@ -81,6 +81,9 @@  				<!-- ELSE -->  					<a href="{messagerow.U_VIEW_PM}">{messagerow.SUBJECT}</a>  				<!-- ENDIF --> +				<!-- IF messagerow.S_PM_REPORTED --> +					<a href="{messagerow.U_MCP_REPORT}">{REPORTED_IMG}</a>  +				<!-- ENDIF -->  				<!-- IF messagerow.S_AUTHOR_DELETED -->  					<br /><em class="gensmall">{L_PM_FROM_REMOVED_AUTHOR}</em>  				<!-- ENDIF -->  | 
