38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
|
|
<?php
|
||
|
|
/**
|
||
|
|
* Virtual Print Page Plugin
|
||
|
|
*
|
||
|
|
* Crée une page virtuelle /print pour chaque récit
|
||
|
|
* Permet d'accéder à l'éditeur d'impression via /projet/recit/print
|
||
|
|
*/
|
||
|
|
|
||
|
|
use Kirby\Cms\Page;
|
||
|
|
use Kirby\Uuid\Uuid;
|
||
|
|
|
||
|
|
Kirby::plugin('geoproject/virtual-print-page', [
|
||
|
|
'routes' => [
|
||
|
|
[
|
||
|
|
'pattern' => '(:all)/print',
|
||
|
|
'action' => function ($parentPath) {
|
||
|
|
// Trouver la page parente (le récit)
|
||
|
|
$parent = page($parentPath);
|
||
|
|
|
||
|
|
if (!$parent || $parent->intendedTemplate()->name() !== 'recit') {
|
||
|
|
return $this->next();
|
||
|
|
}
|
||
|
|
|
||
|
|
// Créer la page virtuelle avec Page::factory()
|
||
|
|
return Page::factory([
|
||
|
|
'slug' => 'print',
|
||
|
|
'template' => 'print',
|
||
|
|
'parent' => $parent,
|
||
|
|
'content' => [
|
||
|
|
'title' => 'Impression - ' . $parent->title()->value(),
|
||
|
|
'uuid' => Uuid::generate()
|
||
|
|
]
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
]
|
||
|
|
]
|
||
|
|
]);
|