28 lines
701 B
PHP
28 lines
701 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @var \Kirby\Cms\Page $page
|
||
|
|
*/
|
||
|
|
|
||
|
|
use Kirby\Cms\Html;
|
||
|
|
|
||
|
|
$tags = $page->metadata()->snippetData();
|
||
|
|
|
||
|
|
// if we're using slots, the user wants to output priority tags such as <title>
|
||
|
|
// before their stylesheet, script, etc. tags
|
||
|
|
if (isset($slot)) {
|
||
|
|
foreach (array_filter($tags, fn ($tag) => $tag['priority']) as $tag) {
|
||
|
|
echo Html::tag($tag['tag'], $tag['content'] ?? null, $tag['attributes'] ?? []) . PHP_EOL;
|
||
|
|
}
|
||
|
|
|
||
|
|
echo $slot;
|
||
|
|
|
||
|
|
$tags = array_filter($tags, fn ($tag) => !$tag['priority']);
|
||
|
|
}
|
||
|
|
|
||
|
|
// then output other tags as normal
|
||
|
|
// this is unfiltered if slots is not set.
|
||
|
|
foreach ($tags as $tag) {
|
||
|
|
echo Html::tag($tag['tag'], $tag['content'] ?? null, $tag['attributes'] ?? []) . PHP_EOL;
|
||
|
|
}
|