diff --git a/index.php b/index.php index 8e9aa49..6917576 100644 --- a/index.php +++ b/index.php @@ -1,6 +1,7 @@ function (Kirby $kirby, string $name, ?string $contentType = null) { return new Template($kirby, $name, $contentType); }, - 'snippet' => function (Kirby $kirby, $name, array $data = []): ?string { - return (new Snippet($kirby, $name, $data))->load(); + 'snippet' => function (Kirby $kirby, string $name, array $data = [], bool $slots = false): KirbySnippet|string { + return (new Snippet($kirby, $name, $data, $slots))->load(); }, ], 'hooks' => [ diff --git a/src/Snippet.php b/src/Snippet.php index 234b703..dcb93b0 100644 --- a/src/Snippet.php +++ b/src/Snippet.php @@ -4,16 +4,16 @@ use Illuminate\Support\Facades\View; use Kirby\Cms\App as Kirby; +use Kirby\Template\Snippet as KirbySnippet; use Kirby\Toolkit\A; -use Kirby\Toolkit\Tpl; class Snippet { - public function __construct(protected Kirby $kirby, protected $name, protected array $data = []) + public function __construct(protected Kirby $kirby, protected $name, protected array $data = [], protected bool $slots = false) { } - public function load(): string + public function load(): string|KirbySnippet { $snippets = A::wrap($this->name); $file = null; @@ -32,7 +32,7 @@ public function load(): string } // vanilla PHP snippet - return Tpl::load($file, $this->data); + return KirbySnippet::factory($this->name, $this->data, $this->slots); } public function getFile(string $name): ?string