diff --git a/src/bootstrap/errors.php b/src/bootstrap/errors.php index 2a38193..ed24dd8 100644 --- a/src/bootstrap/errors.php +++ b/src/bootstrap/errors.php @@ -252,9 +252,8 @@ function tts_exception_handler(\Throwable $exception) { tts_json_error_handler($err); - $tts_project_base_ref = (defined("TTS_PROJECT_BASE_REF")) ? TTS_PROJECT_BASE_REF : ""; - $assets = $tts_project_base_ref; - $msg = ''; + $assets = \tts\site_helper::get_asset("uikit/css/uikit.gradient.min.css"); + $msg = ''; $msg .= '
'; $msg .= $common_err; $msg .= '
'; @@ -298,10 +297,9 @@ function tts_custom_error_checker(): void { } } else { - $tts_project_base_ref = (defined("TTS_PROJECT_BASE_REF")) ? TTS_PROJECT_BASE_REF : ""; - $assets = $tts_project_base_ref; + $assets = $assets = \tts\site_helper::get_asset("uikit/css/uikit.gradient.min.css"); - $mini = ''; + $mini = ''; $mini .= "\r\n\r\n"; $mini .= '
' . PHP_EOL; $mini .= "{$a_errors['message']}, in file: {$a_errors['file']}, on line #{$a_errors['line']}."; diff --git a/src/bootstrap/site_helper.php b/src/bootstrap/site_helper.php index 942c4c7..8ebafdc 100644 --- a/src/bootstrap/site_helper.php +++ b/src/bootstrap/site_helper.php @@ -191,6 +191,22 @@ final class site_helper { self::$PRJ = $folder; } + public static function get_asset(string $file): string { + // Do not allow : in safe_file!!! a-z0-9._ + $safe_file = preg_replace('/[^a-zA-Z0-9._]/', '', $file); + if (strpos($safe_file, "..") !== false) { + return "/assets/"; // Too dangerous to pass into file_exists! + } + if (empty(self::get_route())) { + return "/assets/"; + } + $up_one = dirname(self::$ROOT, 1); + if (file_exists($up_one . "/public/assets/" . self::$PRJ . "/" . $file)) { + return "/assets/" . self::$PRJ; + } + return "/assets/"; + } + public static function init(string $ROOT, string $REQUEST_URI, string $REQUEST_METHOD, bool $testing = false) { self::$ROOT = $ROOT; self::$REQUEST_URI = $REQUEST_URI; @@ -199,6 +215,12 @@ final class site_helper { self::set_params(); self::set_route(); + + if (empty(self::get_route())) { + define('PROJECT_ASSETS_BASE_REF', ''); + } else { + define('PROJECT_ASSETS_BASE_REF', "/assets/" . self::$PRJ); + } } public static function set_project_namespace() { @@ -212,7 +234,6 @@ final class site_helper { define('TTS_SITE_URL', self::tts_site_url()); define('TTS_PROJECT_BASE_REF', TTS_SITE_URL . $project); define("TTS_BROWSER", \tts\safer_io::get_clean_server_var('HTTP_USER_AGENT')); - define('PROJECT_ASSETS_BASE_REF', "/assets/" . $project); define("PROJECT_ASSETS_DIR", $up_one . "/public/assets/" . $project); } else { // Web Server URI not found @@ -220,7 +241,6 @@ final class site_helper { define('TTS_SITE_URL', ''); define('TTS_PROJECT_BASE_REF', ''); define("TTS_BROWSER", ''); - define('PROJECT_ASSETS_BASE_REF', ''); define("PROJECT_ASSETS_DIR", ''); } diff --git a/src/classes/assets.php b/src/classes/assets.php index 52a6d36..033696a 100644 --- a/src/classes/assets.php +++ b/src/classes/assets.php @@ -79,6 +79,11 @@ final class assets { $tts = self::is_minified($path, $file); return ($tts !== false) ? PROJECT_ASSETS_BASE_REF . "/" . $tts : false; } + if ($scope === 'assets') { + $path = dirname(\tts\site_helper::get_root(), 1) . "/public/assets/"; + $tts = self::is_minified($path, $file); + return ($tts !== false) ? "/assets/" . $tts : false; + } return $file; } /** @@ -93,6 +98,8 @@ final class assets { return ""; } else if ($scope === 'project' || $scope === 'app') { $path = PROJECT_ASSETS_DIR . "/"; + } else if ($scope === 'assets') { + $path = dirname(\tts\site_helper::get_root(), 1) . "/public/assets/"; } else { return ""; } diff --git a/src/classes/tag_matches.php b/src/classes/tag_matches.php index 8492872..995b5ff 100644 --- a/src/classes/tag_matches.php +++ b/src/classes/tag_matches.php @@ -18,8 +18,8 @@ public static function check_tags(string $page): array { $l_page = \tts\common::string_to_lowercase($page); unset($page); - $assets = TTS_PROJECT_BASE_REF; - $ui = ''; + $assets = \tts\site_helper::get_asset("uikit/css/uikit.gradient.min.css"); + $ui = ''; $ui .= '
'; $ui_end = '
'; diff --git a/src/templates/dev_error.php b/src/templates/dev_error.php index d46c7f7..ad42885 100644 --- a/src/templates/dev_error.php +++ b/src/templates/dev_error.php @@ -1,11 +1,15 @@ - + @@ -14,7 +18,7 @@ $prj_base = (defined("TTS_PROJECT_BASE_REF")) ? TTS_PROJECT_BASE_REF : ""; DEV ERROR! - + diff --git a/src/views/404.php b/src/views/404.php index c382579..368c105 100644 --- a/src/views/404.php +++ b/src/views/404.php @@ -7,14 +7,20 @@ header( "{$protocol} 404 Not Found", true, 404 ); header('Content-type: text/html; charset=utf-8'); + if (defined("PROJECT_ASSETS_BASE_REF")) { + $base_ref = PROJECT_ASSETS_BASE_REF; + } else { + $base_ref = ""; + } ?> + - + 404 Page not found!