[ticket/15257] Improve readability of check_is_enableable

PHPBB3-15257
This commit is contained in:
Marc Alexander 2019-09-30 21:21:50 +02:00
parent d7c644a792
commit e54aa94e77
No known key found for this signature in database
GPG key ID: 50E0D2423696F995

View file

@ -173,7 +173,7 @@ class acp_extensions
$extension = $this->ext_manager->get_extension($ext_name); $extension = $this->ext_manager->get_extension($ext_name);
$this->check_is_enableable($extension->is_enableable()); $this->check_is_enableable($extension);
if ($this->ext_manager->is_enabled($ext_name)) if ($this->ext_manager->is_enabled($ext_name))
{ {
@ -208,7 +208,7 @@ class acp_extensions
$extension = $this->ext_manager->get_extension($ext_name); $extension = $this->ext_manager->get_extension($ext_name);
$this->check_is_enableable($extension->is_enableable()); $this->check_is_enableable($extension);
try try
{ {
@ -728,15 +728,22 @@ class acp_extensions
* Checks whether the extension can be enabled. Triggers error if not. * Checks whether the extension can be enabled. Triggers error if not.
* Error message can be set by the extension. * Error message can be set by the extension.
* *
* @param bool|array $enableable True if extension is enableable, array of reasons * @param \phpbb\extension\extension_interface $extension Extension to check
* if not, false for generic reason.
*/ */
protected function check_is_enableable($enableable) protected function check_is_enableable(\phpbb\extension\extension_interface $extension)
{ {
if ($enableable !== true) $message = $extension->is_enableable();
if ($message !== true)
{ {
$message = !empty($enableable) ? $enableable : $this->user->lang('EXTENSION_NOT_ENABLEABLE'); if (empty($message))
$message = is_array($message) ? implode('<br />', $message) : $message; {
$message = $this->user->lang('EXTENSION_NOT_ENABLEABLE');
}
else if (is_array($message))
{
$message = implode('<br>', $message);
}
trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING); trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING);
} }
} }