julienmonnerie/kirby/config/areas/site/searches.php

57 lines
1.4 KiB
PHP
Raw Normal View History

2022-06-17 17:51:59 +02:00
<?php
2022-08-31 15:02:43 +02:00
use Kirby\Cms\App;
2022-06-17 17:51:59 +02:00
use Kirby\Toolkit\Escape;
2022-08-31 15:02:43 +02:00
use Kirby\Toolkit\I18n;
2022-06-17 17:51:59 +02:00
return [
2022-08-31 15:02:43 +02:00
'pages' => [
'label' => I18n::translate('pages'),
'icon' => 'page',
2025-04-21 18:57:21 +02:00
'query' => function (string|null $query, int $limit, int $page) {
$kirby = App::instance();
$pages = $kirby->site()
2022-08-31 15:02:43 +02:00
->index(true)
->search($query)
2025-04-21 18:57:21 +02:00
->filter('isListable', true)
->paginate($limit, $page);
2022-08-31 15:02:43 +02:00
2025-04-21 18:57:21 +02:00
return [
'results' => $pages->values(fn ($page) => [
2022-08-31 15:02:43 +02:00
'image' => $page->panel()->image(),
'text' => Escape::html($page->title()->value()),
'link' => $page->panel()->url(true),
2025-04-21 18:57:21 +02:00
'info' => Escape::html($page->id()),
'uuid' => $page->uuid()?->toString(),
]),
'pagination' => $pages->pagination()->toArray()
];
2022-08-31 15:02:43 +02:00
}
],
'files' => [
'label' => I18n::translate('files'),
'icon' => 'image',
2025-04-21 18:57:21 +02:00
'query' => function (string|null $query, int $limit, int $page) {
$kirby = App::instance();
$files = $kirby->site()
2022-08-31 15:02:43 +02:00
->index(true)
2025-04-21 18:57:21 +02:00
->filter('isListable', true)
2022-08-31 15:02:43 +02:00
->files()
2025-04-21 18:57:21 +02:00
->filter('isListable', true)
2022-08-31 15:02:43 +02:00
->search($query)
2025-04-21 18:57:21 +02:00
->paginate($limit, $page);
2022-08-31 15:02:43 +02:00
2025-04-21 18:57:21 +02:00
return [
'results' => $files->values(fn ($file) => [
2022-08-31 15:02:43 +02:00
'image' => $file->panel()->image(),
'text' => Escape::html($file->filename()),
'link' => $file->panel()->url(true),
2025-04-21 18:57:21 +02:00
'info' => Escape::html($file->id()),
'uuid' => $file->uuid()->toString(),
]),
'pagination' => $files->pagination()->toArray()
];
2022-08-31 15:02:43 +02:00
}
]
2022-06-17 17:51:59 +02:00
];