diff options
Diffstat (limited to 'phpBB/includes/functions_acp.php')
| -rw-r--r-- | phpBB/includes/functions_acp.php | 59 | 
1 files changed, 52 insertions, 7 deletions
diff --git a/phpBB/includes/functions_acp.php b/phpBB/includes/functions_acp.php index 8453da6e6e..d9dc11239c 100644 --- a/phpBB/includes/functions_acp.php +++ b/phpBB/includes/functions_acp.php @@ -107,12 +107,31 @@ function adm_page_header($page_title)  		'S_CONTENT_FLOW_END'	=> ($user->lang['DIRECTION'] == 'ltr') ? 'right' : 'left',  	)); -	// application/xhtml+xml not used because of IE -	header('Content-type: text/html; charset=UTF-8'); +	// An array of http headers that phpbb will set. The following event may override these. +	$http_headers = array( +		// application/xhtml+xml not used because of IE +		'Content-type' => 'text/html; charset=UTF-8', +		'Cache-Control' => 'private, no-cache="set-cookie"', +		'Expires' => '0', +		'Pragma' => 'no-cache', +	); + +	/** +	* Execute code and/or overwrite _common_ template variables after they have been assigned. +	* +	* @event core.adm_page_header_after +	* @var	string	page_title			Page title +	* @var	array	http_headers			HTTP headers that should be set by phpbb +	* +	* @since 3.1.0-RC3 +	*/ +	$vars = array('page_title', 'http_headers'); +	extract($phpbb_dispatcher->trigger_event('core.adm_page_header_after', compact($vars))); -	header('Cache-Control: private, no-cache="set-cookie"'); -	header('Expires: 0'); -	header('Pragma: no-cache'); +	foreach ($http_headers as $hname => $hval) +	{ +		header((string) $hname . ': ' . (string) $hval); +	}  	return;  } @@ -149,7 +168,7 @@ function adm_page_footer($copyright_html = true)  	phpbb_check_and_display_sql_report($request, $auth, $db);  	$template->assign_vars(array( -		'DEBUG_OUTPUT'		=> phpbb_generate_debug_output($db, $config, $auth, $user), +		'DEBUG_OUTPUT'		=> phpbb_generate_debug_output($db, $config, $auth, $user, $phpbb_dispatcher),  		'TRANSLATION_INFO'	=> (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',  		'S_COPYRIGHT_HTML'	=> $copyright_html,  		'CREDIT_LINE'		=> $user->lang('POWERED_BY', '<a href="https://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Limited'), @@ -240,7 +259,6 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)  		case 'range':  		case 'search':  		case 'tel': -		case 'url':  		case 'week':  			$size = (int) $tpl_type[1];  			$maxlength = (int) $tpl_type[2]; @@ -656,3 +674,30 @@ function validate_range($value_ary, &$error)  		}  	}  } + +/** +* Inserts new config display_vars into an exisiting display_vars array +* at the given position. +* +* @param array $display_vars An array of existing config display vars +* @param array $add_config_vars An array of new config display vars +* @param array $where Where to place the new config vars, +*              before or after an exisiting config, as an array +*              of the form: array('after' => 'config_name') or +*              array('before' => 'config_name'). +* @return array The array of config display vars +*/ +function phpbb_insert_config_array($display_vars, $add_config_vars, $where) +{ +	if (is_array($where) && array_key_exists(current($where), $display_vars)) +	{ +		$position = array_search(current($where), array_keys($display_vars)) + ((key($where) == 'before') ? 0 : 1); +		$display_vars = array_merge( +			array_slice($display_vars, 0, $position), +			$add_config_vars, +			array_slice($display_vars, $position) +		); +	} + +	return $display_vars; +}  | 
