/** * Init layout */ protected function initLayout() { try { // get a custom template path resolver $templatePathResolver = $this->serviceLocator->get('Layout\\View\\Resolver\\TemplatePathStack'); // replace the default template path stack resolver with one $aggregateResolver = $this->serviceLocator->get('Zend\\View\\Resolver\\AggregateResolver'); $aggregateResolver->attach($templatePathResolver)->getIterator()->remove($this->serviceLocator->get('Zend\\View\\Resolver\\TemplatePathStack')); $layout = $this->serviceLocator->get('Application\\Model\\ModelManager')->getInstance('Layout\\Model\\LayoutBase'); $request = $this->serviceLocator->get('Request'); // get a layout from cookies $allowSelectLayouts = (int) SettingService::getSetting('layout_select'); $cookieLayout = isset($request->getCookie()->{self::LAYOUT_COOKIE}) && $allowSelectLayouts ? (int) $request->getCookie()->{self::LAYOUT_COOKIE} : null; // init a user selected layout if ($cookieLayout) { $activeLayouts = $layout->getLayoutsById($cookieLayout); } else { $activeLayouts = !empty(UserIdentityService::getCurrentUserIdentity()['layout']) && $allowSelectLayouts ? $layout->getLayoutsById(UserIdentityService::getCurrentUserIdentity()['layout']) : $layout->getDefaultActiveLayouts(); } // add layouts paths for each module foreach ($this->moduleManager->getModules() as $module) { foreach ($activeLayouts as $layoutInfo) { $templatePathResolver->addPath('module/' . $module . '/view/' . $layoutInfo['name']); } } LayoutService::setCurrentLayouts($activeLayouts); } catch (Exception $e) { ApplicationErrorLogger::log($e); } }
/** * @param ModuleManagerInterface $manager */ public function init(ModuleManagerInterface $manager) { $loadModules = $manager->getModules(); $adminModules = ['DoctrineModule', 'DoctrineORMModule', 'TwbBundle']; $addModules = []; foreach ($adminModules as $adminModule) { if (!in_array($adminModule, $loadModules)) { $addModules[] = $adminModule; } } $manager->setModules(array_merge($addModules, $loadModules)); }