/** * Process request and generate response. Main entry for all processing. */ private function processRequest() { $router = new CRouter(getRequest('action')); $controller = $router->getController(); $controller = new $controller(); $controller->setAction($router->getAction()); $response = $controller->run(); // Controller returned data if ($response instanceof CControllerResponseData) { // if no view defined we pass data directly to layout if ($router->getView() === null) { $layout = new CView($router->getLayout(), $response->getData()); echo $layout->getOutput(); } else { $view = new CView($router->getView(), $response->getData()); $data['page']['title'] = $response->getTitle(); $data['controller']['action'] = $router->getAction(); $data['main_block'] = $view->getOutput(); $data['fullscreen'] = isset($_REQUEST['fullscreen']) && $_REQUEST['fullscreen'] == 1 ? 1 : 0; $data['javascript']['files'] = $view->getAddedJS(); $data['javascript']['pre'] = $view->getIncludedJS(); $data['javascript']['post'] = $view->getPostJS(); $layout = new CView($router->getLayout(), $data); echo $layout->getOutput(); } } else { if ($response instanceof CControllerResponseRedirect) { header('Content-Type: text/html; charset=UTF-8'); if ($response->getMessageOk() !== null) { CSession::setValue('messageOk', $response->getMessageOk()); } if ($response->getMessageError() !== null) { CSession::setValue('messageError', $response->getMessageError()); } global $ZBX_MESSAGES; if (isset($ZBX_MESSAGES)) { CSession::setValue('messages', $ZBX_MESSAGES); } if ($response->getFormData() !== null) { CSession::setValue('formData', $response->getFormData()); } redirect($response->getLocation()); } else { if ($response instanceof CControllerResponseFatal) { header('Content-Type: text/html; charset=UTF-8'); $response->addMessage('Controller: ' . $router->getAction()); ksort($_REQUEST); foreach ($_REQUEST as $key => $value) { // do not output SID if ($key != 'sid') { $response->addMessage($key . ': ' . $value); } } CSession::setValue('messages', $response->getMessages()); redirect('zabbix.php?action=system.warning'); } } } }