You can do that via the panel.menu
option:
<?php
use Kirby\Cms\App;
return [
'debug' => true,
'panel' => [
'menu' => [
'site',
'system',
'users',
'-',
'about' => [
'icon' => 'pen',
'label' => 'About',
'link' => 'pages/about',
'current' => function (): bool {
$path = App::instance()->request()->path()->toString();
return Str::contains($path, 'pages/about');
},
],
],
],
];
There seems to be something not quite working as expeacted, as when using this example, the site
item is always active as well when about
is active.
Edit: ok, for this case to work properly, you have to redefine current
for site
as well:
'site' => [
'current' => function (): bool
{
$path = App::instance()->request()->path()->toString();
return Str::contains($path, 'site');
},
],
Also note that you have to list all menu entries with this approach, items not listed will disappear from the side nav.