From bf2aca6f8ba7d7bce649d83a188d599b2ba20d25 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Sat, 29 Mar 2014 10:47:09 -0700 Subject: [PATCH 1/3] [ticket/12043] Sort Extensions by Display Name in ACP Extension mananger PHPBB3-12043 --- phpBB/includes/acp/acp_extensions.php | 33 ++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php index 2ff479d824..40accf7347 100644 --- a/phpBB/includes/acp/acp_extensions.php +++ b/phpBB/includes/acp/acp_extensions.php @@ -241,14 +241,23 @@ class acp_extensions */ public function list_enabled_exts(\phpbb\extension\manager $phpbb_extension_manager) { + $enabled_extension_meta_data = array(); + foreach ($phpbb_extension_manager->all_enabled() as $name => $location) { $md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name, $this->template); + $enabled_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); + } + + natcasesort($enabled_extension_meta_data); + + foreach ($enabled_extension_meta_data as $name => $display_name) + { try { $this->template->assign_block_vars('enabled', array( - 'META_DISPLAY_NAME' => $md_manager->get_metadata('display-name'), + 'META_DISPLAY_NAME' => $display_name, 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), )); @@ -274,14 +283,23 @@ class acp_extensions */ public function list_disabled_exts(\phpbb\extension\manager $phpbb_extension_manager) { + $disabled_extension_meta_data = array(); + foreach ($phpbb_extension_manager->all_disabled() as $name => $location) { $md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name, $this->template); + $disabled_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); + } + + natcasesort($disabled_extension_meta_data); + + foreach ($disabled_extension_meta_data as $name => $display_name) + { try { $this->template->assign_block_vars('disabled', array( - 'META_DISPLAY_NAME' => $md_manager->get_metadata('display-name'), + 'META_DISPLAY_NAME' => $display_name, 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), )); @@ -310,14 +328,23 @@ class acp_extensions { $uninstalled = array_diff_key($phpbb_extension_manager->all_available(), $phpbb_extension_manager->all_configured()); + $available_extension_meta_data = array(); + foreach ($uninstalled as $name => $location) { $md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name, $this->template); + $available_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); + } + + natcasesort($available_extension_meta_data); + + foreach ($available_extension_meta_data as $name => $display_name) + { try { $this->template->assign_block_vars('disabled', array( - 'META_DISPLAY_NAME' => $md_manager->get_metadata('display-name'), + 'META_DISPLAY_NAME' => $display_name, 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), )); From 2024c5adc2f817e6d276655aff840f1fd4f0ca0f Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Sat, 29 Mar 2014 11:09:27 -0700 Subject: [PATCH 2/3] [ticket/12043] Correct try/catch exceptions for invalid extensions PHPBB3-12043 --- phpBB/includes/acp/acp_extensions.php | 98 +++++++++++++-------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php index 40accf7347..1de6987624 100644 --- a/phpBB/includes/acp/acp_extensions.php +++ b/phpBB/includes/acp/acp_extensions.php @@ -247,24 +247,9 @@ class acp_extensions { $md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name, $this->template); - $enabled_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); - } - - natcasesort($enabled_extension_meta_data); - - foreach ($enabled_extension_meta_data as $name => $display_name) - { try { - $this->template->assign_block_vars('enabled', array( - 'META_DISPLAY_NAME' => $display_name, - - 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), - )); - - $this->output_actions('enabled', array( - 'DISABLE' => $this->u_action . '&action=disable_pre&ext_name=' . urlencode($name), - )); + $enabled_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); } catch(\phpbb\extension\exception $e) { @@ -273,6 +258,21 @@ class acp_extensions )); } } + + natcasesort($enabled_extension_meta_data); + + foreach ($enabled_extension_meta_data as $name => $display_name) + { + $this->template->assign_block_vars('enabled', array( + 'META_DISPLAY_NAME' => $display_name, + + 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), + )); + + $this->output_actions('enabled', array( + 'DISABLE' => $this->u_action . '&action=disable_pre&ext_name=' . urlencode($name), + )); + } } /** @@ -289,25 +289,9 @@ class acp_extensions { $md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name, $this->template); - $disabled_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); - } - - natcasesort($disabled_extension_meta_data); - - foreach ($disabled_extension_meta_data as $name => $display_name) - { try { - $this->template->assign_block_vars('disabled', array( - 'META_DISPLAY_NAME' => $display_name, - - 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), - )); - - $this->output_actions('disabled', array( - 'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name), - 'DELETE_DATA' => $this->u_action . '&action=delete_data_pre&ext_name=' . urlencode($name), - )); + $disabled_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); } catch(\phpbb\extension\exception $e) { @@ -316,6 +300,22 @@ class acp_extensions )); } } + + natcasesort($disabled_extension_meta_data); + + foreach ($disabled_extension_meta_data as $name => $display_name) + { + $this->template->assign_block_vars('disabled', array( + 'META_DISPLAY_NAME' => $display_name, + + 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), + )); + + $this->output_actions('disabled', array( + 'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name), + 'DELETE_DATA' => $this->u_action . '&action=delete_data_pre&ext_name=' . urlencode($name), + )); + } } /** @@ -334,24 +334,9 @@ class acp_extensions { $md_manager = $phpbb_extension_manager->create_extension_metadata_manager($name, $this->template); - $available_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); - } - - natcasesort($available_extension_meta_data); - - foreach ($available_extension_meta_data as $name => $display_name) - { try { - $this->template->assign_block_vars('disabled', array( - 'META_DISPLAY_NAME' => $display_name, - - 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), - )); - - $this->output_actions('disabled', array( - 'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name), - )); + $available_extension_meta_data[$name] = $md_manager->get_metadata('display-name'); } catch(\phpbb\extension\exception $e) { @@ -360,6 +345,21 @@ class acp_extensions )); } } + + natcasesort($available_extension_meta_data); + + foreach ($available_extension_meta_data as $name => $display_name) + { + $this->template->assign_block_vars('disabled', array( + 'META_DISPLAY_NAME' => $display_name, + + 'U_DETAILS' => $this->u_action . '&action=details&ext_name=' . urlencode($name), + )); + + $this->output_actions('disabled', array( + 'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name), + )); + } } /** From c674de6a32b89c6b8647907dd7036e5c1ad5184b Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Sat, 29 Mar 2014 13:35:08 -0700 Subject: [PATCH 3/3] [ticket/12043] Fix order of disabled extensions in unit tests PHPBB3-12043 --- tests/functional/extension_acp_test.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/functional/extension_acp_test.php b/tests/functional/extension_acp_test.php index 1d79043eae..5f02158e20 100644 --- a/tests/functional/extension_acp_test.php +++ b/tests/functional/extension_acp_test.php @@ -85,14 +85,14 @@ class phpbb_functional_extension_acp_test extends phpbb_functional_test_case $this->assertContains('phpBB Foo Extension', $crawler->filter('.ext_enabled')->eq(0)->text()); $this->assertContainsLang('EXTENSION_DISABLE', $crawler->filter('.ext_enabled')->eq(0)->text()); - $this->assertContains('phpBB Moo Extension', $crawler->filter('.ext_disabled')->eq(1)->text()); - $this->assertContainsLang('DETAILS', $crawler->filter('.ext_disabled')->eq(1)->text()); - $this->assertContainsLang('EXTENSION_ENABLE', $crawler->filter('.ext_disabled')->eq(1)->text()); - $this->assertContainsLang('EXTENSION_DELETE_DATA', $crawler->filter('.ext_disabled')->eq(1)->text()); + $this->assertContains('phpBB Moo Extension', $crawler->filter('.ext_disabled')->eq(2)->text()); + $this->assertContainsLang('DETAILS', $crawler->filter('.ext_disabled')->eq(2)->text()); + $this->assertContainsLang('EXTENSION_ENABLE', $crawler->filter('.ext_disabled')->eq(2)->text()); + $this->assertContainsLang('EXTENSION_DELETE_DATA', $crawler->filter('.ext_disabled')->eq(2)->text()); $this->assertContains('The “vendor/test2” extension is not valid.', $crawler->filter('.ext_disabled')->eq(0)->text()); - $this->assertContains('The “vendor/test3” extension is not valid.', $crawler->filter('.ext_disabled')->eq(2)->text()); + $this->assertContains('The “vendor/test3” extension is not valid.', $crawler->filter('.ext_disabled')->eq(1)->text()); $this->assertContains('phpBB Bar Extension', $crawler->filter('.ext_disabled')->eq(3)->text()); $this->assertContainsLang('DETAILS', $crawler->filter('.ext_disabled')->eq(3)->text());