router_add("/page/%", function () { preload_page(); }, array("get")); function preload_page() { global $b; $slug = $b->router_get_segment(1); $search = new Search(array( "class" => "Page", "terms" => array("item_slug" => $slug) )); $pages = $search->collect(); if(!count($pages)) { http_response_code(404); $b->template_load("404.php"); return; } $page = $pages[0]; $b->ls_set_key("page", $page); $title = $page->get_prop("seo_title") ?? $page->get_item_name(); $b->title_set($title); $b->meta_add("description", $page->get_prop("seo_description")); $b->meta_add("keywords", $page->get_prop("seo_keywords")); $b->meta_add("viewport", "width=device-width, user-scalable=no"); $b->link_add(array("rel" => "canonical", "href" => $b->router_get_canonical_uri())); $page_template_script = $page->get_prop("template_script"); $b->template_load($page_template_script); }