36 lines
990 B
PHP
36 lines
990 B
PHP
<?php
|
|
|
|
$b->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);
|
|
} |