diff options
Diffstat (limited to 'phpBB/includes/acp/acp_board.php')
| -rw-r--r-- | phpBB/includes/acp/acp_board.php | 58 | 
1 files changed, 57 insertions, 1 deletions
| diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 12e2a1bf72..8f2548166b 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -328,6 +328,7 @@ class acp_board  						'session_length'	=> array('lang' => 'SESSION_LENGTH',	'validate' => 'int:60:9999999999',	'type' => 'number:60:9999999999', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),  						'active_sessions'	=> array('lang' => 'LIMIT_SESSIONS',	'validate' => 'int:0:9999',	'type' => 'number:0:9999', 'explain' => true),  						'load_online_time'	=> array('lang' => 'ONLINE_LENGTH',		'validate' => 'int:0:999',	'type' => 'number:0:999', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']), +						'read_notification_expire_days'	=> array('lang' => 'READ_NOTIFICATION_EXPIRE_DAYS',	'validate' => 'int:0',	'type' => 'number:0', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),  						'legend2'				=> 'GENERAL_OPTIONS',  						'load_notifications'	=> array('lang' => 'LOAD_NOTIFICATIONS',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), @@ -375,6 +376,7 @@ class acp_board  						'use_system_cron'		=> array('lang' => 'USE_SYSTEM_CRON',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),  						'legend2'				=> 'PATH_SETTINGS', +						'enable_mod_rewrite'	=> array('lang' => 'MOD_REWRITE_ENABLE',	'validate' => 'bool',	'type' => 'custom', 'method' => 'enable_mod_rewrite', 'explain' => true),  						'smilies_path'			=> array('lang' => 'SMILIES_PATH',		'validate' => 'rpath',	'type' => 'text:20:255', 'explain' => true),  						'icons_path'			=> array('lang' => 'ICONS_PATH',		'validate' => 'rpath',	'type' => 'text:20:255', 'explain' => true),  						'upload_icons_path'		=> array('lang' => 'UPLOAD_ICONS_PATH',	'validate' => 'rpath',	'type' => 'text:20:255', 'explain' => true), @@ -658,6 +660,13 @@ class acp_board  				$auth_tpl = $provider->get_acp_template($this->new_config);  				if ($auth_tpl)  				{ +					if (array_key_exists('BLOCK_VAR_NAME', $auth_tpl)) +					{ +						foreach ($auth_tpl['BLOCK_VARS'] as $block_vars) +						{ +							$template->assign_block_vars($auth_tpl['BLOCK_VAR_NAME'], $block_vars); +						} +					}  					$template->assign_vars($auth_tpl['TEMPLATE_VARS']);  					$template->assign_block_vars('auth_tpl', array(  						'TEMPLATE_FILE'	=> $auth_tpl['TEMPLATE_FILE'], @@ -679,7 +688,7 @@ class acp_board  		foreach ($auth_providers as $key => $value)  		{ -			if (!($value instanceof phpbb_auth_provider_interface)) +			if (!($value instanceof \phpbb\auth\provider\provider_interface))  			{  				continue;  			} @@ -994,4 +1003,51 @@ class acp_board  		$cache->destroy('sql', FORUMS_TABLE);  	} +	/** +	* Option to enable/disable removal of 'app.php' from URLs +	* +	* Note that if mod_rewrite is on, URLs without app.php will still work, +	* but any paths generated by the controller helper url() method will not +	* contain app.php. +	* +	* @param int $value The current config value +	* @param string $key The config key +	* @return string The HTML for the form field +	*/ +	function enable_mod_rewrite($value, $key) +	{ +		global $user, $config; + +		// Determine whether mod_rewrite is enabled on the server +		// NOTE: This only works on Apache servers on which PHP is NOT +		// installed as CGI. In that case, there is no way for PHP to +		// determine whether or not the Apache module is enabled. +		// +		// To be clear on the value of $mod_rewite: +		// null = Cannot determine whether or not the server has mod_rewrite +		//        enabled +		// false = Can determine that the server does NOT have mod_rewrite +		//         enabled +		// true = Can determine that the server DOES have mod_rewrite_enabled +		$mod_rewrite = null; +		if (function_exists('apache_get_modules')) +		{ +			$mod_rewrite = (bool) in_array('mod_rewrite', apache_get_modules()); +		} + +		// If $message is false, mod_rewrite is enabled. +		// Otherwise, it is not and we need to: +		// 1) disable the form field +		// 2) make sure the config value is set to 0 +		// 3) append the message to the return +		$value = ($mod_rewrite === false) ? 0 : $value; +		$message = $mod_rewrite === null ? 'MOD_REWRITE_INFORMATION_UNAVAILABLE' : ($mod_rewrite === false ? 'MOD_REWRITE_DISABLED' : false); + +		// Let's do some friendly HTML injection if we want to disable the +		// form field because h_radio() has no pretty way of doing so +		$field_name = 'config[enable_mod_rewrite]' . ($message === 'MOD_REWRITE_DISABLED' ? '" disabled="disabled' : ''); + +		return h_radio($field_name, array(1 => 'YES', 0 => 'NO'), $value) . +			($message !== false ? '<br /><span>' . $user->lang($message) . '</span>' : ''); +	}  } | 
