- Blueprint : ajout siteTitle, siteTagline, siteDescription, logo - Contrôleur : site_title() → siteTitle() Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
60 lines
1.9 KiB
PHP
60 lines
1.9 KiB
PHP
<?php
|
|
|
|
return function ($page, $kirby, $site) {
|
|
$homePage = $site->find('home');
|
|
$navPages = $homePage
|
|
? $site->pages()->listed()->prepend($homePage->id(), $homePage)
|
|
: $site->pages()->listed();
|
|
|
|
// Generic page data available in all templates
|
|
$genericData = [
|
|
'title' => $page->title()->value(),
|
|
'url' => $page->url(),
|
|
'uri' => $page->uri(),
|
|
'template' => $page->intendedTemplate()->name(),
|
|
'modified' => $page->modified('Y-m-d'),
|
|
'site' => [
|
|
'title' => $site->siteTitle()->value(),
|
|
'url' => $site->url(),
|
|
'logo' => $site->logo()->toFile()?->url(),
|
|
'language' => $kirby->language()?->code() ?? 'fr',
|
|
'languages' => $kirby->languages()->map(function($l) {
|
|
return [
|
|
'code' => $l->code(),
|
|
'name' => $l->name()
|
|
];
|
|
})->values(),
|
|
'contact' => [
|
|
'email' => (string)$site->contactEmail()->value(),
|
|
'address' => (string)$site->contactAddress()->value(),
|
|
'socials' => $site->socialLinks()->toStructure()->map(function($item) {
|
|
return [
|
|
'label' => (string)$item->label()->value(),
|
|
'url' => (string)$item->url()->value(),
|
|
'picto' => (string)$item->picto()->value(),
|
|
];
|
|
})->values(),
|
|
'legalNotice' => $site->legalNotices()->toFile()?->url(),
|
|
],
|
|
'navigation' => $navPages->map(function($p) use ($kirby) {
|
|
$titles = [];
|
|
foreach ($kirby->languages() as $lang) {
|
|
$titles[$lang->code()] = $p->content($lang->code())->title()->value();
|
|
}
|
|
if (empty($titles)) {
|
|
$titles['fr'] = $p->title()->value();
|
|
}
|
|
return [
|
|
'id' => $p->uid(),
|
|
'url' => '/' . $p->uri(),
|
|
'title' => $p->title()->value(),
|
|
'titles' => $titles
|
|
];
|
|
})->values()
|
|
]
|
|
];
|
|
|
|
return [
|
|
'genericData' => $genericData
|
|
];
|
|
};
|