1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-03-13 20:28:44 +01:00

Merge remote-tracking branch 'vsephpbb/ticket/12043' into develop-ascraeus

* vsephpbb/ticket/12043:
  [ticket/12043] Fix order of disabled extensions in unit tests
  [ticket/12043] Correct try/catch exceptions for invalid extensions
  [ticket/12043] Sort Extensions by Display Name in ACP Extension mananger
This commit is contained in:
Joas Schilling 2014-04-03 15:06:28 +02:00
commit b567c0a9e2
2 changed files with 60 additions and 33 deletions

View File

@ -241,21 +241,15 @@ 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);
try
{
$this->template->assign_block_vars('enabled', array(
'META_DISPLAY_NAME' => $md_manager->get_metadata('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)
{
@ -264,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),
));
}
}
/**
@ -274,22 +283,15 @@ 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);
try
{
$this->template->assign_block_vars('disabled', array(
'META_DISPLAY_NAME' => $md_manager->get_metadata('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)
{
@ -298,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),
));
}
}
/**
@ -310,21 +328,15 @@ 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);
try
{
$this->template->assign_block_vars('disabled', array(
'META_DISPLAY_NAME' => $md_manager->get_metadata('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)
{
@ -333,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),
));
}
}
/**

View File

@ -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());