From 51916def9c9bc7521dea624932ca92883c751195 Mon Sep 17 00:00:00 2001 From: Tristan Darricau <tristan.darricau@sensiolabs.com> Date: Mon, 14 Sep 2015 13:55:21 +0200 Subject: [PATCH] [ticket/11150] Display extension status in "gallery" PHPBB3-11150 --- phpBB/adm/style/acp_ext_gallery.html | 11 ++++++++++- phpBB/includes/acp/acp_extensions.php | 7 ++++++- phpBB/language/en/acp/extensions.php | 3 +++ .../composer/io/translate_composer_trait.php | 16 +++++++++++++--- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/phpBB/adm/style/acp_ext_gallery.html b/phpBB/adm/style/acp_ext_gallery.html index f9cdad34ff..9ae42e2e85 100644 --- a/phpBB/adm/style/acp_ext_gallery.html +++ b/phpBB/adm/style/acp_ext_gallery.html @@ -45,7 +45,16 @@ <tr> <td> <strong>{{ extension.name }}</strong><br /> - <span><a href="{{ extension.url }}">{{ lang('DETAILS') }}</a> • <a href="{{ U_ACTION }}&action=install&extension={{ extension.composer_name|url_encode }}">{{ lang('INSTALL') }}</a></span> + <span> + <a href="{{ extension.url }}">{{ lang('DETAILS') }}</a> • + {% if extension.name in managed_extensions %} + <span style="color: #228822;">{{ lang('INSTALLED') }}</span> + {% elseif extension.name in installed_extensions -%} + <span style="color: #BC2A4D;">{{ lang('INSTALLED_MANUALLY') }}</span> (<a href="{{ U_ACTION }}&action=manage&extension={{ extension.composer_name|url_encode }}">{{ lang('MANAGE') }}</a>) + {% else -%} + <a href="{{ U_ACTION }}&action=install&extension={{ extension.composer_name|url_encode }}">{{ lang('INSTALL') }}</a> + {%- endif -%} + </span> </td> <td>{{ extension.version }}</td> <td>{{ extension.description }}</td> diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php index a23ced9daa..08a7b36f2e 100644 --- a/phpBB/includes/acp/acp_extensions.php +++ b/phpBB/includes/acp/acp_extensions.php @@ -413,6 +413,9 @@ class acp_extensions /** @var \phpbb\composer\manager $composer_manager */ $composer_manager = $phpbb_container->get('ext.composer.manager'); + /** @var \phpbb\extension\manager $extensions_manager */ + $extensions_manager = $phpbb_container->get('ext.manager'); + switch ($action) { case 'install': @@ -451,7 +454,7 @@ class acp_extensions { $message_text = $e->getPrevious()->getMessage(); if (strpos($message_text, 'ext/') === 0 && strpos($message_text, 'does not exist and could not be created.') !== false) - {dump($e->getPrevious()->getTraceAsString()); + { $message_text = $language->lang('EXTENSIONS_DIR_NOT_WRITABLE'); } $message_text .= adm_back_link($this->u_action); @@ -499,6 +502,8 @@ class acp_extensions $this->request->enable_super_globals(); $this->template->assign_var('extensions', $manager->get_available_packages()); + $this->template->assign_var('managed_extensions', array_keys($manager->get_managed_packages())); + $this->template->assign_var('installed_extensions', array_keys($extensions_manager->all_available())); $this->template->assign_var('U_ACTION', $this->u_action); $this->request->disable_super_globals(); break; diff --git a/phpBB/language/en/acp/extensions.php b/phpBB/language/en/acp/extensions.php index a94b767111..30d20839fd 100644 --- a/phpBB/language/en/acp/extensions.php +++ b/phpBB/language/en/acp/extensions.php @@ -104,6 +104,9 @@ $lang = array_merge($lang, array( 'EXTENSION_ENABLE_CONFIRM' => 'Are you sure that you wish to enable the ā%sā extension?', 'EXTENSION_FORCE_UNSTABLE_CONFIRM' => 'Are you sure that you wish to force the use of unstable version?', + 'INSTALLED' => 'Installed', + 'INSTALLED_MANUALLY' => 'Installed manually', + 'RETURN_TO_EXTENSION_LIST' => 'Return to the extension list', 'EXT_DETAILS' => 'Extension Details', diff --git a/phpBB/phpbb/composer/io/translate_composer_trait.php b/phpBB/phpbb/composer/io/translate_composer_trait.php index e76244b977..b322accafb 100644 --- a/phpBB/phpbb/composer/io/translate_composer_trait.php +++ b/phpBB/phpbb/composer/io/translate_composer_trait.php @@ -42,7 +42,7 @@ trait translate_composer_trait $parameters = []; $level = 0; - $message = trim(strip_tags($message), "\n\r"); + $message = trim($this->strip_format($message), "\n\r"); if (strpos($message, 'Deleting ') === 0) { @@ -94,7 +94,7 @@ trait translate_composer_trait $parameters = []; $level = 0; - $message = trim(strip_tags($message), "\n\r"); + $message = trim($this->strip_format($message), "\n\r"); if (strpos($message, ' Problem ') === 0) { @@ -103,7 +103,7 @@ trait translate_composer_trait continue; } - $lang_key = "\n" . $message . "\n"; + $lang_key = "\n" . htmlentities($message) . "\n"; $level = 4; } else if ($message === 'Updating dependencies') @@ -209,4 +209,14 @@ trait translate_composer_trait return $error; } + + protected function strip_format($message) + { + return str_replace([ + '<info>', '</info>', + '<warning>', '</warning>', + '<comment>', '</comment>', + '<error>', '</error>', + ], '', $message); + } }