public function boot(GateContract $gate)
{
$pluginRegister = $this->app['xe.pluginRegister'];
$pluginRegister->add(MenuType::class);
$pluginRegister->add(MenuSelect::class);
$pluginRegister->add(TypeSelect::class);
$pluginRegister->add(DirectLink::class);
foreach ($this->policies as $class => $policy) {
$gate->policy($class, $policy);
}
// 메뉴아이템의 링크를 편하게 제공하기 위한 resolver 등록
MenuItem::setLinkResolver(function (MenuItem $item) {
$title = xe_trans($item->getAttributeValue('title'));
if ($item->getRelationValue('basicImage')) {
if ($item->isSelected()) {
$image = $item->getSelectedImage();
} else {
$image = $item->basicImage;
}
$hoverImage = $item->getHoverImage();
return sprintf('<img src="%s" class="__xe_menu_image" data-hover="%s" alt="%s"/>', $image, $hoverImage, $title);
}
return $title;
});
}