diff options
| -rw-r--r-- | phpBB/adm/style/acp_styles.html | 4 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_extensions.php | 80 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_styles.php | 4 | ||||
| -rw-r--r-- | phpBB/language/en/acp/styles.php | 1 | ||||
| -rw-r--r-- | phpBB/phpbb/extension/metadata_manager.php | 72 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/bbcode.html | 4 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/theme/common.css | 8 | 
7 files changed, 99 insertions, 74 deletions
diff --git a/phpBB/adm/style/acp_styles.html b/phpBB/adm/style/acp_styles.html index a36d15fe73..43c2f96a65 100644 --- a/phpBB/adm/style/acp_styles.html +++ b/phpBB/adm/style/acp_styles.html @@ -52,6 +52,10 @@  		<dd><strong>{STYLE_PATH}</strong></dd>  	</dl>  	<dl> +		<dt><label>{L_STYLE_VERSION}{L_COLON}</label></dt> +		<dd><strong>{STYLE_VERSION}</strong></dd> +	</dl> +	<dl>  		<dt><label for="name">{L_COPYRIGHT}{L_COLON}</label></dt>  		<dd><strong>{STYLE_COPYRIGHT}</strong></dd>  	</dl> diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php index 5a2ded91e2..ef5f78d5bf 100644 --- a/phpBB/includes/acp/acp_extensions.php +++ b/phpBB/includes/acp/acp_extensions.php @@ -56,21 +56,6 @@ class acp_extensions  		$safe_time_limit = (ini_get('max_execution_time') / 2);  		$start_time = time(); -		/** -		* Event to run a specific action on extension -		* -		* @event core.acp_extensions_run_action -		* @var	string	action			Action to run -		* @var	string	u_action		Url we are at -		* @var	string	ext_name		Extension name from request -		* @var	int		safe_time_limit	Safe limit of execution time -		* @var	int		start_time		Start time -		* @since 3.1.11-RC1 -		*/ -		$u_action = $this->u_action; -		$vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time'); -		extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action', compact($vars))); -  		// Cancel action  		if ($request->is_set_post('cancel'))  		{ @@ -83,6 +68,28 @@ class acp_extensions  			trigger_error('FORM_INVALID', E_USER_WARNING);  		} +		/** +		* Event to run a specific action on extension +		* +		* @event core.acp_extensions_run_action_before +		* @var	string	action			Action to run; if the event completes execution of the action, should be set to 'none' +		* @var	string	u_action		Url we are at +		* @var	string	ext_name		Extension name from request +		* @var	int		safe_time_limit	Safe limit of execution time +		* @var	int		start_time		Start time +		* @var	string	tpl_name		Template file to load +		* @since 3.1.11-RC1 +		* @changed 3.2.1-RC1			Renamed to core.acp_extensions_run_action_before, added tpl_name, added action 'none' +		*/ +		$u_action = $this->u_action; +		$tpl_name = ''; +		$vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time', 'tpl_name'); +		extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action_before', compact($vars))); + +		// In case they have been updated by the event +		$this->u_action = $u_action; +		$this->tpl_name = $tpl_name; +  		// If they've specified an extension, let's load the metadata manager and validate it.  		if ($ext_name)  		{ @@ -101,6 +108,10 @@ class acp_extensions  		// What are we doing?  		switch ($action)  		{ +			case 'none': +				// Intentionally empty, used by extensions that execute additional actions in the prior event +				break; +  			case 'set_config_version_check_force_unstable':  				$force_unstable = $this->request->variable('force_unstable', false); @@ -141,14 +152,13 @@ class acp_extensions  			break;  			case 'enable_pre': -				if (!$md_manager->validate_dir()) +				try  				{ -					trigger_error($user->lang['EXTENSION_DIR_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING); +					$md_manager->validate_enable();  				} - -				if (!$md_manager->validate_enable()) +				catch (\phpbb\extension\exception $e)  				{ -					trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING); +					trigger_error($e . adm_back_link($this->u_action), E_USER_WARNING);  				}  				$extension = $phpbb_extension_manager->get_extension($ext_name); @@ -172,14 +182,13 @@ class acp_extensions  			break;  			case 'enable': -				if (!$md_manager->validate_dir()) +				try  				{ -					trigger_error($user->lang['EXTENSION_DIR_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING); +					$md_manager->validate_enable();  				} - -				if (!$md_manager->validate_enable()) +				catch (\phpbb\extension\exception $e)  				{ -					trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING); +					trigger_error($e . adm_back_link($this->u_action), E_USER_WARNING);  				}  				$extension = $phpbb_extension_manager->get_extension($ext_name); @@ -335,6 +344,27 @@ class acp_extensions  				$this->tpl_name = 'acp_ext_details';  			break;  		} + +		/** +		* Event to run after a specific action on extension has completed +		* +		* @event core.acp_extensions_run_action_after +		* @var	string	action			Action that has run +		* @var	string	u_action		Url we are at +		* @var	string	ext_name		Extension name from request +		* @var	int		safe_time_limit	Safe limit of execution time +		* @var	int		start_time		Start time +		* @var	string	tpl_name		Template file to load +		* @since 3.1.11-RC1 +		*/ +		$u_action = $this->u_action; +		$tpl_name = $this->tpl_name; +		$vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time', 'tpl_name'); +		extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action_after', compact($vars))); + +		// In case they have been updated by the event +		$this->u_action = $u_action; +		$this->tpl_name = $tpl_name;  	}  	/** diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php index 5181b87ecb..c29fb062d8 100644 --- a/phpBB/includes/acp/acp_styles.php +++ b/phpBB/includes/acp/acp_styles.php @@ -433,6 +433,9 @@ class acp_styles  			trigger_error($this->user->lang['NO_MATCHING_STYLES_FOUND'] . adm_back_link($this->u_action), E_USER_WARNING);  		} +		// Read style configuration file +		$style_cfg = $this->read_style_cfg($style['style_path']); +  		// Find all available parent styles  		$list = $this->find_possible_parents($styles, $id); @@ -579,6 +582,7 @@ class acp_styles  			'STYLE_ID'			=> $style['style_id'],  			'STYLE_NAME'		=> htmlspecialchars($style['style_name']),  			'STYLE_PATH'		=> htmlspecialchars($style['style_path']), +			'STYLE_VERSION'		=> htmlspecialchars($style_cfg['style_version']),  			'STYLE_COPYRIGHT'	=> strip_tags($style['style_copyright']),  			'STYLE_PARENT'		=> $style['style_parent_id'],  			'S_STYLE_ACTIVE'	=> $style['style_active'], diff --git a/phpBB/language/en/acp/styles.php b/phpBB/language/en/acp/styles.php index 0d91eb3704..9293d67ecc 100644 --- a/phpBB/language/en/acp/styles.php +++ b/phpBB/language/en/acp/styles.php @@ -81,6 +81,7 @@ $lang = array_merge($lang, array(  	'STYLE_UNINSTALL_DEPENDENT'	=> 'Style "%s" cannot be uninstalled because it has one or more child styles.',  	'STYLE_UNINSTALLED'			=> 'Style "%s" uninstalled successfully.',  	'STYLE_USED_BY'				=> 'Used by (including robots)', +	'STYLE_VERSION'				=> 'Style version',  	'UNINSTALL_DEFAULT'		=> 'You cannot uninstall the default style.', diff --git a/phpBB/phpbb/extension/metadata_manager.php b/phpBB/phpbb/extension/metadata_manager.php index 107907609b..0842c5d7ae 100644 --- a/phpBB/phpbb/extension/metadata_manager.php +++ b/phpBB/phpbb/extension/metadata_manager.php @@ -109,29 +109,18 @@ class metadata_manager  		{  			case 'all':  			default: -				// Validate the metadata -				if (!$this->validate()) -				{ -					return false; -				} - +				$this->validate();  				return $this->metadata;  			break;  			case 'version':  			case 'name': -				return ($this->validate($element)) ? $this->metadata[$element] : false; +				$this->validate($element); +				return $this->metadata[$element];  			break;  			case 'display-name': -				if (isset($this->metadata['extra']['display-name'])) -				{ -					return $this->metadata['extra']['display-name']; -				} -				else -				{ -					return ($this->validate('name')) ? $this->metadata['name'] : false; -				} +				return (isset($this->metadata['extra']['display-name'])) ? $this->metadata['extra']['display-name'] : $this->get_metadata('name');  			break;  		}  	} @@ -228,23 +217,8 @@ class metadata_manager  		switch ($name)  		{  			case 'all': -				$this->validate('display'); - -				if (!$this->validate_dir()) -				{ -					throw new \phpbb\extension\exception($this->user->lang('EXTENSION_DIR_INVALID')); -				} - -				if (!$this->validate_require_phpbb()) -				{ -					throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'soft-require')); -				} - -				if (!$this->validate_require_php()) -				{ -					throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'require php')); -				} -			break; +				$this->validate_enable(); +				// no break  			case 'display':  				foreach ($fields as $field => $data) @@ -301,40 +275,43 @@ class metadata_manager  	/**  	* This array handles the verification that this extension can be enabled on this board  	* -	* @return bool True if validation succeeded, False if failed +	* @return bool True if validation succeeded, throws an exception if invalid +	* @throws \phpbb\extension\exception  	*/  	public function validate_enable()  	{  		// Check for valid directory & phpBB, PHP versions -		if (!$this->validate_dir() || !$this->validate_require_phpbb() || !$this->validate_require_php()) -		{ -			return false; -		} - -		return true; +		return $this->validate_dir() && $this->validate_require_phpbb() && $this->validate_require_php();  	}  	/**  	* Validates the most basic directory structure to ensure it follows <vendor>/<ext> convention.  	* -	* @return boolean True when passes validation +	* @return boolean True when passes validation, throws an exception if invalid +	* @throws \phpbb\extension\exception  	*/  	public function validate_dir()  	{ -		return (substr_count($this->ext_name, '/') === 1 && $this->ext_name == $this->get_metadata('name')); +		if (substr_count($this->ext_name, '/') !== 1 || $this->ext_name != $this->get_metadata('name')) +		{ +			throw new \phpbb\extension\exception($this->user->lang('EXTENSION_DIR_INVALID')); +		} + +		return true;  	}  	/**  	* Validates the contents of the phpbb requirement field  	* -	* @return boolean True when passes validation +	* @return boolean True when passes validation, throws an exception if invalid +	* @throws \phpbb\extension\exception  	*/  	public function validate_require_phpbb()  	{  		if (!isset($this->metadata['extra']['soft-require']['phpbb/phpbb']))  		{ -			return false; +			throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'soft-require'));  		}  		return true; @@ -343,13 +320,14 @@ class metadata_manager  	/**  	* Validates the contents of the php requirement field  	* -	* @return boolean True when passes validation +	* @return boolean True when passes validation, throws an exception if invalid +	* @throws \phpbb\extension\exception  	*/  	public function validate_require_php()  	{  		if (!isset($this->metadata['require']['php']))  		{ -			return false; +			throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'require php'));  		}  		return true; @@ -372,10 +350,10 @@ class metadata_manager  			'META_LICENSE'		=> $this->metadata['license'],  			'META_REQUIRE_PHP'		=> (isset($this->metadata['require']['php'])) ? $this->metadata['require']['php'] : '', -			'META_REQUIRE_PHP_FAIL'	=> !$this->validate_require_php(), +			'META_REQUIRE_PHP_FAIL'	=> (isset($this->metadata['require']['php'])) ? false : true,  			'META_REQUIRE_PHPBB'		=> (isset($this->metadata['extra']['soft-require']['phpbb/phpbb'])) ? $this->metadata['extra']['soft-require']['phpbb/phpbb'] : '', -			'META_REQUIRE_PHPBB_FAIL'	=> !$this->validate_require_phpbb(), +			'META_REQUIRE_PHPBB_FAIL'	=> (isset($this->metadata['extra']['soft-require']['phpbb/phpbb'])) ? false : true,  			'META_DISPLAY_NAME'	=> (isset($this->metadata['extra']['display-name'])) ? $this->metadata['extra']['display-name'] : '',  		)); diff --git a/phpBB/styles/prosilver/template/bbcode.html b/phpBB/styles/prosilver/template/bbcode.html index 3e38d13a32..49bcd56945 100644 --- a/phpBB/styles/prosilver/template/bbcode.html +++ b/phpBB/styles/prosilver/template/bbcode.html @@ -18,13 +18,13 @@  <!-- BEGIN inline_attachment_open --><div class="inline-attachment"><!-- END inline_attachment_open -->  <!-- BEGIN inline_attachment_close --></div><!-- END inline_attachment_close --> -<!-- BEGIN b_open --><strong><!-- END b_open --> +<!-- BEGIN b_open --><strong class="text-strong"><!-- END b_open -->  <!-- BEGIN b_close --></strong><!-- END b_close -->  <!-- BEGIN u_open --><span style="text-decoration: underline"><!-- END u_open -->  <!-- BEGIN u_close --></span><!-- END u_close --> -<!-- BEGIN i_open --><em><!-- END i_open --> +<!-- BEGIN i_open --><em class="text-italics"><!-- END i_open -->  <!-- BEGIN i_close --></em><!-- END i_close -->  <!-- BEGIN color --><span style="color: {COLOR}">{TEXT}</span><!-- END color --> diff --git a/phpBB/styles/prosilver/theme/common.css b/phpBB/styles/prosilver/theme/common.css index 0ac7a45a23..df923aa948 100644 --- a/phpBB/styles/prosilver/theme/common.css +++ b/phpBB/styles/prosilver/theme/common.css @@ -146,10 +146,18 @@ b, strong {  	font-weight: bold;  } +.text-strong { +	font-weight: bold; +} +  i, em {  	font-style: italic;  } +.text-italics { +	font-style: italic; +} +  u {  	text-decoration: underline;  }  | 
