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)
$response->setStatusCode(404);
}
- $script = 'pages/' . $page . '.phtml';
+ $script = 'error/' . $page . '.phtml';
// Action content
$content = $this->view->render($script);
$content = $this->view->render($script, $vars);
- $e->setResult($content);
+ $e->setParam('content', $content);
return $content;
}
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);
'display_exceptions' => $this->displayExceptions(),
);
- $content = $this->view->render('pages/404.phtml', $vars);
+ $content = $this->view->render('error/404.phtml', $vars);
$e->setResult($content);