/// /// This file is part of CRIMSON. /// /// CRIMSON is free software; you can redistribute it and/or modify it /// under the terms of the GNU General Public License as published by /// the Free Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// CRIMSON is distributed in the hope that it will be useful, but /// WITHOUT ANY WARRANTY; without even the implied warranty of /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /// GNU General Public License for more details. /// /// You should have received a copy of the GNU General Public License /// along with CRIMSON. If not, see . abstract class Controller extends Base { // used by lib meta public array $CRIMSON_data = array(); /** * Default index for a app, empty */ public function index(): void {} /** * Lodas a view */ protected function view(string $CRIMSON_name, array $data = array()): void { $CRIMSON_path = WEB_ROOT . '/_views/' . $CRIMSON_name . '.php'; $this->CRIMSON_data = $data; if (!is_file($CRIMSON_path)) { CRIMSON_ERROR("View '{$CRIMSON_name}' does not exist!"); return; } extract($this->CRIMSON_data); require($CRIMSON_path); } /** * Redirectes to a link */ protected function redirect(string $link): never { header('Location: '. $link, true, 301); CRIMSON_DIE(); } /** * Loads a erorr page with a given * error code */ protected function error(int $code): never { // does not return ROUTER->handle_error($code); } }