diff options
Diffstat (limited to 'phpBB/includes/functions.php')
| -rw-r--r-- | phpBB/includes/functions.php | 148 | 
1 files changed, 114 insertions, 34 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index c423e29d9d..3d0a4761f3 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2818,8 +2818,8 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa  					$user->lang[$result['error_msg']],  					($config['email_enable']) ? '<a href="' . append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=sendpassword') . '">' : '',  					($config['email_enable']) ? '</a>' : '', -					($config['board_contact']) ? '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">' : '', -					($config['board_contact']) ? '</a>' : '' +					'<a href="' . phpbb_get_board_contact_link($config, $phpbb_root_path, $phpEx) . '">', +					'</a>'  				);  			break; @@ -2830,7 +2830,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa  				// Assign admin contact to some error messages  				if ($result['error_msg'] == 'LOGIN_ERROR_USERNAME' || $result['error_msg'] == 'LOGIN_ERROR_PASSWORD')  				{ -					$err = (!$config['board_contact']) ? sprintf($user->lang[$result['error_msg']], '', '') : sprintf($user->lang[$result['error_msg']], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'); +					$err = sprintf($user->lang[$result['error_msg']], '<a href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contactadmin') . '">', '</a>');  				}  			break; @@ -2854,7 +2854,8 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa  		$s_hidden_fields['credential'] = $credential;  	} -	$auth_provider = $phpbb_container->get('auth.provider.' . $config['auth_method']); +	$provider_collection = $phpbb_container->get('auth.provider_collection'); +	$auth_provider = $provider_collection->get_provider();  	$auth_provider_data = $auth_provider->get_login_data();  	if ($auth_provider_data) @@ -4922,6 +4923,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =  		'U_SEARCH_UNREAD'		=> append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unreadposts'),  		'U_SEARCH_ACTIVE_TOPICS'=> append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=active_topics'),  		'U_DELETE_COOKIES'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=delete_cookies'), +		'U_CONTACT_US'			=> ($config['contact_admin_form_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contactadmin') : '',  		'U_TEAM'				=> ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')) ? '' : append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=team'),  		'U_TERMS_USE'			=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=terms'),  		'U_PRIVACY'				=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy'), @@ -5029,6 +5031,72 @@ function page_header($page_title = '', $display_online_list = false, $item_id =  }  /** +* Check and display the SQL report if requested. +* +* @param \phpbb\request\request_interface		$request	Request object +* @param \phpbb\auth\auth						$auth		Auth object +* @param \phpbb\db\driver\driver_interface		$db			Database connection +*/ +function phpbb_check_and_display_sql_report(\phpbb\request\request_interface $request, \phpbb\auth\auth $auth, \phpbb\db\driver\driver_interface $db) +{ +	if ($request->variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG')) +	{ +		$db->sql_report('display'); +	} +} + +/** +* Generate the debug output string +* +* @param \phpbb\db\driver\driver_interface	$db			Database connection +* @param \phpbb\config\config				$config		Config object +* @param \phpbb\auth\auth					$auth		Auth object +* @param \phpbb\user						$user		User object +* @return string +*/ +function phpbb_generate_debug_output(phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\auth\auth $auth, \phpbb\user $user) +{ +	$debug_info = array(); + +	// Output page creation time +	if (defined('PHPBB_DISPLAY_LOAD_TIME')) +	{ +		if (isset($GLOBALS['starttime'])) +		{ +			$totaltime = microtime(true) - $GLOBALS['starttime']; +			$debug_info[] = sprintf('Time: %.3fs', $totaltime); +		} + +		$debug_info[] = $db->sql_num_queries() . ' Queries (' . $db->sql_num_queries(true) . ' cached)'; + +		$memory_usage = memory_get_peak_usage(); +		if ($memory_usage) +		{ +			$memory_usage = get_formatted_filesize($memory_usage); + +			$debug_info[] = 'Peak Memory Usage: ' . $memory_usage; +		} +	} + +	if (defined('DEBUG')) +	{ +		$debug_info[] = 'GZIP: ' . (($config['gzip_compress'] && @extension_loaded('zlib')) ? 'On' : 'Off'); + +		if ($user->load) +		{ +			$debug_info[] = 'Load: ' . $user->load; +		} + +		if ($auth->acl_get('a_')) +		{ +			$debug_info[] = '<a href="' . build_url() . '&explain=1">SQL Explain</a>'; +		} +	} + +	return implode(' | ', $debug_info); +} + +/**  * Generate page footer  *  * @param bool $run_cron Whether or not to run the cron @@ -5060,37 +5128,10 @@ function page_footer($run_cron = true, $display_template = true, $exit_handler =  		return;  	} -	// Output page creation time -	if (defined('DEBUG')) -	{ -		$mtime = explode(' ', microtime()); -		$totaltime = $mtime[0] + $mtime[1] - $starttime; - -		if ($request->variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG') && method_exists($db, 'sql_report')) -		{ -			$db->sql_report('display'); -		} - -		$debug_output = sprintf('Time : %.3fs | ' . $db->sql_num_queries() . ' Queries | GZIP : ' . (($config['gzip_compress'] && @extension_loaded('zlib')) ? 'On' : 'Off') . (($user->load) ? ' | Load : ' . $user->load : ''), $totaltime); - -		if ($auth->acl_get('a_') && defined('DEBUG')) -		{ -			if (function_exists('memory_get_peak_usage')) -			{ -				if ($memory_usage = memory_get_peak_usage()) -				{ -					$memory_usage = get_formatted_filesize($memory_usage); - -					$debug_output .= ' | Peak Memory Usage: ' . $memory_usage; -				} -			} - -			$debug_output .= ' | <a href="' . build_url() . '&explain=1">Explain</a>'; -		} -	} +	phpbb_check_and_display_sql_report($request, $auth, $db);  	$template->assign_vars(array( -		'DEBUG_OUTPUT'			=> (defined('DEBUG')) ? $debug_output : '', +		'DEBUG_OUTPUT'			=> phpbb_generate_debug_output($db, $config, $auth, $user),  		'TRANSLATION_INFO'		=> (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',  		'CREDIT_LINE'			=> $user->lang('POWERED_BY', '<a href="https://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Limited'), @@ -5270,7 +5311,7 @@ function phpbb_convert_30_dbms_to_31($dbms)  	// true for mysqli class.  	// However, per the docblock any valid 3.1 driver name should be  	// recognized by this function, and have priority over 3.0 dbms. -	if (class_exists('phpbb\db\driver\\' . $dbms)) +	if (strpos($dbms, 'phpbb\db\driver') === false && class_exists('phpbb\db\driver\\' . $dbms))  	{  		return 'phpbb\db\driver\\' . $dbms;  	} @@ -5298,3 +5339,42 @@ function phpbb_convert_30_dbms_to_31($dbms)  	throw new \RuntimeException("You have specified an invalid dbms driver: $dbms");  } + +/** +* Get the board contact details (e.g. for emails) +* +* @param \phpbb\config\config	$config +* @param string					$phpEx +* @return string +*/ +function phpbb_get_board_contact(\phpbb\config\config $config, $phpEx) +{ +	if ($config['contact_admin_form_enable']) +	{ +		return generate_board_url() . '/memberlist.' . $phpEx . '?mode=contactadmin'; +	} +	else +	{ +		return $config['board_contact']; +	} +} + +/** +* Get a clickable board contact details link +* +* @param \phpbb\config\config	$config +* @param string					$phpbb_root_path +* @param string					$phpEx +* @return string +*/ +function phpbb_get_board_contact_link(\phpbb\config\config $config, $phpbb_root_path, $phpEx) +{ +	if ($config['contact_admin_form_enable']) +	{ +		return append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contactadmin'); +	} +	else +	{ +		return 'mailto:' . htmlspecialchars($config['board_contact']); +	} +}  | 
