diff options
Diffstat (limited to 'phpBB')
| -rw-r--r-- | phpBB/includes/acp/acp_bbcodes.php | 10 | ||||
| -rw-r--r-- | phpBB/phpbb/textformatter/acp_utils_interface.php | 26 | ||||
| -rw-r--r-- | phpBB/phpbb/textformatter/s9e/acp_utils.php | 6 | 
3 files changed, 29 insertions, 13 deletions
diff --git a/phpBB/includes/acp/acp_bbcodes.php b/phpBB/includes/acp/acp_bbcodes.php index 9583f9a869..84dbbf02ba 100644 --- a/phpBB/includes/acp/acp_bbcodes.php +++ b/phpBB/includes/acp/acp_bbcodes.php @@ -174,15 +174,15 @@ class acp_bbcodes  				$acp_utils   = $phpbb_container->get('text_formatter.acp_utils');  				$bbcode_info = $acp_utils->analyse_bbcode($bbcode_match, $bbcode_tpl); -				$warn_unsafe = ($bbcode_info['status'] === 'unsafe'); +				$warn_unsafe = ($bbcode_info['status'] === $acp_utils::BBCODE_STATUS_UNSAFE); -				if ($bbcode_info['status'] === 'invalid_definition') +				if ($bbcode_info['status'] === $acp_utils::BBCODE_STATUS_INVALID_TEMPLATE)  				{ -					trigger_error($user->lang['BBCODE_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING); +					trigger_error($user->lang['BBCODE_INVALID_TEMPLATE'] . adm_back_link($this->u_action), E_USER_WARNING);  				} -				if ($bbcode_info['status'] === 'invalid_template') +				if ($bbcode_info['status'] === $acp_utils::BBCODE_STATUS_INVALID_DEFINITION)  				{ -					trigger_error($user->lang['BBCODE_INVALID_TEMPLATE'] . adm_back_link($this->u_action), E_USER_WARNING); +					trigger_error($user->lang['BBCODE_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);  				}  				if (!$warn_unsafe && !check_form_key($form_key)) diff --git a/phpBB/phpbb/textformatter/acp_utils_interface.php b/phpBB/phpbb/textformatter/acp_utils_interface.php index d1e3de9989..cdee56f19d 100644 --- a/phpBB/phpbb/textformatter/acp_utils_interface.php +++ b/phpBB/phpbb/textformatter/acp_utils_interface.php @@ -16,14 +16,30 @@ namespace phpbb\textformatter;  interface acp_utils_interface  {  	/** +	* There is an issue with the definition +	*/ +	const BBCODE_STATUS_INVALID_DEFINITION = 'invalid_definition'; + +	/** +	* There is an issue with the template +	*/ +	const BBCODE_STATUS_INVALID_TEMPLATE = 'invalid_template'; + +	/** +	* The BBCode is valid and can be safely used by anyone +	*/ +	const BBCODE_STATUS_SAFE = 'safe'; + +	/** +	* The BBCode is valid but may be unsafe to use +	*/ +	const BBCODE_STATUS_UNSAFE = 'unsafe'; + +	/**  	* Analyse given BBCode definition for issues and safeness  	*  	* Required elements in the return array: -	*  - status: -	*    - "safe"               The BBCode is valid and can be safely used by anyone. -	*    - "unsafe"             The BBCode is valid but may be unsafe to use. -	*    - "invalid_definition" There is an issue with the definition. -	*    - "invalid_template"   There is an issue with the template. +	*  - status: see BBCODE_STATUS_* constants  	*  	* Optional elements in the return array:  	*  - name:       Name of the BBCode based on the definition. Required if status is "safe". diff --git a/phpBB/phpbb/textformatter/s9e/acp_utils.php b/phpBB/phpbb/textformatter/s9e/acp_utils.php index 981fa60813..c4a668020e 100644 --- a/phpBB/phpbb/textformatter/s9e/acp_utils.php +++ b/phpBB/phpbb/textformatter/s9e/acp_utils.php @@ -37,7 +37,7 @@ class acp_utils implements acp_utils_interface  	public function analyse_bbcode(string $definition, string $template): array  	{  		$configurator = $this->factory->get_configurator(); -		$return       = ['status' => 'safe']; +		$return       = ['status' => self::BBCODE_STATUS_SAFE];  		// Capture and normalize the BBCode name manually because there's no easy way to retrieve  		// it in TextFormatter <= 2.x @@ -52,13 +52,13 @@ class acp_utils implements acp_utils_interface  		}  		catch (UnsafeTemplateException $e)  		{ -			$return['status']     = 'unsafe'; +			$return['status']     = self::BBCODE_STATUS_UNSAFE;  			$return['error_text'] = $e->getMessage();  			$return['error_html'] = $e->highlightNode('<span class="highlight">');  		}  		catch (\Exception $e)  		{ -			$return['status']     = (preg_match('(xml|xpath|xsl)i', $e->getMessage())) ? 'invalid_template' : 'invalid_definition'; +			$return['status']     = (preg_match('(xml|xpath|xsl)i', $e->getMessage())) ? self::BBCODE_STATUS_INVALID_TEMPLATE : self::BBCODE_STATUS_INVALID_DEFINITION;  			$return['error_text'] = $e->getMessage();  		}  | 
