Пример #1
0
 /**
  * Запускает движок системы.
  *
  * @return array массив с результатами содержащий:
  * -тип файла, который надо открыть
  * -данные для этого файла
  * -вид
  */
 public function run()
 {
     $data = null;
     $view = null;
     $variables = null;
     // Если найден контролер.
     if ($controller = $this->getController()) {
         MG::set('controller', $controller);
         $contr = new $controller();
         $type = 'view';
         $variables = $contr->variables;
         $view = $this->getView();
     } elseif ($data = MG::getPhpContent()) {
         // отключаем вывод шаблона для пользовательских скриптов
         MG::disableTemplate();
         // Если найден пользовательский файл, возвращает его расширение (php||html).
         $ext = explode(".", $data);
         $type = end($ext);
         // если запрошен существуюий файл стилей или js или любое другое расширение кроме html и php,
         // то редиректрим на его настоящее местоположение минуя проверки движка
         if ($type != 'php' && $type != 'html') {
             MG::redirect('/' . $data);
             exit;
         }
         if ($type != 'php') {
             // если файл не исполняемый то считываем его в строку
             $data = file_get_contents($data);
             $type = 'html';
         }
     } elseif ($data = MG::getHtmlContent()) {
         // Если найден статический контент в БД.
         $type = 'html';
     }
     // Если не существует запрашиваемых данных.
     $type = !empty($type) ? $type : '404';
     $result = array('type' => $type, 'data' => $data, 'view' => $view, 'variables' => $variables);
     return $result;
 }