summaryrefslogtreecommitdiff
path: root/src/web/core/_controller.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/web/core/_controller.php')
-rw-r--r--src/web/core/_controller.php51
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();
+ }
+
+}