forked from Adleraci/adlerka.top
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
require "lib/account.php";
 | 
						|
 | 
						|
 | 
						|
function generateSitemap(): string {
 | 
						|
    global $routerConfig;
 | 
						|
 | 
						|
    $site_dirs = array_diff(scandir($routerConfig["page_dir"]), array('.', '..'));
 | 
						|
 | 
						|
    $sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
 | 
						|
    $sitemap .= '<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">' . PHP_EOL;
 | 
						|
 | 
						|
    foreach ($site_dirs as $site_dir) {
 | 
						|
        $pages_dir = array_diff(scandir($routerConfig["page_dir"] . $site_dir), array('.', '..'));
 | 
						|
 | 
						|
        foreach ($pages_dir as $page_file) {
 | 
						|
            $page_file_tmp = explode(".", $page_file);
 | 
						|
            $page_basename = $page_file_tmp[0];
 | 
						|
            $page_file_path = $routerConfig["page_dir"] . $site_dir . "/" . $page_file;
 | 
						|
            $page_location = "/" . $site_dir . "/" . $page_basename;
 | 
						|
 | 
						|
            if ($page_file_tmp[1] == "html") {
 | 
						|
                $page_tmp = file_get_contents($page_file_path);
 | 
						|
 | 
						|
                $pageMetadata = parsePageTag($page_tmp);
 | 
						|
 | 
						|
                if (!empty($pageMetadata["parameters"]["minimal_permission_level"])) {
 | 
						|
                    $page_required_permission = intval($pageMetadata["parameters"]["minimal_permission_level"]);
 | 
						|
                } else {
 | 
						|
                    $page_required_permission = $routerConfig["page"]["default_permissions"];
 | 
						|
                }
 | 
						|
            } elseif ($page_file_tmp[1] == "php") {
 | 
						|
                $page_required_permission = getDynamicPermission($page_file_path);
 | 
						|
            } else {
 | 
						|
                $page_required_permission = $routerConfig["page"]["default_permissions"];
 | 
						|
            }
 | 
						|
 | 
						|
            // Check if the user is authorized to access the page
 | 
						|
            if ($page_required_permission <= $_SESSION["privilege_level"]) {
 | 
						|
                $sitemap .= '<url>' . PHP_EOL;
 | 
						|
                $sitemap .= '<loc>' . htmlspecialchars($page_location) . '</loc>' . PHP_EOL;
 | 
						|
                // You can add other optional tags like lastmod, changefreq, priority here if needed
 | 
						|
                $sitemap .= '</url>' . PHP_EOL;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    $sitemap .= '</urlset>' . PHP_EOL;
 | 
						|
 | 
						|
    return $sitemap;
 | 
						|
} |