diff options
Diffstat (limited to 'src/web/core/_controller.php')
-rw-r--r-- | src/web/core/_controller.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/web/core/_controller.php b/src/web/core/_controller.php new file mode 100644 index 0000000..0dbb5b8 --- /dev/null +++ b/src/web/core/_controller.php @@ -0,0 +1,51 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ +abstract class Controller { + + // the main model + public $main; + + // the loader + public $load; + + /** + * Creates a constructor + * @param Loader $load - the website loaded object + */ + function __construct($load) { + $this->load = $load; + $this->main = $this->load->model('main'); + + $this->load->lang(); + $info = $this->main->info; + $app = $info['app']; + if ($app) { + $this->load->app_lang($app); + } + } + + public function index() {} + + public function redirect($link) { + header('Location: '. $link, true, 301); + die(); + } + + protected function view($__name, $data = array()) { + $__root = $GLOBALS['webroot']; + $__path = $__root . '/_views/' . $__name . '.php'; + if (is_file($__path)) { + extract($data); + require($__path); + return; + } + } + + protected function error($code): void { + $_GET['code'] = $code; + $this->main->info['app'] = 'error'; + $error_controller = $this->load->controller('error'); + $error_controller->index(); + die(); + } + +} |