Exemplo n.º 1
0
 static function _run()
 {
     $code = 1;
     $msg = '';
     $data = null;
     App::init();
     try {
         $data = self::execute();
     } catch (AppBreakException $e) {
         return;
     } catch (Exception $e) {
         if (App::$controller && App::$controller->is_ajax) {
             $code = $e->getCode();
             $msg = $e->getMessage();
             if (!strlen($msg)) {
                 $msg = 'error';
             }
         } else {
             return self::error_handle($e);
         }
     }
     if (App::$controller && App::$controller->is_ajax) {
         $resp = array('code' => $code, 'message' => $msg, 'data' => $data);
         if (defined('JSON_UNESCAPED_UNICODE')) {
             $json = json_encode($resp, JSON_UNESCAPED_UNICODE);
         } else {
             $json = json_encode($resp);
         }
         $jp = App::$controller->jp;
         if (!preg_match('/^[a-z0-9_]+$/i', $jp)) {
             $jp = false;
         }
         if ($jp) {
             echo "{$jp}({$json});";
         } else {
             echo $json;
         }
     } else {
         #var_dump(find_view_and_layout());
         list($__view, $__layout) = find_view_and_layout();
         if (!$__view) {
             Logger::trace("No view for " . base_path());
         } else {
             Logger::trace("View {$__view}");
             $params = App::$context->as_array();
             extract($params);
             ob_start();
             include $__view;
             self::$view_content = ob_get_clean();
         }
         if ($__layout) {
             Logger::trace("Layout {$__layout}");
             $params = App::$context->as_array();
             extract($params);
             include $__layout;
         } else {
             if (App::$controller->layout !== false) {
                 Logger::error("No layout for " . base_path());
             }
             _view();
         }
     }
 }
Exemplo n.º 2
0
Arquivo: App.php Projeto: lkmmmj/iphp
 private static function html_resp()
 {
     #var_dump(find_view_and_layout());
     list($__view, $__layout) = find_view_and_layout();
     if (!$__view) {
         Logger::trace("No view for " . base_path());
     } else {
         Logger::trace("View {$__view}");
         $__params = App::$context->as_array();
         extract($__params);
         ob_start();
         include $__view;
         self::$view_content = ob_get_clean();
     }
     if ($__layout) {
         Logger::trace("Layout {$__layout}");
         $__params = App::$context->as_array();
         extract($__params);
         include $__layout;
     } else {
         if (App::$controller->layout !== false) {
             Logger::error("No layout for " . base_path());
         }
         _view();
     }
 }