public function prepareViewModel(MvcEvent $event, $action) { if ($event->getTarget()->forward()->getNumNestedForwards() > 0) { return $event->getResult(); } $result = $event->getResult(); $response = $event->getResponse(); $response->setStatusCode($result->getStatusCode()); $response->getHeaders()->addHeaders($result->getHeaders()); $controller = $event->getTarget(); $viewModel = $controller->acceptableViewModelSelector($controller->getOptions()->getAcceptCriteria()); if ($vars = $result->getSerializedModel()) { $viewModel->setVariables($vars); } //set the template if ($viewModel instanceof JsonModel && count($viewModel->getVariables()) == 0) { if ($response->getStatusCode() == 200) { $response->setStatusCode(204); } return $response; } elseif ($viewModel->getTemplate() == null) { $viewModel->setTemplate($controller->getOptions()->getTemplates()[$action]); } $event->setResult($viewModel); return $viewModel; }
public function layoutChange(MvcEvent $event) { // Change By Route Defaults $routeMatch = $event->getRouteMatch(); if ($routeMatch && ($layout = $routeMatch->getParam('layout', false))) { $event->getTarget()->layout($layout); return; } /** @var \Zend\Http\PhpEnvironment\Request $request */ $request = $event->getRequest(); $uri = $request->getServer('REQUEST_URI'); $config = $this->getConfig($event->getParam('application')->getConfig()); // Change Layout by URI foreach ($config['uri'] as $var => $value) { $position = strpos($var, '*'); if ($position !== false) { $uri = substr($uri, 0, $position); $var = substr($var, 0, $position); } if ($var == $uri) { if (method_exists($target = $event->getTarget(), 'layout')) { $target->layout($value); } else { $event->getViewModel()->setTemplate($value); } } } }
public function onBootstrap(MvcEvent $e) { $app = $e->getApplication(); $eventManager = $app->getEventManager(); #$eventManager = $e->getApplication()->getEventManager(); $eventManager->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); $config = $e->getApplication()->getServiceManager()->get('config'); if (isset($config['module_layouts'][$moduleNamespace])) { $controller->layout($config['module_layouts'][$moduleNamespace]); } }, 100); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $shared = $eventManager->getSharedManager(); $sm = $app->getServiceManager(); $shared->attach('ZfcUser\\Service\\User', 'register.post', function ($e) use($sm) { $userService = $e->getTarget(); $sm = $userService->getServiceManager(); $em = $sm->get('doctrine.entitymanager.orm_default'); $newUser = $e->getParam('user'); #$registrationForm = $e->getParam('form'); $config = $sm->get('config'); $criteria = array('roleId' => $config['bjyauthorize']['new_user_default_role']); $defaultUserRole = $em->getRepository('ErsBase\\Entity\\UserRole')->findOneBy($criteria); if ($defaultUserRole !== null) { $newUser->addRole($defaultUserRole); $em->persist($newUser); $em->flush(); } }); }
public function afterDispatch(MvcEvent $e) { $controllerName = $e->getRouteMatch()->getMatchedRouteName(); if ($controllerName != 'login' && ($controllerName != 'application' && $controllerName != 'home')) { $containerSession = new \Zend\Session\Container('cbol'); $e->getTarget()->layout()->repo = $containerSession->reportesVias; $e->getTarget()->layout()->acceso = $containerSession->permisosUser; $e->getTarget()->layout()->suge = $containerSession->sugerencias; $auth = new \Zend\Authentication\AuthenticationService(); $response = $e->getResponse(); if (!$auth->hasIdentity()) { $url = $e->getRequest()->getBaseUrl() . '/login'; $response->getHeaders()->addHeaderLine('Location', $url); $response->setStatusCode(302); $response->sendHeaders(); return $response; } else { $localAcl = new \Login\Model\permisos(); if (!$localAcl->isAllowed($auth->getIdentity()->perfil_id, $controllerName)) { $this->onDispatchError($e, $controllerName); } elseif (is_null($containerSession->idSession)) { $url = $e->getRequest()->getBaseUrl() . '/login/logout'; $response->getHeaders()->addHeaderLine('Location', $url); $response->setStatusCode(302); $response->sendHeaders(); return $response; } elseif ($e->getResponse()->getStatusCode() == 403) { $this->onDispatchError($e, $controllerName); } } } }
public function handleControllerCannotDispatchRequest(MvcEvent $e) { $action = $e->getRouteMatch()->getParam('action'); $controller = get_class($e->getTarget()); // error-controller-cannot-dispatch if (!method_exists($e->getTarget(), $action . 'Action')) { $logText = 'The requested controller ' . $controller . ' was unable to dispatch the request : ' . $action . 'Action'; //you can do logging, redirect, etc here.. echo $logText; } }
public function onBootstrap(MvcEvent $e) { $serviceLocator = $e->getApplication()->getServiceManager(); $e->getApplication()->getEventManager()->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH, function (MvcEvent $e) use($serviceLocator) { if (!$e->getRequest() instanceof Request) { return; } $request = $e->getRequest(); $config = $serviceLocator->get('Config'); $serviceName = isset($config['hermes']['service_name']) ? $config['hermes']['service_name'] : ''; $data = ['direction' => 'in', 'status' => 'success', 'destination' => ['service' => $serviceName, 'server' => $request->getUri()->getHost(), 'uri' => $request->getUriString()], 'source' => ['server' => $_SERVER['REMOTE_ADDR'], 'service' => $request->getHeader('X-Request-Name') ? $request->getHeader('X-Request-Name')->getFieldValue() : '', 'uri' => '']]; if (!$e->getRequest()->isGet()) { $post = json_decode($e->getRequest()->getContent(), true, 100); unset($post['password']); $data['data'] = $post; } \LosLog\Log\RequestLogger::save($e->getRequest(), $data); }, 100); $hermes = $serviceLocator->get('hermes'); $em = $hermes->getEventManager(); $em->attach('request.post', function (Event $e) use($serviceLocator) { /* @var \Hermes\Api\Client $hermes */ $hermes = $e->getTarget(); $request = $hermes->getZendClient()->getRequest(); $config = $serviceLocator->get('Config'); $serviceName = isset($config['hermes']['service_name']) ? $config['hermes']['service_name'] : ''; $data = ['direction' => 'out', 'status' => 'success', 'source' => ['service' => $serviceName, 'server' => $_SERVER['SERVER_ADDR'], 'uri' => $_SERVER['REQUEST_URI']], 'destination' => ['service' => $hermes->getServiceName(), 'server' => $request->getUri()->getHost(), 'uri' => $request->getUriString()], 'http_code' => $hermes->getZendClient()->getResponse()->getStatusCode()]; if (!$request->isGet()) { $post = json_decode($request->getContent(), true, 100); unset($post['password']); $data['data'] = $post; } \LosLog\Log\RequestLogger::save($request, $data); }, 100); $em->attach('request.fail', function (Event $e) use($serviceLocator) { /* @var \Hermes\Api\Client $hermes */ $hermes = $e->getTarget(); $request = $hermes->getZendClient()->getRequest(); $config = $serviceLocator->get('Config'); $serviceName = isset($config['hermes']['service_name']) ? $config['hermes']['service_name'] : ''; $data = ['direction' => 'out', 'status' => 'failed', 'source' => ['service' => $serviceName, 'server' => $_SERVER['SERVER_ADDR'], 'uri' => $_SERVER['REQUEST_URI']], 'destination' => ['service' => $hermes->getServiceName(), 'server' => $request->getUri()->getHost(), 'uri' => $request->getUriString()]]; if (!$request->isGet()) { $post = json_decode($request->getContent(), true, 100); unset($post['password']); $data['data'] = $post; } $exception = $e->getParams(); $data['http_code'] = $exception->getCode(); $data['error'] = $exception->getMessage(); \LosLog\Log\RequestLogger::save($request, $data); }, 100); }
public function flush(MvcEvent $event) { if ($event->getTarget()->forward()->getNumNestedForwards() > 0) { return $event->getResult(); } $options = $event->getTarget()->getOptions(); $options->getModelManager()->flush(); if (!($flushExceptions = $options->getExceptionSubscriber()->getFlushExceptions())) { return $event->getResult(); } else { return $this->prepareExceptions($flushExceptions, $options->getExceptionSerializer()); } }
public function unserializeSingle(MvcEvent $event, $mode) { if (count($event->getParam('deeperResource')) > 0 || ($result = $event->getResult())) { return $event->getResult(); } $data = $event->getParam('data'); $id = $event->getParam('id'); $options = $event->getTarget()->getOptions(); if ($property = $options->getProperty()) { $data[$property] = $id; } $result = new Result($event->getTarget()->getOptions()->getManifest()->getServiceManager()->get('unserializer')->fromArray($data, $event->getTarget()->getOptions()->getClass(), $event->getParam('document'), $mode)); $event->setResult($result); return $result; }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $application = $e->getApplication(); $sm = $application->getServiceManager(); $sharedManager = $eventManager->getSharedManager(); //Setting layouts $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractController', 'dispatch', function ($e) { $controller = $e->getTarget(); $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); $config = $e->getApplication()->getServiceManager()->get('config'); if (isset($config['module_layouts'][$moduleNamespace])) { $controller->layout($config['module_layouts'][$moduleNamespace]); } }, 100); $router = $sm->get('router'); $request = $sm->get('request'); $matchedRoute = $router->match($request); if (null !== $matchedRoute) { //Check the Authentication in every controller different with Login //If there is no identity this will redirect to Login $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function () use($sm) { $sm->get('ControllerPluginManager')->get('Authentication')->isAuthtenticated(); }, 2); // @todo implement ACL //Check ACL and show the menu //$sharedManager->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function() use ($sm) { // $sm->get('ControllerPluginManager')->get('Privileges')->doAuthorization(); //}, 2); } }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $eventManager->attach(MvcEvent::EVENT_ROUTE, function ($e) { $auth = $e->getApplication()->getServiceManager()->get("Auth_Service"); $application = $e->getApplication(); $viewModel = $application->getMvcEvent()->getViewModel(); $viewModel->UserAuth = false; if ($auth->hasIdentity()) { $viewModel->UserAuth = true; $viewModel->UserName = $auth->getStorage()->read()->name; } $routeMatch = $e->getRouteMatch(); $controller = $routeMatch->getParam('controller'); $whitelist = array('Customers\\Controller\\Login'); if (!in_array($controller, $whitelist)) { if (!$auth->hasIdentity()) { $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $controller->plugin('redirect')->toRoute('customers'); }, 100); } } }); // $config = new StandardConfig(); // $config->setOptions(array( // 'remember_me_seconds' => 10, // 'name' => 'zf2', // )); // $manager = new SessionManager($config); }
/** * addRoutes Event Handler * set static pages routes * * @access public * @param MvcEvent $event */ public function addRoutes(MvcEvent $event) { $serviceManager = $event->getTarget()->getServiceManager(); $routeEvent = $serviceManager->get('CMS\\Event\\RouteEvent'); $routeConfig = $routeEvent->addStaticPagesRoutes($event); $this->addedRoutes = $routeConfig; }
/** * Override default rendering strategy * * @param MvcEvent $e */ public function onBootstrap(MvcEvent $e) { // attach the JSON view strategy $app = $e->getTarget(); /** @var ServiceLocator $locator */ $locator = $app->getServiceManager(); /** * @var View $view */ $view = $locator->get('ZendViewView'); /** * @var ViewJsonStrategyFactory $strategy */ $strategy = $locator->get('ViewJsonStrategy'); $view->getEventManager()->attach($strategy, 100); $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); //Add listener to check the response // Allow possibility to return a simple array $eventManager->attach(MvcEvent::EVENT_DISPATCH, array($this, 'onDispatch')); //Add listener for rendering the error $eventManager->attach(MvcEvent::EVENT_RENDER, array($this, 'onRenderError')); //Add listener to finish the execution of request $eventManager->attach(MvcEvent::EVENT_FINISH, array($this, 'onFinish')); }
public function onBootstrap(MvcEvent $e) { $application = $e->getApplication(); $serviceManager = $application->getServiceManager(); $eventManager = $application->getEventManager(); $sharedManager = $eventManager->getSharedManager(); // DISPATCH EVENT $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); if ($moduleNamespace == 'Frontend') { // frontend layout // wenn der benutzer eingeloggt ist darf er das admin panel betreten? $authService = $e->getApplication()->getServiceManager()->get('AuthService'); // normal layout $controller->layout('layout/frontend'); /** if( $authService->isLoggedIn() ) { // layout für registrierte user $controller->layout('layout/frontend/registered'); } else { // normal layout unregistriert $controller->layout('layout/frontend'); } **/ } }, 50); }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); //$eventManager->attach(MvcEvent::EVENT_DISPATCH,array($this,'authPreDispatch'),1); /** * This allows to set the layout by module by action. By default * it gets layout\layout. This gets the modules from module_layouts * array in module.config.php. */ $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); $controllerName = explode('\\', $controllerClass); $controllerName = str_replace('Controller', '', array_pop($controllerName)); $config = $e->getApplication()->getServiceManager()->get('config'); $routeMatch = $e->getRouteMatch(); $actionName = strtolower($routeMatch->getParam('action', 'not-found')); // get the action name if (isset($config['module_layouts'][$moduleNamespace][$controllerName][$actionName])) { $controller->layout($config['module_layouts'][$moduleNamespace][$controllerName][$actionName]); } elseif (isset($config['module_layouts'][$moduleNamespace][$controllerName]['default'])) { $controller->layout($config['module_layouts'][$moduleNamespace][$controllerName]['default']); } }, -100); }
public function loadConfiguration(MvcEvent $e) { $controller = $e->getTarget(); $user_session = new Container('usuario'); $controller->layout()->nome = trim(substr($user_session->nome, 0, 16)); $controller->layout()->foto = $user_session->foto ? "/fotos/" . str_replace(" ", "_", $user_session->foto) : "/fotos/default.jpg"; }
/** * @param \Zend\Mvc\MvcEvent $e * @uses \Zend\Mvc\Application */ public function preDispatch(\Zend\Mvc\MvcEvent $e) { $application = $e->getTarget(); $routematch = $e->getRouteMatch(); $cont = $routematch->getParam('controller'); $action = $routematch->getParam('action'); }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $routeMatch = $e->getRouteMatch(); $parkingLotId = $routeMatch->getParam('parking_lot_id', 0); // get the parking lot id if (method_exists($controller, 'setParkingLotId')) { $serviceManager = $e->getApplication()->getServiceManager(); $dbAdapter = $serviceManager->get('Zend\\Db\\Adapter\\Adapter'); $parkingLotExistsValidator = new RecordExists(['adapter' => $dbAdapter, 'table' => DbTables::TBL_PARKING_LOTS, 'field' => 'id']); if (!$parkingLotExistsValidator->isValid($parkingLotId) && $parkingLotId != 0) { $url = $e->getRouter()->assemble(['controller' => 'parking', 'action' => 'index'], ['name' => 'parking']); $response = $e->getResponse(); $response->getHeaders()->addHeaderLine('Location', $url); $response->setStatusCode(302); $response->sendHeaders(); return $response; } $controller->setParkingLotId($parkingLotId); } }, 100); }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $eventManager->attach(MvcEvent::EVENT_ROUTE, [$this, 'onViewHelper']); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $routeMatch = $e->getRouteMatch(); $apartmentId = $routeMatch->getParam('apartment_id', 0); // get the apartment ID if (method_exists($controller, 'setApartmentID')) { $serviceManager = $e->getApplication()->getServiceManager(); $dbAdapter = $serviceManager->get('Zend\\Db\\Adapter\\Adapter'); $apartmentExistValidator = new RecordExists(['adapter' => $dbAdapter, 'table' => DbTables::TBL_APARTMENTS, 'field' => 'id']); if (!$apartmentExistValidator->isValid($apartmentId) && $apartmentId != 0) { $url = $e->getRouter()->assemble(array('controller' => 'apartment', 'action' => 'search'), ['name' => 'apartments']); $response = $e->getResponse(); $response->getHeaders()->addHeaderLine('Location', $url); $response->setStatusCode(302); $response->sendHeaders(); return $response; } $controller->setApartmentID($apartmentId); } }, 100); }
/** * @param MvcEvent $e */ public static function onRoute(MvcEvent $e) { if (!$e->getRequest() instanceof HttpRequest) { return; } $app = $e->getTarget(); $rbacService = $app->getServiceManager()->get('ZfcRbac\\Service\\Rbac'); $match = $app->getMvcEvent()->getRouteMatch(); $controller = $match->getParam('controller'); $action = $match->getParam('action'); $resource = sprintf('%s:%s', $controller, $action); try { if ($rbacService->getFirewall('controller')->isGranted($resource)) { return; } } catch (InvalidArgumentException $ex) { //if Exception, default to unauthorized } try { $e->setError($rbacService::ERROR_CONTROLLER_UNAUTHORIZED)->setParam('identity', $rbacService->getIdentity())->setParam('controller', $controller)->setParam('action', $action); $app->getEventManager()->trigger('dispatch.error', $e); } catch (InvalidArgumentException $ex) { return; } }
/** * Inject a template into the view model, if none present * * Template is derived from the controller found in the route match, and, * optionally, the action, if present. * * @param MvcEvent $e * @return void */ public function injectTemplate(MvcEvent $e) { $model = $e->getResult(); if (!$model instanceof ViewModel) { return; } $template = $model->getTemplate(); if (!empty($template)) { return; } $routeMatch = $e->getRouteMatch(); $controller = $e->getTarget(); if (is_object($controller)) { $controller = get_class($controller); } if (!$controller) { $controller = $routeMatch->getParam('controller', ''); } $module = $this->deriveModuleNamespace($controller); $controller = $this->deriveControllerClass($controller); $template = $this->inflectName($module); if (!empty($template)) { $template .= '/'; } $template .= $this->inflectName($controller); $action = $routeMatch->getParam('action'); if (null !== $action) { $template .= '/' . $this->inflectName($action); } $model->setTemplate($template); }
public function onBootstrap(MvcEvent $e) { /* $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $this->initSession(array( 'remember_me_seconds' => 180, 'use_cookies' => true, 'cookie_httponly' => true, )); */ $eventManager = $e->getApplication()->getEventManager(); $eventManager->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); $config = $e->getApplication()->getServiceManager()->get('config'); //echo '<pre>'; print_r($config);exit; if (isset($config['module_layouts'][$moduleNamespace])) { $controller->layout($config['module_layouts'][$moduleNamespace]); } }, 100); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $this->initSession(array('remember_me_seconds' => 180, 'use_cookies' => true, 'cookie_httponly' => true)); }
public function checkAcl(MvcEvent $e) { $userRole = 'guest'; $app = $e->getTarget(); $serviceManager = $app->getServiceManager(); $authService = $serviceManager->get('AuthService'); if ($authService->hasIdentity()) { $user = $authService->getStorage()->read(); $userRole = $user->role; } $controller = $e->getRouteMatch()->getMatchedRouteName('controller'); $action = $e->getRouteMatch()->getParam('action'); $route = $controller . '/' . $action; $allAccess = false; if ($e->getViewModel()->acl->hasResource($controller . '/all')) { if ($e->getViewModel()->acl->isAllowed($userRole, $controller . '/all')) { $allAccess = true; } } if (!$allAccess) { if ($e->getViewModel()->acl->hasResource($route)) { if (!$e->getViewModel()->acl->isAllowed($userRole, $route)) { $e->getRouteMatch()->setParam('controller', 'Frontend\\Controller\\Index')->setParam('action', 'index'); } } else { $e->getRouteMatch()->setParam('controller', 'Frontend\\Controller\\Index')->setParam('action', 'index'); } } }
/** * Attaches the ApiErrorListener on the render event * * @param MvcEvent $e */ public function onBootstrap($e) { $app = $e->getTarget(); $services = $app->getServiceManager(); $events = $app->getEventManager(); $events->attach($services->get('Common\\Listeners\\ApiErrorListener')); }
public function onBootstrap(MvcEvent $e) { $application = $e->getTarget(); $serviceManager = $application->getServiceManager(); $eventManager = $application->getEventManager(); $events = $eventManager->getSharedManager(); }
public function checkLoginChangeLayout(MvcEvent $e) { if ($e->getApplication()->getServiceManager()->get('AuthService')->hasIdentity()) { $controller = $e->getTarget(); $controller->layout('layout/user'); } }
public function onBootstrap(MvcEvent $e) { $application = $e->getTarget(); $eventManager = $application->getEventManager(); $sm = $application->getServiceManager(); $logbug = $sm->get('LogBugServiceError'); $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($event) use($sm) { $exception = $event->getParam('exception'); if (!$exception) { return; } $config = $sm->get('Config'); $ignoreCode = $config['logbug']['email']['ignore']['code']; if (in_array($exception->getCode(), $ignoreCode)) { return; } $mail = $sm->get('LogBug\\Service\\Email'); $mail->send($exception, 'EXCEPTION_DISPATCH_ERROR'); }); $eventManager->attach(MvcEvent::EVENT_RENDER_ERROR, function ($event) use($sm) { $exception = $event->getParam('exception'); if (!$exception) { return; } $config = $sm->get('Config'); $ignoreCode = $config['logbug']['email']['ignore']['code']; if (in_array($exception->getCode(), $ignoreCode)) { return; } $mail = $sm->get('LogBug\\Service\\Email'); $mail->send($exception, 'EXCEPTION_RENDER_ERROR'); }); }
public function onBootstrap(MvcEvent $e) { $events = $e->getApplication()->getEventManager()->getSharedManager(); $config = $e->getApplication()->getServiceManager()->get('config'); // configure session $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $events->attach('ZfcUser\\Service\\User', 'register.post', function ($e) { $user = $e->getParam('user'); // User account object $form = $e->getParam('form'); // Form object // Perform your custom action here /* @var $sm ServiceLocatorInterface */ $sm = $e->getTarget()->getServiceManager(); /* @var $em \Doctrine\ORM\EntityManager */ $em = $sm->get('doctrine.entitymanager.orm_default'); $userRole = $em->find(__NAMESPACE__ . '\\Entity\\UserRole', DEFAULT_ROLE); if (NULL !== $userRole) { $user->addRole($userRole); $em->persist($user); $em->flush(); } }); }
/** * Handle layout on 'dispatch' event. * * @param MvcEvent $e */ public function onDispatch(MvcEvent $e) { $routeMatch = $e->getRouteMatch(); $activeController = $routeMatch->getParam('controller'); $listController1Columns = ['Application\\Controller\\Index', 'Application\\Controller\\Credits', 'Application\\Controller\\Contributors']; $controller = $e->getTarget(); if (!$e->getViewModel()->terminate()) { if (!in_array($activeController, $listController1Columns)) { $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); $fbMeta['title'] = 'Real Live Learn ZF2'; $fbMeta['description'] = ''; // set title prepend of module desc... $moduleDetail = $this->services->get('Doctrine\\ORM\\EntityManager')->getRepository('Application\\Entity\\ModuleList')->findOneBy(['moduleName' => $moduleNamespace]); if ($moduleDetail) { $this->services->get('ViewHelperManager')->get('headTitle')->prepend($moduleDetail->getModuleDesc()); $title = $moduleDetail->getModuleDesc(); $description = $moduleDetail->getModuleDesc(); $fbMeta['title'] = $title . '-' . $fbMeta['title']; $fbMeta['description'] = $description . '-' . $fbMeta['description']; } $e->getViewModel()->setVariable('fbMeta', $fbMeta); $e->getViewModel()->setVariable('modulenamespace', $moduleNamespace); $controller->layout('layout/2columns'); } else { $controller->layout('layout/1columns'); } } }
public function onBootstrap(MvcEvent $e) { // You may not need to do this if you're doing it elsewhere in your // application $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); // $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function($e) { // $result = $e->getResult(); // $result->setTerminal(TRUE); // // }); $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'onDispatchError'), 100); // $eventManager->attach('dispatch', array($this,'onDispatchError'), 100); $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) { $controller = $e->getTarget(); $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); $config = $e->getApplication()->getServiceManager()->get('config'); $routeMatch = $e->getRouteMatch(); $actionName = strtolower($routeMatch->getParam('action', 'not-found')); // get the action name if (isset($config['module_layouts'][$moduleNamespace][$actionName])) { $controller->layout($config['module_layouts'][$moduleNamespace][$actionName]); } elseif (isset($config['module_layouts'][$moduleNamespace]['default'])) { $controller->layout($config['module_layouts'][$moduleNamespace]['default']); } }, 100); }
/** * Listener for bootstrap event * * Attaches a render event. * * @param \Zend\Mvc\MvcEvent $e */ public function onBootstrap($e) { $app = $e->getTarget(); $services = $app->getServiceManager(); $events = $app->getEventManager(); $events->attach(MvcEvent::EVENT_RENDER, array($this, 'onRender'), 100); }