diff --git a/module/VuFindTheme/Module.php b/module/VuFindTheme/Module.php index 6c900e455a946f30c54c5aecfb137762e9ed068e..15c58f47cc26b3d87568136b34e8bca46a2d20ee 100644 --- a/module/VuFindTheme/Module.php +++ b/module/VuFindTheme/Module.php @@ -89,12 +89,15 @@ class Module { return [ 'factories' => [ - 'headLink' => 'VuFindTheme\View\Helper\Factory::getHeadLink', - 'headScript' => 'VuFindTheme\View\Helper\Factory::getHeadScript', 'headThemeResources' => 'VuFindTheme\View\Helper\Factory::getHeadThemeResources', 'imageLink' => 'VuFindTheme\View\Helper\Factory::getImageLink', - 'inlineScript' => + // We have to override the Zend helpers using canonical names: + 'Zend\View\Helper\HeadLink' => + 'VuFindTheme\View\Helper\Factory::getHeadLink', + 'Zend\View\Helper\HeadScript' => + 'VuFindTheme\View\Helper\Factory::getHeadScript', + 'Zend\View\Helper\InlineScript' => 'VuFindTheme\View\Helper\Factory::getInlineScript', ], ]; diff --git a/module/VuFindTheme/src/VuFindTheme/InjectTemplateListener.php b/module/VuFindTheme/src/VuFindTheme/InjectTemplateListener.php index b074c98ec320f9d01d90107e85a98ab0a18302fd..fdbb9d8b923fc8273c1fddbffff9379e52da657b 100644 --- a/module/VuFindTheme/src/VuFindTheme/InjectTemplateListener.php +++ b/module/VuFindTheme/src/VuFindTheme/InjectTemplateListener.php @@ -54,17 +54,18 @@ class InjectTemplateListener extends \Zend\Mvc\View\Http\InjectTemplateListener } /** - * Determine the top-level namespace of the controller + * Strip namespace part off controller name for compatibility with theme + * system. * - * @param string $controller Controller name + * @param string $controller controller FQCN * - * @return string - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * @return string|false template name or false if controller was not matched */ - protected function deriveModuleNamespace($controller) + public function mapController($controller) { - // Namespaces just make the theme system more confusing; ignore them: - return ''; + $initial = parent::mapController($controller); + $parts = explode('/', $initial); + array_shift($parts); + return implode('/', $parts); } } diff --git a/module/VuFindTheme/tests/unit-tests/src/VuFindTest/ThemeInjectTemplateListenerTest.php b/module/VuFindTheme/tests/unit-tests/src/VuFindTest/ThemeInjectTemplateListenerTest.php index ccb9f4aaf0ea06b0138c14c81bd1f92b7ccd80bc..8cbd2fc0bce7c173c6110f9e98a5fcf2739c83e1 100644 --- a/module/VuFindTheme/tests/unit-tests/src/VuFindTest/ThemeInjectTemplateListenerTest.php +++ b/module/VuFindTheme/tests/unit-tests/src/VuFindTest/ThemeInjectTemplateListenerTest.php @@ -49,7 +49,7 @@ class ThemeInjectTemplateListenerTest extends Unit\TestCase { $l = new InjectTemplateListener(); $this->assertEquals( - '', $this->callMethod($l, 'deriveModuleNamespace', ['dummy']) + 'search', $l->mapController('VuFind\Controller\SearchController') ); }