public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $serviceManager = $e->getApplication()->getServiceManager(); $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'handleException')); //set the global exception handler //set_exception_handler( array( $this, 'handleException' ) ); // Disable layout for ajax requests // $eventManager->attach(MvcEvent::EVENT_DISPATCH, function ($e) // { // IF its an AJAX request & its not in JSON Model form yet // then it has been JMS serialized & thus just needs to be printed // if ($e->getRequest()->isXmlHttpRequest() && ! ($result instanceof \Zend\View\Model\JsonModel) ) { //$viewModel = new \Zend\View\Model\ViewModel(array( // 'content' => $result, //)); //$viewModel->setTemplate('layout/empty'); //$e->setViewModel($viewModel); // } // }); // Ensuring services are available to be called in the application model // by setting the registry into a static variable // This enforces usage of service locator pattern instead of dependency injection \Application\Model\CommonServiceMutatorTrait::setServiceLocator($serviceManager); }
/** * @return \Doctrine\ORM\EntityManager */ public function getEntityManager() { if (null === $this->entityManager) { $this->entityManager = $this->event->getApplication()->getServiceManager()->get('Doctrine\\ORM\\EntityManager'); } return $this->entityManager; }
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(); } }); }
public function dispatchError(MvcEvent $e) { $sharedManager = $e->getApplication()->getEventManager()->getSharedManager(); $sharedManager->attach('Zend\\Mvc\\Application', 'dispatch.error', function ($e) { if ($e->getParam('exception')) { ob_clean(); //Limpar a tela de erros do php header('HTTP/1.1 400 Bad Request'); $exception = $e->getParam('exception'); $sm = $e->getApplication()->getServiceManager(); $config = $sm->get('Config'); $e->getApplication()->getServiceManager()->get('Controller\\Plugin\\Manager')->get('jsLog')->log($exception, 2); $viewModel = new \Zend\View\Model\ViewModel(['exception' => $exception]); if ($e->getRequest()->isXmlHttpRequest()) { $viewModel->setTemplate($config['js_library']['error_ajax_exception']); $e->getApplication()->getServiceManager()->get('ViewRenderer')->render($viewModel); } else { $viewModel->setTemplate($config['js_library']['error_exception']); echo $e->getApplication()->getServiceManager()->get('ViewRenderer')->render($viewModel); } /* * Com erros handler o codigo continua a ser executado, * entao o exit para e so mostra os erros */ exit; } }); }
public function onBootstrap(MvcEvent $e) { $e->getApplication()->getServiceManager()->get('translator'); $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); // Add translation $translator = $e->getApplication()->getServiceManager()->get('translator'); if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $setLang = $_SERVER['HTTP_ACCEPT_LANGUAGE']; } else { $setLang = ''; } $translator->setLocale(\Locale::acceptFromHttp($setLang))->setFallbackLocale('en_US'); // Add ACL information to the Navigation view helper $sm = $e->getApplication()->getServiceManager(); $authorize = $sm->get('BjyAuthorize\\Service\\Authorize'); $acl = $authorize->getAcl(); $role = $authorize->getIdentity(); \Zend\View\Helper\Navigation::setDefaultAcl($acl); \Zend\View\Helper\Navigation::setDefaultRole($role); $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Application', 'dispatch.error', function ($e) use($sm) { if ($e->getParam('exception')) { $sm->get('Zend\\Log\\Logger')->crit($e->getParam('exception')); } }); }
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 onBootstrap(MvcEvent $e) { $callback = function (MvcEvent $event) { $view = $event->getApplication()->getServiceManager()->get('ViewRenderer'); $config = $event->getApplication()->getConfig(); $controller = $event->getTarget(); $rm = $event->getRouteMatch(); if (!$rm instanceof RouteMatch) { $rm = new RouteMatch(array('module' => 'Application', '__NAMESPACE__' => 'Application\\Controller', '__CONTROLLER__' => 'index', 'controller' => 'Application\\Controller\\Index', 'action' => 'index')); } $params = $rm->getParams(); $modulo = ""; if (isset($params['__NAMESPACE__'])) { $paramsArray = explode("\\", $params['__NAMESPACE__']); $modulo = $paramsArray[0]; } $controller = isset($params['__CONTROLLER__']) ? $params['__CONTROLLER__'] : ""; $action = isset($params['action']) ? $params['action'] : null; $app = $event->getParam('application'); $sm = $app->getServiceManager(); $paramsConfig = ['modulo' => strtolower($modulo), 'controller' => strtolower($controller), 'action' => strtolower($action), 'baseHost' => $view->base_path("/"), 'cssStaticHost' => "", 'jsStaticHost' => "", 'statHost' => "", 'eHost' => "", 'statVers' => '?', 'min' => '', 'AppCore' => [], 'AppSandbox' => [], 'AppSchema' => ['modules' => [], 'requires' => []]]; $view->inlineScript()->appendScript("var yOSON=" . json_encode($paramsConfig, JSON_FORCE_OBJECT)); }; $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', MvcEvent::EVENT_DISPATCH, $callback, 100); $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Application', MvcEvent::EVENT_DISPATCH_ERROR, $callback, 100); }
public function onBootstrap(MvcEvent $e) { $sm = $e->getApplication()->getServiceManager(); $routeHandler = $sm->get('MultiRoleAclBase\\Handler\\RouteHandler'); $eventManager = $e->getApplication()->getEventManager(); $eventManager->attach(MvcEvent::EVENT_ROUTE, array($routeHandler, 'handler'), -100); }
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); }
/** * @param MvcEvent $event */ public function onBootstrap(MvcEvent $event) { $eventManager = $event->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $application = $event->getApplication(); $eventManager = $application->getEventManager(); /* @var $serviceManager ServiceManager */ $serviceManager = $application->getServiceManager(); $config = $serviceManager->get('config'); if (array_key_exists('locale', $config)) { $config = $config['locale']; } else { $config = null; } if (!$config) { Locale::setDefault('en'); // hardcoded here $translator = $serviceManager->get('translator'); AbstractValidator::setDefaultTranslator($translator); return; } $settings = new Settings($config); // set the locale based on URL from route or cookie & set the default translator to all the app $eventManager->attach(MvcEvent::EVENT_ROUTE, function (MvcEvent $e) use($config, $settings, $serviceManager) { $settings->setRouteMatch($e->getRouteMatch()); if (!$e->getRequest() instanceof Request) { $settings->setRequest($e->getRequest()); } \Locale::setDefault($settings->getLocale()); $translator = $serviceManager->get('translator'); AbstractValidator::setDefaultTranslator($translator); }, -9); }
/** * Attach authentication event listeners * * @param MvcEvent $event */ public function onBootstrap(MvcEvent $event) { $shared = $event->getApplication()->getEventManager()->getSharedManager(); $services = $event->getApplication()->getServiceManager(); $listener = $services->get(ApiKeyListener::class); $shared->attach('Zend\\Mvc\\Application', MvcAuthEvent::EVENT_AUTHENTICATION, [$listener, 'authenticate'], 1000); }
public function onBootstrap(MvcEvent $e) { if (\Zend\Console\Console::isConsole()) { return; } $eventManager = $e->getApplication()->getEventManager(); $services = $e->getApplication()->getServiceManager(); // TODO: Löschen sobald die Lösung mit der LoginBox klappt //$eventManager->attach( // array(MvcEvent::EVENT_RENDER, MvcEvent::EVENT_RENDER_ERROR), // array(new InjectLoginInfoListener(), 'injectLoginInfo'), -1000 //); $eventManager->attach(MvcEvent::EVENT_ROUTE, function (MvcEvent $e) use($services) { /** @var CheckPermissionsListener $checkPermissionsListener */ $checkPermissionsListener = $services->get('Auth/CheckPermissionsListener'); $checkPermissionsListener->onRoute($e); }, -10); $eventManager->attach(MvcEvent::EVENT_DISPATCH, function (MvcEvent $e) use($services) { /** @var CheckPermissionsListener $checkPermissionsListener */ $checkPermissionsListener = $services->get('Auth/CheckPermissionsListener'); $checkPermissionsListener->onDispatch($e); }, 10); $unauthorizedAccessListener = $services->get('UnauthorizedAccessListener'); $unauthorizedAccessListener->attach($eventManager); $sharedManager = $eventManager->getSharedManager(); $defaultlistener = $services->get('Auth/Listener/AuthAggregateListener'); $defaultlistener->attachShared($sharedManager); }
public function onBootstrap(MvcEvent $e) { /* @var $sm \Zend\ServiceManager\ServiceManager */ $sm = $e->getApplication()->getServiceManager(); $userEntityClass = $sm->get('zfcuser_module_options')->getUserEntityClass(); $classRef = new \ReflectionClass($userEntityClass); if (!$classRef->implementsInterface('Zf2SimpleAcl\\Entity\\UserInterface')) { throw new \InvalidArgumentException($userEntityClass . ' must implement Zf2SimpleAcl\\Entity\\UserInterface'); } $eventManager = $e->getApplication()->getEventManager(); $recognizers = $sm->get('zf2simpleacl_module_options')->getRecognizers(); $authService = new AuthenticationService($sm->get('zfcuserauthservice')); if (!empty($recognizers) && count($recognizers)) { $authService = new AuthenticationAggregator(); $authService->addService(new AuthenticationService($sm->get('zfcuserauthservice'))); foreach ($recognizers as $recognizer) { if (!$sm->has($recognizer)) { if (!$sm->has('zf2simpleacl_recognizer_' . $recognizer)) { throw new RuntimeException("Could not find recognizer service with name\n [{$recognizer}] nor with [zf2simpleacl_recognizer_{$recognizer}]"); } else { $recognizer = 'zf2simpleacl_recognizer_' . $recognizer; } } $authService->addService($sm->get($recognizer)); } } $eventManager->attach(new RouteGuard($sm->get('zf2simpleacl_acl'), $authService)); $eventManager->attach(new RedirectionStrategy($sm->get('zf2simpleacl_redirect_route'))); $eventManager->attach(new ForbiddenStrategy()); }
/** * @param MvcEvent $e * @return null|\Zend\Http\PhpEnvironment\Response */ public function errorProcess(MvcEvent $e) { /** @var \Zend\Di\Di $di */ $di = $e->getApplication()->getServiceManager()->get('di'); $eventParams = $e->getParams(); /** @var array $configuration */ $configuration = $e->getApplication()->getConfig(); $vars = array(); if (isset($eventParams['exception'])) { /** @var \Exception $exception */ $exception = $eventParams['exception']; if ($configuration['errors']['show_exceptions']['message']) { $vars['error-message'] = $exception->getMessage(); } if ($configuration['errors']['show_exceptions']['trace']) { $vars['error-trace'] = $exception->getTrace(); } } if (empty($vars)) { $vars['error'] = 'Something went wrong'; } /** @var PostProcessor\AbstractPostProcessor $postProcessor */ $postProcessor = $di->get($configuration['errors']['post_processor'], array('vars' => $vars, 'response' => $e->getResponse())); $postProcessor->process(); if ($eventParams['error'] === \Zend\Mvc\Application::ERROR_CONTROLLER_NOT_FOUND || $eventParams['error'] === \Zend\Mvc\Application::ERROR_ROUTER_NO_MATCH) { $e->getResponse()->setStatusCode(\Zend\Http\PhpEnvironment\Response::STATUS_CODE_501); } else { $e->getResponse()->setStatusCode(\Zend\Http\PhpEnvironment\Response::STATUS_CODE_500); } $e->stopPropagation(); return $postProcessor->getResponse(); }
public function onBootstrap(\Zend\Mvc\MvcEvent $e) { $evm = $e->getApplication()->getEventManager(); $evm->attach(\Zend\Mvc\MvcEvent::EVENT_ROUTE, function (\Zend\Mvc\MvcEvent $e) { $evm = $e->getApplication()->getEventManager(); $rm = $e->getRouteMatch(); if ($rm->getParam('cronLock')) { //Work out the filename of the lock file $config = $e->getApplication()->getServiceManager()->get('Config'); $dir = isset($config['cronLockDir']) ? $config['cronLockDir'] : '/tmp'; $filename = preg_replace("([^\\w\\s\\d\\-_~,;:\\[\\]\\(\\).])", '', $rm->getMatchedRouteName()); $file = "{$dir}/{$filename}"; $this->fp = fopen($file, "w"); if (flock($this->fp, LOCK_EX | LOCK_NB)) { //The cron action is not locked $evm->attach(MvcEvent::EVENT_DISPATCH, function ($e) { flock($this->fp, LOCK_UN); }); } else { //This cron action is locked, so redirect and terminate $rm->setMatchedRouteName('lock-cron')->setParam('controller', 'CronLock\\Controller\\CronLock')->setParam('action', 'lockCron'); $e->setRouteMatch($rm); } } return $e; }); }
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); }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']); $fallbackLocale = 'en_US'; $sm = $e->getApplication()->getServiceManager(); $sm->get('translator')->setLocale($locale)->setFallbackLocale($fallbackLocale); $type = 'phpArray'; $pattern = './vendor/zendframework/zendframework/resources/languages/%s/Zend_Validate.php'; $textDomain = 'default'; $translator = $e->getApplication()->getServiceManager()->get('translator'); if (file_exists(sprintf($pattern, $locale))) { $translator->addTranslationFile($type, sprintf($pattern, $locale), $textDomain); } else { if (file_exists(sprintf($pattern, preg_replace('/_(.*)/', '', $locale)))) { $translator->addTranslationFile($type, sprintf($pattern, preg_replace('/_(.*)/', '', $locale)), $textDomain); } else { $pattern = sprintf($pattern, preg_replace('/_(.*)/', '', $fallbackLocale)); $translator->addTranslationFile($type, $pattern, $textDomain); } } \Zend\Validator\AbstractValidator::setDefaultTranslator($translator); }
public function onBootstrap(MvcEvent $e) { $sm = $e->getApplication()->getServiceManager(); $app_config = $sm->get('config'); $app_options = $app_config['app_options']; if (array_key_exists('recover_from_fatal', $app_options) && $app_options['recover_from_fatal']) { $redirect_url = $app_options['redirect_url']; $callback = null; if (array_key_exists('fatal_errors_callback', $app_options) && $app_options['fatal_errors_callback']) { $callback = $app_options['fatal_errors_callback']; } register_shutdown_function(array('Application\\Module', 'handleFatalPHPErrors'), $redirect_url, $callback); } set_error_handler(array('Application\\Module', 'handlePHPErrors')); foreach ($app_options['php_settings'] as $key => $value) { ini_set($key, $value); } $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $logger = $sm->get('Logger'); $eventManager->attach(MvcEvent::EVENT_RENDER_ERROR, function (MvcEvent $e) use($logger) { $logger->info('An Exception has occurred. ' . $e->getResult()->exception->getMessage()); }, -200); }
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); }
/** * @param MvcEvent $event */ public function onBootstrap(MvcEvent $event) { $eventManager = $event->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $app = $event->getApplication(); $serviceManager = $app->getServiceManager(); // Set the Query Profiler $profiler = new DoplioFirePhpProfiler(); $capsule = new Capsule(); $config = $serviceManager->get('config')['database']; foreach ($config as $connName => $dbConfig) { $capsule->addConnection($dbConfig, $connName); if (isset($dbConfig['profiler']) && $dbConfig['profiler'] === TRUE) { $profiler->enable(); } } // $capsule->setCacheManager(); $capsule->bootEloquent(); $serviceManager->setService('Doplio', $capsule); $serviceManager->setService('DoplioFirePhpProfiler', $profiler); $eventManager->attach(MvcEvent::EVENT_FINISH, function () use($capsule, $config, $profiler) { if ($profiler->isDisabled()) { return; } foreach ($config as $connectionName => $notUsed) { $connection = $capsule->getConnection($connectionName); foreach ($connection->getQueryLog() as $query) { $profiler->addQuery($query, $connectionName); } } $profiler->showTables(); }); }
public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $serviceManager = $e->getApplication()->getServiceManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); if (!Console::isConsole()) { $viewHelperManager = $serviceManager->get('ViewHelperManager'); $formElementErrors = $viewHelperManager->get('formElementErrors'); $formElementErrors->setMessageOpenFormat('<div class="zui-error">'); $formElementErrors->setMessageSeparatorString('</div><div class="zui-error">'); $formElementErrors->setMessageCloseString('</div>'); $flashMessenger = $viewHelperManager->get('flashMessenger'); $flashMessenger->setMessageOpenFormat('<div class="zui-alert zui-alert-%s"><p>'); $flashMessenger->setMessageSeparatorString('</p><p>'); $flashMessenger->setMessageCloseString('</p><span class="zui-icon zui-icon-x" role="button" tabindex="0"></span></div>'); /** @var ManagerInterface $sessionManager */ $sessionManager = $serviceManager->get(ManagerInterface::class); $sessionManager->start(); } $helpers = $serviceManager->get('ViewHelperManager'); $hal = $helpers->get('Hal'); $hal->getEventManager()->attach('renderCollection.post', [$this, 'onRenderCollection']); $hal->getEventManager()->attach('renderEntity.post', [$this, 'onRenderEntity']); }
/** * @param $name * @return string */ public function __invoke($name) { if ($this->fragments == null) { // $serviceManager = $this->event->getApplication()->getServiceManager(); // get translator $translator = $serviceManager->get('Translator'); $locale = $translator->getLocale(); $language = \Locale::getPrimaryLanguage($locale); // try to get fragments from cache $cache = $serviceManager->get('Application\\Cache'); if ($cache) { $cacheKey = sprintf('page-fragments-%s-%s', $this->page->getId(), $language); $page_fragments = $cache->getItem($cacheKey); } // fetch from the DB if ($page_fragments == null) { /** @var \Doctrine\ORM\EntityManager $entity_manager */ $entity_manager = $serviceManager->get('Doctrine\\ORM\\EntityManager'); $page_fragments_repository = $entity_manager->getRepository('Msingi\\Cms\\Entity\\PageFragment'); $page_fragments = $page_fragments_repository->fetchFragmentsArray($this->page->getId(), $language); } // store to cache if ($cache) { $cache->setItem($cacheKey, $page_fragments); } $this->fragments = $page_fragments; } return isset($this->fragments[$name]) ? $this->fragments[$name] : ''; }
/** * Bootstrap session * * @param MvcEvent $event */ private function bootstrapSession(MvcEvent $event) { $session = $event->getApplication()->getServiceManager()->get('Zend\\Session\\SessionManager'); $session->start(); $container = new Container('initialized'); if (!isset($container->init)) { $serviceManager = $event->getApplication()->getServiceManager(); $request = $event->getRequest(); $session->regenerateId(); $container->init = 1; $container->remoteAddr = $request->getServer()->get('REMOTE_ADDR'); $container->httpUserAgent = $request->getServer()->get('HTTP_USER_AGENT'); $config = $serviceManager->get('Config'); if (!isset($config['session'])) { return; } $sessionConfig = $config['session']; if (isset($sessionConfig['validators'])) { $chain = $session->getValidatorChain(); foreach ($sessionConfig['validators'] as $validator) { switch ($validator) { case 'Zend\\Session\\Validator\\HttpUserAgent': $validator = new $validator($container->httpUserAgent); break; case 'Zend\\Session\\Validator\\RemoteAddr': $validator = new $validator($container->remoteAddr); break; default: $validator = new $validator(); } $chain->attach('session.validate', array($validator, 'isValid')); } } } }
public function onBootstrap(MvcEvent $e) { $sm = $e->getApplication()->getServiceManager(); $gem = $e->getApplication()->getEventManager(); // Definiendo ServiceFactory aca, para inyectar MVCEvent $sm->setFactory('JavaScript\\Service\\StoreScript', function ($sm) use($e) { return new \JavaScript\Service\StoreScript($e); })->setAlias('storeScript', 'JavaScript\\Service\\StoreScript'); // Definiendo Event Render $gem->attach(MvcEvent::EVENT_RENDER, function (MvcEvent $e) { flog('eventRender'); $sm = $e->getApplication()->getServiceManager(); $view = $sm->get('ViewRenderer'); $store = $sm->get('storeScript')->getStore(); $params = ['baseHost' => $view->base_path("/")] + $store; $view->headScript()->appendScript("window.Global=" . json_encode($params, JSON_FORCE_OBJECT)); }, 100); /* $e->getApplication()->getEventManager()->getSharedManager()->attach( 'Zend\Mvc\Controller\AbstractActionController', MvcEvent::EVENT_DISPATCH, $callback , 100 ); $e->getApplication()->getEventManager()->getSharedManager()->attach( 'Zend\Mvc\Application', MvcEvent::EVENT_DISPATCH_ERROR, $callback , 100 );*/ }
public function onBootstrap(MvcEvent $e) { $e->getApplication()->getServiceManager()->get('translator'); $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); }
/** * Before Dispatch Function * * @param MvcEvent $event */ function boforeDispatch(MvcEvent $event) { $sm = $event->getApplication()->getServiceManager(); $config = $sm->get('Config'); $list = $config['whitelist']; $name = $sm->get('request')->getUri()->getPath(); $controller = $event->getRouteMatch()->getParam('controller'); $action = $event->getRouteMatch()->getParam('action'); $session = new Container('User'); $controller = $event->getRouteMatch()->getParam('controller'); $action = $event->getRouteMatch()->getParam('action'); if (!(strpos($name, 'reset-password') || in_array($name, $list)) && $session->offsetExists('userId')) { $serviceManager = $event->getApplication()->getServiceManager(); $roleTable = $serviceManager->get('RoleTable'); $userRoleTable = $serviceManager->get('UserRoleTable'); $roleID = $userRoleTable->getUserRoles('user_id = ' . $session->offsetGet('userId'), array('role_id')); $roleName = $roleTable->getUserRoles('rid = ' . $roleID[0]['role_id'], array('role_name')); $userRole = $roleName[0]['role_name']; $acl = $serviceManager->get('Acl'); $acl->initAcl(); $status = $acl->isAccessAllowed($userRole, $controller, $action); if (!$status) { die('Permission denied'); } } }
public function setTemplate(MvcEvent $e) { $result = $e->getResult(); $router = $e->getRouteMatch(); $params = $router->getParams(); if (isset($params['__NAMESPACE__']) && isset($params['__CONTROLLER__']) && isset($params['action'])) { $controllerClass = $params['__NAMESPACE__']; $moduleNamespace = substr($controllerClass, strpos($controllerClass, '\\')); $moduleNamespace = substr($moduleNamespace, 1); $moduleNamespace = substr($moduleNamespace, 0, strpos($moduleNamespace, '\\Controller')); $templatePath = __DIR__; $config = $e->getApplication()->getServiceManager()->get('config'); if (isset($config['view_manager']['template_map'])) { $moduleNamespace = strtolower($moduleNamespace . '/' . $params['__CONTROLLER__']); $templatePath = $templatePath . '/view/' . $moduleNamespace . '/' . $params['action'] . '.phtml'; $moduleNamespace = str_replace('\\', '/', $moduleNamespace); $template = $moduleNamespace . '/' . $params['action']; $config['view_manager']['template_map'][$template] = $templatePath; $result->setTemplate($template); } //set Title; if (isset($config['view_manager']['siteName'])) { $siteName = $config['view_manager']['siteName']; } else { $siteName = $moduleNamespace; } $viewHelperManager = $e->getApplication()->getServiceManager()->get('viewHelperManager'); $headTitle = $viewHelperManager->get('headTitle'); $headTitle->setSeparator(' - '); $headTitle->append($params['action']); $headTitle->append($siteName); } }
public function onBootstrap(MvcEvent $e) { $app = $e->getApplication(); $eventManager = $app->getEventManager(); $serviceLocator = $app->getServiceManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); $serviceManager = $e->getApplication()->getServiceManager(); $eventManager->attachAggregate($serviceLocator->get('Listener.ExceptionStrategy')); $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function (MvcEvent $event) use($serviceManager) { $exception = $event->getParam('exception'); if ($exception) { do { $serviceManager->get('Logger')->crit(sprintf("%s:%d %s (%d) [%s]\n", $exception->getFile(), $exception->getLine(), $exception->getMessage(), $exception->getCode(), get_class($exception))); } while ($ex = $exception->getPrevious()); $response = $event->getResponse(); // $response->setHeaders( // $response->getHeaders()->addHeaderLine('Location', "/error-page") // ); $response->setStatusCode(302); $response->sendHeaders(); return $response; } }); }
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); }
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); } }