diff --git a/phpBB/includes/functions_module.php b/phpBB/includes/functions_module.php index 80477684a8..b33f3d6866 100644 --- a/phpBB/includes/functions_module.php +++ b/phpBB/includes/functions_module.php @@ -499,12 +499,12 @@ class p_master * the style paths for the extension (the ext author can change them * if necessary). */ - $module_dir = explode('_', get_class($this->module)); + $module_dir = explode('\\', get_class($this->module)); - // 0 phpbb, 1 ext, 2 vendor, 3 extension name, ... - if (isset($module_dir[3]) && $module_dir[1] === 'ext') + // 0 vendor, 1 extension name, ... + if (isset($module_dir[1])) { - $module_style_dir = $phpbb_root_path . 'ext/' . $module_dir[2] . '/' . $module_dir[3] . '/adm/style'; + $module_style_dir = $phpbb_root_path . 'ext/' . $module_dir[0] . '/' . $module_dir[1] . '/adm/style'; if (is_dir($module_style_dir)) { @@ -973,7 +973,7 @@ class p_master */ protected function get_short_name($basename) { - if (substr($basename, 0, 6) === 'phpbb_') + if (substr($basename, 0, 6) === 'phpbb\\' || strpos($basename, '\\') !== false) { return $basename; } @@ -990,6 +990,6 @@ class p_master */ protected function is_full_class($basename) { - return (preg_match('/^(phpbb|ucp|mcp|acp)_/', $basename)); + return (strpos($basename, '\\') !== false || preg_match('/^(ucp|mcp|acp)_/', $basename)); } } diff --git a/tests/functional/extension_module_test.php b/tests/functional/extension_module_test.php index 0c9e0b1654..090cd38daf 100644 --- a/tests/functional/extension_module_test.php +++ b/tests/functional/extension_module_test.php @@ -90,7 +90,7 @@ class phpbb_functional_extension_module_test extends phpbb_functional_test_case { $this->login(); $this->admin_login(); - $crawler = self::request('GET', 'adm/index.php?i=foo\\bar\\acp\\main_module&mode=mode&sid=' . $this->sid); + $crawler = self::request('GET', 'adm/index.php?i=foo%5cbar%5cacp%5cmain_module&mode=mode&sid=' . $this->sid); $this->assertContains("Bertie rulez!", $crawler->filter('#main')->text()); $this->phpbb_extension_manager->purge('foo/bar'); }