From f373ead95fb5beb962c376b5b7b46dfde8ac4e57 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Mon, 23 Feb 2026 22:57:27 -0500 Subject: update website to work with crimson framework --- src/web/core/component.php | 119 ------------------------- src/web/core/controller.php | 65 -------------- src/web/core/core.php | 109 ----------------------- src/web/core/model.php | 39 --------- src/web/core/router.php | 208 -------------------------------------------- 5 files changed, 540 deletions(-) delete mode 100644 src/web/core/component.php delete mode 100644 src/web/core/controller.php delete mode 100644 src/web/core/core.php delete mode 100644 src/web/core/model.php delete mode 100644 src/web/core/router.php (limited to 'src/web/core') diff --git a/src/web/core/component.php b/src/web/core/component.php deleted file mode 100644 index 376e24d..0000000 --- a/src/web/core/component.php +++ /dev/null @@ -1,119 +0,0 @@ -newInstance(); - Component::$loaded[$path] = $obj; - - return $obj; - } - - /** - * Loads a model - * @param string $name - the name of the model to load - */ - protected function load_model($name): Model|NULL - { - $dir = WEB_ROOT . '/_model'; - return $this->load_type($name, $dir, 'model'); - } - - /** - * Loads a controller - * @param string $name - the name of the controller to load - */ - public function load_controller($name): Controller|NULL - { - $dir = WEB_ROOT . '/_controller'; - return $this->load_type($name, $dir, 'controller'); - } - -// ========================================= LANG == - - /** - * Loads a php lang file into the lang array - */ - private static function load_lang_file(string $file): void - { - $lang = $GLOBALS['__lang']; - require($file); - $GLOBALS['__lang'] = $lang; - } - - /** - * Loads each php file lang strings in a directory - */ - private static function load_lang_dir(string $dir): void - { - if ($handle = opendir($dir)) { - while (false !== ($entry = readdir($handle))) { - if ($entry === '.' || $entry === '..') - continue; - Component::load_lang_file($entry); - } - } - } - - /** - * Loads the given common lang - */ - protected static function load_lang(string ...$langs): void - { - $root = WEB_ROOT . '/lang'; - - foreach ($langs as $lang) { - $file = "{$root}/{$lang}.php"; - $dir = "{$root}/{$lang}"; - - if (file_exists($file)) - Component::load_lang_file($file); - else if (is_dir($dir)) - Component::load_lang_dir($dir); - - } - } - -} diff --git a/src/web/core/controller.php b/src/web/core/controller.php deleted file mode 100644 index ca892e2..0000000 --- a/src/web/core/controller.php +++ /dev/null @@ -1,65 +0,0 @@ -load_controller('error'); - $error_controller->code($code); - die(); - } - - /** - * Returns HTTP POST information if POST request. - * Returns 405 Method Not Allowed if not. - * - * If $key is specified, returns only that key. otherwise - * returns HTTP 400 Bad Request; - */ - protected function post_data(?string $key = NULL): array|string - { - // only post requests allowed - if ($_SERVER['REQUEST_METHOD'] != 'POST') - $this->error(405); - - // return entire $_POST array - if (!$key) - return $_POST; - - if (!isset($_POST[$key])) - $this->error(400); - - return $_POST[$key]; - } - -} diff --git a/src/web/core/core.php b/src/web/core/core.php deleted file mode 100644 index 4c341c2..0000000 --- a/src/web/core/core.php +++ /dev/null @@ -1,109 +0,0 @@ -'; - } - - /** - * Loads a css html link - * @param string $path - the path to the css file - */ - public static function link_css(string $path): string - { - $stamp = Core::asset_stamp("public/$path"); - $href = Core::get_url("public/{$path}?timestamp={$stamp}"); - return ''; - } - - /** - * Loads a css html link - * @param string $path - the path to the css file - */ - public static function embed_css(string $path): string - { - $file = PUBLIC_ROOT . '/' . $path; - if (file_exists($file)) { - $text = file_get_contents($file); - return ""; - } else { - return ""; - } - } - - /** - * Formats a ISO date - * @param $iso_date the ISO date - */ - public static function format_date(string $iso_date): string - { - return date("Y-m-d D H:i", strtotime($iso_date)) . ' EST'; - } -} diff --git a/src/web/core/model.php b/src/web/core/model.php deleted file mode 100644 index 6a42a98..0000000 --- a/src/web/core/model.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ - public static function get_base_data(?string $app = NULL): array - { - $data = array(); - $data['title'] = lang('first_name'); - $data['desc'] = lang('default_short_desc'); - $data['css'] = array(); - $data['js'] = array(); - - $style = CONFIG['style']; - $js = CONFIG['js']; - - if (!$app) - $app = CONTEXT['app']; - - if (isset($style[$app])) { - $css = $style[$app]; - if (!is_array($css)) - $css = array($css); - $data['css'] = $css; - } - - if (isset($js[$app])) { - $js = $js[$app]; - if (!is_array($js)) - $js = array($js); - $data['js'] = $js; - } - - return $data; - } - -} diff --git a/src/web/core/router.php b/src/web/core/router.php deleted file mode 100644 index 6a543aa..0000000 --- a/src/web/core/router.php +++ /dev/null @@ -1,208 +0,0 @@ -db_ready = file_exists('/status/ready'); - $this->recursed = FALSE; - $this->req = $this->get_req(); - } - - /** - * @param string $path - the current request path - * Gets the current route - * @return array - */ - private function get_req_route($path): array - { - // trim the path - $path = trim($path); - // remove first '/' - $path = substr($path, 1); - - // get modified route - $routes = CONFIG['routes']; - foreach ($routes as $key => $value) { - $key = "/^{$key}$/"; - if (!preg_match($key, $path, $matches)) - continue; - - $path = $value; - - for ($i = 1; $i < count($matches); $i++) { - $path = str_replace( - "\\{$i}", - $matches[$i], - $path); - } - - break; - } - - // get path parts - $parts = explode('/', $path); - // get the length - $len = count($parts); - // get route info - $route = array(); - $route['app'] = $len > 0 ? $parts[0] : 'index'; - $route['slug'] = $len > 1 ? $parts[1] : 'index'; - $route['args'] = array_slice($parts, 2); - - return $route; - } - - /** - * Gets the users ip - */ - private function get_ip(): ?string - { - $headers = array ( - 'HTTP_CLIENT_IP', - 'HTTP_X_FORWARDED_FOR', - 'HTTP_X_FORWARDED', - 'HTTP_FORWARDED_FOR', - 'HTTP_FORWARDED', - 'HTTP_X_REAL_IP', - 'REMOTE_ADDR' - ); - foreach ($headers as $header) { - if (isset($_SERVER[$header])) - return $_SERVER[$header]; - } - return NULL; - } - - /** - * Gets the curret request info - * @return array - */ - private function get_req(): array - { - $method = $_SERVER['REQUEST_METHOD']; - $uri_str = $_SERVER['REQUEST_URI']; - $uri = parse_url($uri_str); - - if (!$uri) { - $uri = array('path' => '/error'); - } - - $path = ''; - if (array_key_exists('path', $uri)) { - $path = $uri['path']; - } - - return array_merge( - array( - 'uri' => $uri, - 'uri_str' => $uri_str, - 'method' => $method, - 'ip' => $this->get_ip() - ), - $this->get_req_route($path), - ); - } - - /** - * Handles a router error code - * @param int $code - the http error code - */ - private function handle_error(int $code): void - { - if ($this->recursed) - die($code . ' (recursed)'); - - $this->recursed = TRUE; - $this->req['app'] = 'error'; - $this->req['slug'] = 'code'; - $this->req['args'] = array($code); - $this->handle_req(); - } - - /** - * @param array $req - */ - private function load_htc(array $req): void - { - $parts = explode('/', $req['uri_str']); - $file = end($parts); - $path = PUBLIC_ROOT . '/polyfills/' . $file; - - if (file_exists($path)) { - header('Content-type: text/x-component'); - include($path); - } else { - $this->handle_error(400); - } - } - - /** - * @param array $req - * @param array $req - */ - public function handle_req(): void - { - if ($this->recursed === FALSE) { - // if we are in a recursing error handler - // we dont want to trigger a db 503 forever - // since its already active - if ($this->db_ready === FALSE) { - $this->handle_error(503); - return; - } - } - - // server error if we cannot parse url - if (!$this->req) { - $this->handle_error(500); - return; - } - - // load htc if someone is requesting it (hi IE6 :3) - if (str_ends_with($this->req['uri_str'], '.htc')) { - $this->load_htc($this->req); - return; - } - - // load the controller - $controller = $this->load_controller($this->req['app']); - if ($controller === NULL) { - $this->handle_error(404); - return; - } - - $ref = NULL; - try { - $cls = new ReflectionClass($controller); - $mds = $cls->getMethods(ReflectionMethod::IS_PUBLIC); - foreach ($mds as $md) { - if ($md->name !== $this->req['slug']) - continue; - if (count($md->getParameters()) != - count($this->req['args'])) - continue; - $ref = $md; - break; - } - } catch (Exception $_e) {} - - if ($ref === NULL) { - $this->handle_error(404); - return; - } - - define('CONTEXT', $this->req); - Component::load_lang('common', $this->req['app']); - $ref->invokeArgs($controller, $this->req['args']); - } - -} -- cgit v1.2.3-freya