Example #1
0
 private function _initRouter()
 {
     if (null == $this->_router) {
         $this->_router = new CRouter();
     }
     $this->_router->setUrlPath($this->_urlpath);
 }
Example #2
0
 /**
  * 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');
             }
         }
     }
 }