Ejemplo n.º 1
0
 /**
  * Метод рендерит страницу, которая находится по маршруту LIW_WEB . 'views/' . $folder . '/' . $view . '.php'
  * В вид передается массив $attr пропущенный через функцию extract, что делает в нем доступными переменные,
  * соответствующие ключам массива.
  *
  * @param $folder
  * @param $view
  * @param null $attr
  * @throws \Exception
  */
 public function render($folder, $view, $attr = null)
 {
     if (!empty(ob_get_contents())) {
         ob_end_clean();
     }
     ob_start();
     $this->view_path = LIW_WEB . 'views' . DIRECTORY_SEPARATOR . $folder . DIRECTORY_SEPARATOR . $view . '.php';
     if (is_file($this->view_path)) {
         $this->view_folder = $folder;
         if (isset($attr) && is_array($attr)) {
             $this->attr = $attr;
             extract($attr, EXTR_OVERWRITE);
         }
         /**
          * Добавляем панель разработчика, если выставлен соответствующий флаг
          */
         if (defined('DEVELOP') && DEVELOP === true) {
             include __DIR__ . '/develop/view/develop_panel.php';
         }
         include $this->view_path;
     } else {
         throw new \Exception('File: ' . $this->view_path . ' not exist!');
     }
     if (Request::isAjax()) {
         echo ob_get_clean();
         return;
     }
     $this->view = ob_get_clean();
     /**
      * нужен особый вывод ошибок, т.к. ошибка в лэйауте будет выводиться дважды, как обычная ошибка, и как ошибка
      * внутри вывода ошибки.
      */
     require LIW_WEB . 'views/layouts/' . self::$layout . '.php';
     //подключение layout
 }
Ejemplo n.º 2
0
 public function showError($error)
 {
     $this->view = $error;
     if (Request::isAjax()) {
         echo '<div class="error">' . $error . '</div>';
         return;
     }
     require_once LIW_CORE . 'core/error/view/index.php';
 }