Advertisement
Guest User

Untitled

a guest
May 8th, 2012
1,197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. ZF2 - Get controller name into layout/views
  2. public function postDispatch(Zend_Controller_Request_Abstract $request)
  3. {
  4. $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
  5. if (null === $viewRenderer->view) {
  6. $viewRenderer->initView();
  7. }
  8. $view = $viewRenderer->view;
  9.  
  10. $view->module = $request->getModuleName();
  11. $view->controller = $request->getControllerName();
  12. $view->action = $request->getActionName();
  13. }
  14.  
  15. public function renderView(MvcEvent $e)
  16. {
  17. $response = $e->getResponse();
  18. if (!$response->isSuccess()) {
  19. return;
  20. }
  21.  
  22. $routeMatch = $e->getRouteMatch();
  23. $controller = $routeMatch->getParam('controller', 'index');
  24. $action = $routeMatch->getParam('action', 'index');
  25. $script = $controller . '/' . $action . '.phtml';
  26.  
  27. // Assign these to the view
  28.  
  29. $vars = $e->getResult();
  30. if (is_scalar($vars)) {
  31. $vars = array('content' => $vars);
  32. } elseif (is_object($vars) && !$vars instanceof ArrayAccess) {
  33. $vars = (array) $vars;
  34. }
  35.  
  36. // Just before the layout is rendered... add the vars (already being passed)
  37. $vars['controller'] = $controller;
  38. $vars['action'] = $action;
  39.  
  40. $content = $this->view->render($script, $vars);
  41.  
  42. $e->setParam('content', $content);
  43. return $content;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement