ВШ
Size: a a a
ВШ
ТН
D
ВШ
S
// On the Model
use Cms\Classes\Page;
public static function resolveMenuItem($item, $url, $theme)
{
$pageName = 'your-page-file';
$cmsPage = Page::loadCached($theme, $pageName);
$items = self
::orderBy('sort_order', 'ASC')
->get()
->map(function (self $item) use ($cmsPage, $url, $pageName) {
$pageUrl = $cmsPage->url($pageName, ['slug' => $item->slug]);
return [
'title' => $item->name,
'url' => $pageUrl,
'mtime' => $item->updated_at,
'isActive' => $pageUrl === $url,
];
})
->toArray();
return [
'items' => $items,
];
}
In your Plugin's boot method:
private function bootMenuItem() {
Event::listen('pages.menuitem.listTypes', function () {
return [
'your-items' => 'Your item's name',
];
});
Event::listen('pages.menuitem.getTypeInfo', function ($type) {
if ($type == 'your-items') {
return [
'dynamicItems' => true,
];
}
});
Event::listen('pages.menuitem.resolveItem', function ($type, $item, $url, $theme) {
if ($type == 'your-items') {
return YourModel::resolveMenuItem($item, $url, $theme);
}
});
}
S
NK
NK
CW
S
ВШ
ТН
ВШ
D
// On the Model
use Cms\Classes\Page;
public static function resolveMenuItem($item, $url, $theme)
{
$pageName = 'your-page-file';
$cmsPage = Page::loadCached($theme, $pageName);
$items = self
::orderBy('sort_order', 'ASC')
->get()
->map(function (self $item) use ($cmsPage, $url, $pageName) {
$pageUrl = $cmsPage->url($pageName, ['slug' => $item->slug]);
return [
'title' => $item->name,
'url' => $pageUrl,
'mtime' => $item->updated_at,
'isActive' => $pageUrl === $url,
];
})
->toArray();
return [
'items' => $items,
];
}
In your Plugin's boot method:
private function bootMenuItem() {
Event::listen('pages.menuitem.listTypes', function () {
return [
'your-items' => 'Your item's name',
];
});
Event::listen('pages.menuitem.getTypeInfo', function ($type) {
if ($type == 'your-items') {
return [
'dynamicItems' => true,
];
}
});
Event::listen('pages.menuitem.resolveItem', function ($type, $item, $url, $theme) {
if ($type == 'your-items') {
return YourModel::resolveMenuItem($item, $url, $theme);
}
});
}
ТН
ВШ
CW
ТН
ВШ
A