- Blueprints white-papers / white-paper (intro, cover, PDF, date) - Templates PHP + JSON API (liste avec singleSlug, détail avec fileUrl) - Route POST (:any)/(:any)/download pour le téléchargement gated - Panel : entrée white-papers ajoutée au menu après blog - collection.css : styles partagés extraits de Blog (collection-*) - Blog.svelte : classes renommées blog-* → collection-* - WhitePapers.svelte : vue liste, URLs dynamiques via data.uri - WhitePaper.svelte : vue détail deux colonnes + formulaire de téléchargement - i18n : clés white paper (label, form, consentement, statuts) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
37 lines
1.3 KiB
PHP
37 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Helper : génère un item de menu avec détection automatique du lien actif.
|
|
*/
|
|
function menuItem(string $id, string $label, string $icon, string $link): array
|
|
{
|
|
return [
|
|
'label' => $label,
|
|
'icon' => $icon,
|
|
'link' => $link,
|
|
'current' => function () use ($link): bool {
|
|
return Str::contains(Kirby\Cms\App::instance()->path(), $link);
|
|
},
|
|
];
|
|
}
|
|
|
|
return [
|
|
'site' => [
|
|
'label' => 'Données partagées',
|
|
'icon' => 'cog',
|
|
'current' => function (): bool {
|
|
return Str::contains(Kirby\Cms\App::instance()->path(), '/site');
|
|
},
|
|
],
|
|
'-',
|
|
'home' => menuItem('home', 'Accueil', 'home', 'pages/home'),
|
|
'expertise' => menuItem('expertise', 'Expertise','wand', 'pages/expertise'),
|
|
'portfolio' => menuItem('portfolio', 'Portfolio','images', 'pages/portfolio'),
|
|
'jouer' => menuItem('jouer', 'Jouer', 'play', 'pages/jouer'),
|
|
'a-propos' => menuItem('a-propos', 'À propos', 'users', 'pages/a-propos'),
|
|
'blog' => menuItem('blog', 'Blog', 'text', 'pages/blog'),
|
|
'white-papers' => menuItem('livres-blancs', 'Livres blancs', 'book', 'pages/livres-blancs'),
|
|
'-',
|
|
'users',
|
|
'system',
|
|
];
|