function execute(&$filterChain, &$controller, &$request, &$user) { $execChain =& $controller->getExecutionChain(); $action =& $execChain->getAction($execChain->getSize() - 1); $actName = $controller->getCurrentAction(); $modName = $controller->getCurrentModule(); $method = $request->getMethod(); if ($action->initialize($controller, $request, $user)) { if ($action->isSecure()) { $authHandler =& $controller->getAuthorizationHandler(); if ($authHandler === NULL) { trigger_error('Action requires security but no authorization ' . 'handler has been registered', E_USER_NOTICE); } else { if (!$authHandler->execute($controller, $request, $user, $action)) { return; } } } if (($action->getRequestMethods() & $method) != $method) { $actView = $action->getDefaultView($controller, $request, $user); } else { $validManager =& new ValidatorManager(); $action->registerValidators($validManager, $controller, $request, $user); if (!$validManager->execute($controller, $request, $user) || !$action->validate($controller, $request, $user)) { $actView = $action->handleError($controller, $request, $user); } else { $actView = $action->execute($controller, $request, $user); } } if (is_string($actView) || $actView === NULL) { $viewMod = $modName; $viewAct = $actName; $viewName = $actView; } else { if (is_array($actView)) { $viewMod = $actView[0]; $viewAct = $actView[1]; $viewName = $actView[2]; } } if ($viewName != VIEW_NONE) { /* if (!$controller->viewExists($viewMod, $viewAct, $viewName)) { $error = 'Module ' . $viewMod . ' does not contain view ' . $viewAct . 'View_' . $viewName . ' or the file is ' . 'not readable'; trigger_error($error, E_USER_ERROR); exit; } */ if (!$controller->viewExists($viewMod, $viewAct, $viewName)) { $view = new DefaultView(); } else { $view =& $controller->getView($viewMod, $viewAct, $viewName); } $layout = $action->layout; if ($layout) { $test = $view->initialize($controller, $request, $user); $renderer =& $view->execute($controller, $request, $user); $renderer->setMode(RENDER_VAR); $partial = $renderer->fetchResult($controller, $request, $user); $layout_renderer =& RendererUtils::getSmartyRenderer(); $layout_template = "{$layout}.html"; $layout_renderer->setTemplate($layout_template); $layout_renderer->setAttribute('partial', $partial); $layout_renderer->execute($controller, $request, $user); } else { $test = $view->initialize($controller, $request, $user); $renderer =& $view->execute($controller, $request, $user); $renderer->execute($controller, $request, $user); } $view->cleanup($controller, $request, $user); $request->setAttributeByRef('org.mojavi.renderer', $renderer); } } }