summaryrefslogtreecommitdiff
path: root/web/core/controller.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--web/core/controller.php55
1 files changed, 55 insertions, 0 deletions
diff --git a/web/core/controller.php b/web/core/controller.php
new file mode 100644
index 0000000..946b460
--- /dev/null
+++ b/web/core/controller.php
@@ -0,0 +1,55 @@
+<?php /* Copyright (c) 2024 Freya Murphy */
+abstract class Controller {
+
+ // the main model
+ public $main;
+
+ // the loader
+ public $load;
+
+ // the database
+ public $db;
+
+ function __construct() {
+ $this->main = $GLOBALS['__vars']['main'];
+ $this->load = $GLOBALS['__vars']['load'];
+ $this->db = $this->main->db;
+
+ $info = $this->main->info;
+ $lang_code = $info['lang'];
+ $route_name = $info['route'];
+ $this->load->lang($lang_code);
+ $this->load->route_lang($lang_code, $route_name);
+ }
+
+ public function index() {}
+
+ 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 app_view($__name, $data = array()) {
+ $__root = $GLOBALS['webroot'];
+ $__route = $this->main->info['route'];
+ $__path = $__root . '/routes/' . $__route . '/views/' . $__name . '.php';
+ if (is_file($__path)) {
+ extract($data);
+ require($__path);
+ return;
+ }
+ }
+
+ protected function modal($title, $content, $data = array()) {
+ $data['title'] = $title;
+ $data['content'] = $content;
+ $this->view('template/modal', $data);
+ }
+
+}
+?>