1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-08 09:46:46 +02:00

[ticket/15257] Provide extension not enableable messages

PHPBB3-15257
This commit is contained in:
Jakub Senko
2019-03-27 12:09:55 +01:00
committed by Marc Alexander
parent b6c230753e
commit 975fe1e153
7 changed files with 70 additions and 13 deletions

View File

@@ -172,10 +172,8 @@ class acp_extensions
}
$extension = $this->ext_manager->get_extension($ext_name);
if (!$extension->is_enableable())
{
trigger_error($this->user->lang['EXTENSION_NOT_ENABLEABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
}
$this->check_is_enableable($extension->is_enableable());
if ($this->ext_manager->is_enabled($ext_name))
{
@@ -209,10 +207,8 @@ class acp_extensions
}
$extension = $this->ext_manager->get_extension($ext_name);
if (!$extension->is_enableable())
{
trigger_error($this->user->lang['EXTENSION_NOT_ENABLEABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
}
$this->check_is_enableable($extension->is_enableable());
try
{
@@ -727,4 +723,14 @@ class acp_extensions
));
}
}
protected function check_is_enableable($enableable)
{
if ($enableable !== true)
{
$message = !empty($enableable) ? $enableable : $this->user->lang('EXTENSION_NOT_ENABLEABLE');
$message = is_array($message) ? implode('<br />', $message) : $message;
trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING);
}
}
}

View File

@@ -69,7 +69,10 @@ class enable extends command
}
else
{
$io->error($this->user->lang('CLI_EXTENSION_ENABLE_FAILURE', $name));
$enableable = $this->manager->get_extension($name)->is_enableable();
$message = !empty($enableable) ? $enableable : $this->user->lang('CLI_EXTENSION_ENABLE_FAILURE');
$message = is_array($message) ? implode(PHP_EOL, $message) : $message;
$io->error($message, $name);
return 1;
}
}

View File

@@ -22,7 +22,8 @@ interface extension_interface
/**
* Indicate whether or not the extension can be enabled.
*
* @return bool
* @return bool|array True if extension is enableable, array of reasons
* if not, false for generic reason.
*/
public function is_enableable();