$pageScript, 'type' => 'module']; } foreach(($conf['scripts'] ?? []) as $s){ if($src = self::getScriptPath($s)){ $validatedScripts[] = ['src' => $src, 'type' => $s['type'] == 'module' ? 'module' : 'text/javascript']; } } return [ 'header' => BASE . "/rss/php/views/headers/" . ($conf['layout']['header'] ?? 'default') . ".php", 'view' => BASE . "/rss/php/views/pages/$pageName.php", 'footer' => BASE . "/rss/php/views/footers/" . ($conf['layout']['footer'] ?? 'default') . ".php", 'data' => self::clean($viewData), 'scripts' => $validatedScripts, 'conf' => $conf ]; } private static function validate($c) { $restricted = $c['rules']['restricted'] ?? false; if (!$restricted) return true; return $_SERVER['VOR_AUTH']; } private static function authRedirect($c){ $loginRestricted = $c['rules']['login_restricted'] ?? false; if($loginRestricted && isset($_SERVER['VOR_AUTH'])){ header('location: ' . $c['rules']['login_redirect'] ?? '/'); exit(); } } private static function execute($f) { $className = "\\Vor\\application\\" . $f['class']; if (class_exists($className)) { $instance = new $className(); $method = $f['function']; if (method_exists($instance, $method)) { return $instance->$method(); } } return null; } public static function clean($data){ if(is_array($data)){ return array_map([self::class, 'clean'], $data); } return htmlspecialchars(trim((string)$data), ENT_QUOTES, 'UTF-8'); } public static function loadScripts($conf) { if (isset($conf['scripts']) && is_array($conf['scripts'])) { foreach ($conf['scripts'] as $script) { echo '' . PHP_EOL; } } } public static function getScriptPath($script){ $folder = ($script['type'] ?? '') === 'module' ? 'modules' : 'scripts'; $name = $script['name']; $path = "/rss/js/$folder/$name"; return file_exists(BASE . $path) ? $path : null; } }