1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-03-14 04:30:29 +01:00

Merge pull request #3303 from Nicofuma/ticket/13513

[ticket/13513] Use paths relative to the phpBB root in the router
This commit is contained in:
Marc Alexander 2015-02-26 13:41:51 +01:00
commit c9df29d680
5 changed files with 21 additions and 16 deletions

View File

@ -464,15 +464,17 @@ class manager
* All enabled and disabled extensions are considered configured. A purged
* extension that is no longer in the database is not configured.
*
* @param bool $phpbb_relative Whether the path should be relative to phpbb root
*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/
public function all_configured()
public function all_configured($phpbb_relative = true)
{
$configured = array();
foreach ($this->extensions as $name => $data)
{
$data['ext_path'] = $this->phpbb_root_path . $data['ext_path'];
$data['ext_path'] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];
$configured[$name] = $data;
}
return $configured;
@ -480,18 +482,19 @@ class manager
/**
* Retrieves all enabled extensions.
* @param bool $phpbb_relative Whether the path should be relative to phpbb root
*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/
public function all_enabled()
public function all_enabled($phpbb_relative = true)
{
$enabled = array();
foreach ($this->extensions as $name => $data)
{
if ($data['ext_active'])
{
$enabled[$name] = $this->phpbb_root_path . $data['ext_path'];
$enabled[$name] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];
}
}
return $enabled;
@ -500,17 +503,19 @@ class manager
/**
* Retrieves all disabled extensions.
*
* @param bool $phpbb_relative Whether the path should be relative to phpbb root
*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/
public function all_disabled()
public function all_disabled($phpbb_relative = true)
{
$disabled = array();
foreach ($this->extensions as $name => $data)
{
if (!$data['ext_active'])
{
$disabled[$name] = $this->phpbb_root_path . $data['ext_path'];
$disabled[$name] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];
}
}
return $disabled;

View File

@ -107,25 +107,25 @@ class router implements RouterInterface
/**
* Find the list of routing files
*
* @param array $paths Array of paths where to look for routing files.
* @param array $paths Array of paths where to look for routing files (they must be relative to the phpBB root path).
* @return router
*/
public function find_routing_files(array $paths)
{
$this->routing_files = array($this->phpbb_root_path . 'config/' . $this->environment . '/routing/environment.yml');
$this->routing_files = array('config/' . $this->environment . '/routing/environment.yml');
foreach ($paths as $path)
{
if (file_exists($path . 'config/' . $this->environment . '/routing/environment.yml'))
if (file_exists($this->phpbb_root_path . $path . 'config/' . $this->environment . '/routing/environment.yml'))
{
$this->routing_files[] = $path . 'config/' . $this->environment . '/routing/environment.yml';
}
else if (!is_dir($path . 'config/' . $this->environment))
else if (!is_dir($this->phpbb_root_path . $path . 'config/' . $this->environment))
{
if (file_exists($path . 'config/default/routing/environment.yml'))
if (file_exists($this->phpbb_root_path . $path . 'config/default/routing/environment.yml'))
{
$this->routing_files[] = $path . 'config/default/routing/environment.yml';
}
else if (!is_dir($path . 'config/default/routing') && file_exists($path . 'config/routing.yml'))
else if (!is_dir($this->phpbb_root_path . $path . 'config/default/routing') && file_exists($this->phpbb_root_path . $path . 'config/routing.yml'))
{
$this->routing_files[] = $path . 'config/routing.yml';
}
@ -165,7 +165,7 @@ class router implements RouterInterface
{
if ($this->route_collection == null || empty($this->routing_files))
{
$this->find_routing_files($this->extension_manager->all_enabled())
$this->find_routing_files($this->extension_manager->all_enabled(false))
->find($this->phpbb_root_path);
}

View File

@ -114,7 +114,7 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
);
$this->router = new phpbb_mock_router($this->extension_manager, dirname(__FILE__) . '/', 'php', PHPBB_ENVIRONMENT);
$this->router->find_routing_files($this->extension_manager->all_enabled());
$this->router->find_routing_files($this->extension_manager->all_enabled(false));
$this->router->find(dirname(__FILE__) . '/');
// Set correct current phpBB root path
$this->root_path = $this->get_phpbb_root_path();

View File

@ -41,7 +41,7 @@ class phpbb_controller_controller_test extends phpbb_test_case
public function test_router_find_files()
{
$router = new \phpbb\routing\router($this->extension_manager, dirname(__FILE__) . '/', 'php', PHPBB_ENVIRONMENT);
$router->find_routing_files($this->extension_manager->all_enabled());
$router->find_routing_files($this->extension_manager->all_enabled(false));
$routes = $router->find(__DIR__)->get_routes();
// This will need to be updated if any new routes are defined

View File

@ -39,7 +39,7 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
$router = new phpbb_mock_router($manager, dirname(__FILE__) . '/', 'php', PHPBB_ENVIRONMENT);
$router->find_routing_files($manager->all_enabled());
$router->find_routing_files($manager->all_enabled(false));
$router->find(dirname(__FILE__) . '/');
$request = new phpbb_mock_request();