public function onBootstrap(EventInterface $e) { // Récupération des erreurs en ajoutant un callback qui affiche l'erreur coté serveur $application = $e->getTarget(); $event = $application->getEventManager(); $event->attach(MvcEvent::EVENT_DISPATCH_ERROR, function (MvcEvent $e) { error_log('DISPATCH_ERROR : ' . $e->getError()); error_log($e->getControllerClass() . ' ' . $e->getController()); }); $event->attach(MvcEvent::EVENT_RENDER_ERROR, function (MvcEvent $e) { error_log('RENDER_ERROR : ' . $e->getError()); }); $event->attach(MvcEvent::EVENT_RENDER, function (MvcEvent $e) { $services = $e->getApplication()->getServiceManager(); $session = $services->get('session'); $rightViewModel = new ViewModel(); if (!isset($session->user)) { $form = $services->get('MiniModule\\Form\\Authentification'); $formUser = $services->get('MiniModule\\Form\\NewUser'); $rightViewModel->setVariables(array('form' => $form, 'newUserForm' => $formUser)); $rightViewModel->setTemplate('layout/form-auth'); } else { $rightViewModel->setVariables(array('user' => $session->user)); $rightViewModel->setTemplate('layout/info-auth'); } $view = $e->getViewModel(); // c'est le viewModel qui contient le layout (top viewModel) $view->addChild($rightViewModel, 'formulaireAuth'); }); }
/** * Listen to the bootstrap event. * * @param EventInterface|MvcEvent $e * * @return array|void */ public function onBootstrap(EventInterface $e) { if (!$e instanceof MvcEvent) { return; } $currentRouteName = $this->getCurrentRouteName($e->getApplication()->getServiceManager()); $e->getViewModel()->setVariables(['__currentRouteName' => $currentRouteName]); }
/** * Listen to the "render" event and render additional layout segments * * @param MvcEvent $e * * @return null */ public function renderLayoutSegments(EventInterface $e) { // get view Model $viewModel = $e->getViewModel(); /* @var $viewModel ViewModel */ // only for normal View Models if (!$viewModel instanceof JsonModel) { // add an additional header segment to layout $header = new ViewModel(); $header->setTemplate('layout/header'); $viewModel->addChild($header, 'header'); // add an additional footer segment to layout $footer = new ViewModel(); $footer->setTemplate('layout/footer'); $viewModel->addChild($footer, 'footer'); } // return response return $e->getResponse(); }
public function onBootstrap(EventInterface $e) { // $e>getTarget() renvoit Zend\MVC\Application // $sm = $e->getTarget()->getServiceManager(); // $view = $sm->get('ViewManager'); // $resolv = new \Zend\View\Resolver\TemplateMapResolver(array( // 'error' => __DIR__ . '/view/error.phtml', // 'layout/layout' => __DIR__.'/view/layout.phtml', // ) // ); // $view->getRenderer()->setResolver( $resolv ); $application = $e->getTarget(); $event = $application->getEventManager(); $event->attach(MvcEvent::EVENT_DISPATCH_ERROR, function (MvcEvent $e) { error_log('DISPATCH_ERROR : ' . $e->getError()); error_log($e->getControllerClass() . ' ' . $e->getController()); }); $event->attach(MvcEvent::EVENT_RENDER_ERROR, function (MvcEvent $e) { error_log('RENDER_ERROR : ' . $e->getError()); }); $event->attach(MvcEvent::EVENT_RENDER, function (MvcEvent $e) { $services = $e->getApplication()->getServiceManager(); // $form = $services->get('MiniModule\Form\Authentification'); $session = $services->get('session'); $rightViewModel = new ViewModel(); if (!isset($session->user)) { $form = $services->get('MiniModule\\Form\\Authentification'); $formUser = $services->get('MiniModule\\Form\\NewUser'); $rightViewModel->setVariables(array('form' => $form, 'newUserForm' => $formUser)); $rightViewModel->setTemplate('layout/form-auth'); } else { $rightViewModel->setVariables(array('user' => $session->user)); $rightViewModel->setTemplate('layout/info-auth'); } $view = $e->getViewModel(); // c'est le viewModel qui contient le layout (top viewModel) // $formViewManager = new ViewModel(array('form' => $form)); // $formViewManager->setTemplate('layout/form-auth'); // $view->addChild($formViewManager, 'formulaireAuth'); $view->addChild($rightViewModel, 'formulaireAuth'); }); }
/** * Listen to the "render" event and render additional layout segments * * @param MvcEvent $e * @return null */ public function renderLayoutSegments(EventInterface $e) { // get view Model $viewModel = $e->getViewModel(); /* @var $viewModel ViewModel */ // add an additional header segment to layout $header = new ViewModel(); $header->setTemplate('layout/header'); $viewModel->addChild($header, 'header'); // add an additional sidebar segment to layout $sidebar = new ViewModel(); $sidebar->setTemplate('layout/sidebar'); $viewModel->addChild($sidebar, 'sidebar'); // add an additional footer segment to layout $footer = new ViewModel(); $footer->setTemplate('layout/footer'); $viewModel->addChild($footer, 'footer'); // return response return $e->getResponse(); }
/** * * @param MvcEvent|EventInterface $e * @return array|void */ public function onBootstrap(Event $e) { $application = $e->getApplication(); $serviceManager = $application->getServiceManager(); $eventManager = $application->getEventManager(); $request = $serviceManager->get('Request'); if (!$request instanceof Request) { return; } /* @var $options ModuleOptions */ $options = $serviceManager->get(ModuleOptions::class); $listeners = $options->getListeners(); foreach ($listeners as $listener => $isEnabled) { if ($isEnabled) { $serviceManager->get($listener)->attach($eventManager); } } $serviceManager->get(LayoutInterface::class)->setRoot($e->getViewModel()); if ($options->isDebug()) { $this->attachDebugger($serviceManager); } }
/** * Hook to inject the main menu * * This is invoked by the "render" event. * * @param \Zend\Mvc\MvcEvent $e MVC event */ public function setMenu(\Zend\EventManager\EventInterface $e) { $e->getViewModel()->menu = 'Console\\Navigation\\MainMenu'; }