diff options
Diffstat (limited to 'src/web/_model/main.php')
-rw-r--r-- | src/web/_model/main.php | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/web/_model/main.php b/src/web/_model/main.php new file mode 100644 index 0000000..6767010 --- /dev/null +++ b/src/web/_model/main.php @@ -0,0 +1,97 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ +class Main_model extends Model { + + // stores the current request info + public $info; + + // the main loader + public $load; + + /** + * Loads the main model + * @param Loader $load - the main loader object + */ + function __construct($load) { + parent::__construct($load, TRUE); + $GLOBALS['main_model'] = $this; + } + + /** + * Gets the stamp for a asset path + * @param string $path + */ + private function asset_stamp($path): int { + $root = $GLOBALS['webroot']; + $path = $root . '/../public/' . $path; + return filemtime($path); + } + + /** + * Get the current IE version + * @returns the IE version if valid IE user agent, INT_MAX if not + */ + public function get_ie_version(): int { + if (preg_match('/MSIE\s(?P<v>\d+)/i', @$_SERVER['HTTP_USER_AGENT'], $B)) { + return $B['v']; + } else { + return PHP_INT_MAX; + } + } + + /** + * Gets the full url including the http scheme and host part + * Needed for IE 6 & 7 need. + */ + public function get_url_full($path): string { + $host = $_SERVER['HTTP_HOST']; + $base = lang('base_path'); + $url = "http://{$host}{$base}{$path}"; + return $url; + } + + /** + * Gets a full path url from a relative path + */ + public function get_url($path): string { + if ($this->get_ie_version() <= 7) { + return $this->get_url_full($path); + } + $base = lang('base_path'); + $url = "{$base}{$path}"; + return $url; + } + + /** + * Loads a css html link + * @param string $path - the path to the css file + */ + public function link_css($path): string { + $stamp = $this->asset_stamp($path); + $href = $this->get_url("public/{$path}?stamp={$stamp}"); + return '<link rel="stylesheet" href="'. $href .'">'; + } + + /** + * Loads a css html link + * @param string $path - the path to the css file + */ + public function embed_css($path): string { + $file = $GLOBALS['publicroot'] . '/' . $path; + if (file_exists($file)) { + $text = file_get_contents($file); + return "<style>{$text}</style>"; + } else { + return ""; + } + } + + /** + * Formats a ISO date + * @param $iso_date the ISO date + */ + public function format_date($iso_date): string { + return date("Y-m-d D H:m", strtotime($iso_date)); + } +} + +?> |