X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=module%2FApplication%2Fsrc%2FApplication%2FView%2FListener.php;h=100530e91c611227ea8069cf7df6ca90d9d2501b;hb=a3499c5efbdf8b7be69aab4c756588d722ecf4ef;hp=71ea50b7e1452a2954fc45bd5230185910034c16;hpb=2d47e39b8075d7bf24397f11a0056afe8c417aa1;p=zf2.biz%2Fgalerie.git diff --git a/module/Application/src/Application/View/Listener.php b/module/Application/src/Application/View/Listener.php index 71ea50b..100530e 100644 --- a/module/Application/src/Application/View/Listener.php +++ b/module/Application/src/Application/View/Listener.php @@ -40,8 +40,8 @@ class Listener implements ListenerAggregate public function attach(EventCollection $events) { $this->listeners[] = $events->attach('dispatch.error', array($this, 'renderError')); - $this->listeners[] = $events->attach('dispatch', array($this, 'render404'), -80); - $this->listeners[] = $events->attach('dispatch', array($this, 'renderLayout'), -1000); + $this->listeners[] = $events->attach('dispatch', array($this, 'render404'), -1000); + $this->listeners[] = $events->attach('dispatch', array($this, 'renderLayout'), -80); } public function detach(EventCollection $events) @@ -55,10 +55,6 @@ class Listener implements ListenerAggregate public function registerStaticListeners(StaticEventCollection $events, $locator) { - $ident = 'Application\Controller\PageController'; - $handler = $events->attach($ident, 'dispatch', array($this, 'renderPageController'), -50); - $this->staticListeners[] = array($ident, $handler); - $ident = 'Zend\Mvc\Controller\ActionController'; $handler = $events->attach($ident, 'dispatch', array($this, 'renderView'), -50); $this->staticListeners[] = array($ident, $handler); @@ -73,39 +69,6 @@ class Listener implements ListenerAggregate } } - public function renderPageController(MvcEvent $e) - { - $page = $e->getResult(); - if ($page instanceof Response) { - return; - } - - $response = $e->getResponse(); - if ($response->isNotFound()) { - return; - } - - $routeMatch = $e->getRouteMatch(); - - if (!$routeMatch) { - $page = '404'; - } else { - $page = $routeMatch->getParam('action', '404'); - } - - if ($page == '404') { - $response->setStatusCode(404); - } - - $script = 'error/' . $page . '.phtml'; - - // Action content - $content = $this->view->render($script); - $e->setResult($content); - - return $this->renderLayout($e); - } - public function renderView(MvcEvent $e) { $response = $e->getResponse(); @@ -127,7 +90,7 @@ class Listener implements ListenerAggregate $content = $this->view->render($script, $vars); - $e->setResult($content); + $e->setParam('content', $content); return $content; } @@ -142,13 +105,15 @@ class Listener implements ListenerAggregate return $response; } - $footer = $e->getParam('footer', false); - $vars = array('footer' => $footer); + $vars = $e->getResult(); + if (is_scalar($vars)) { + $vars = array('content' => $vars); + } elseif (is_object($vars) && !$vars instanceof ArrayAccess) { + $vars = (array) $vars; + } if (false !== ($contentParam = $e->getParam('content', false))) { $vars['content'] = $contentParam; - } else { - $vars['content'] = $e->getResult(); } $layout = $this->view->render($this->layout, $vars); @@ -185,7 +150,6 @@ class Listener implements ListenerAggregate public function renderError(MvcEvent $e) { $error = $e->getError(); - $app = $e->getTarget(); $response = $e->getResponse(); if (!$response) { $response = new Response(); @@ -205,7 +169,6 @@ class Listener implements ListenerAggregate case Application::ERROR_EXCEPTION: default: - $exception = $e->getParam('exception'); $vars = array( 'message' => 'An error occurred during execution; please try again later.', 'exception' => $e->getParam('exception'),