xiaowang/kirby/config/presets/page.php

75 lines
1.2 KiB
PHP
Raw Normal View History

2021-10-29 18:05:46 +02:00
<?php
2022-08-31 16:08:03 +02:00
use Kirby\Toolkit\I18n;
2021-10-29 18:05:46 +02:00
return function ($props) {
2022-08-31 16:08:03 +02:00
$section = function ($defaults, $props) {
if ($props === true) {
$props = [];
}
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
if (is_string($props) === true) {
$props = [
2022-12-19 16:26:24 +01:00
'label' => $props
2022-08-31 16:08:03 +02:00
];
}
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
return array_replace_recursive($defaults, $props);
};
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
if (empty($props['sidebar']) === false) {
$sidebar = $props['sidebar'];
} else {
$sidebar = [];
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
$pages = $props['pages'] ?? [];
$files = $props['files'] ?? [];
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
if ($pages !== false) {
$sidebar['pages'] = $section([
2022-12-19 16:26:24 +01:00
'label' => I18n::translate('pages'),
'type' => 'pages',
'status' => 'all',
'layout' => 'list',
2022-08-31 16:08:03 +02:00
], $pages);
}
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
if ($files !== false) {
$sidebar['files'] = $section([
2022-12-19 16:26:24 +01:00
'label' => I18n::translate('files'),
'type' => 'files',
'layout' => 'list'
2022-08-31 16:08:03 +02:00
], $files);
}
}
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
if (empty($sidebar) === true) {
$props['fields'] = $props['fields'] ?? [];
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
unset(
$props['files'],
$props['pages']
);
} else {
$props['columns'] = [
[
'width' => '2/3',
'fields' => $props['fields'] ?? []
],
[
'width' => '1/3',
'sections' => $sidebar
],
];
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
unset(
$props['fields'],
$props['files'],
$props['pages'],
$props['sidebar']
);
}
2021-10-29 18:05:46 +02:00
2022-08-31 16:08:03 +02:00
return $props;
2021-10-29 18:05:46 +02:00
};