PHP Class Xpressengine\Menu\MenuHandler

## app binding * xe.menu 으로 바인딩 되어 있음 * XeMenu Facade 로 접근이 가능함 ## 사용법 ### Menu 등록 php $menu = XeMenu::create( ['title' => 'menu title', 'description' => 'menu description', 'siteKey' => 'default'] ); ### Menu 수정 php $menu->title = 'new title'; $menu->description = 'new description'; XeMenu::put($menu); ### Menu 삭제 * Menu 에 연결된 MenuItem 이 있는경우 삭제 할 수 없는 제약사항이 있음 php XeMenu::remove($menu); ### MenuItem 생성 * 새로운 MenuItem 을 생성하고자 하는경우 해당 아이템이 소속될 메뉴 객체와 함께 아이템을 구성할 정보를 배열형태로 전달하도록 함 * 해당 배열을 다음과 같은 항목으로 구성되어야 함 - parentId : 부모에 해당하는 MenuItem ID, 부모가 없는경우 null - title : 사용자에게 표시될 이름 - description : MenuItem 에 대한 설명 - target : MenuItem 을 클릭했을 때의 링크 옵션 (ex. 새창, 현재창 등) - type : MenuItem 이 어떤 모듈의 인스턴스인지 판별할 수 있는 키 - ordering : MenuItem 의 정렬 순번 - activated : MenuItem 의 활성화 여부 * MenuItem 을 생성하는 경우 대상에 해당하는 모듈이 필요로 하는 정보도 함께 전달되어야 함 php $menuInput = [ 'title' => 'item title', 'description' => 'item description', ... ]; $etcInput = ['foo' => 'bar', 'baz' => 'qux']; $menuItem = XeMenu::createItem($menu, $menuInput, $etcInput); ### MenuItem 수정 * 수정시에도 등록시와 마찬가지로 아이템에 해당하는 모듈이 필요로하는 정보를 넘겨주어 함께 갱신되도록 함 php $menuItem->title = 'new item title'; $menuItem->description = 'new item description'; $etcInput = ['foo' => 'new bar', 'baz' => 'new qux']; XeMenu::putItem($menuItem, $etcInput); ### MenuItem 삭제 * MenuItem 을 삭제하고자 할때 자식에 해당하는 다른 MenuItem 이 존재하는 경우 삭제가 불가능 함 php XeMenu::removeItem($item); ### MenuItem 위치 이동 * MenuItem 을 이동하여 다른 아이템의 자식, 또는 다른 메뉴의 속하는 아이템으로 지정 할 수 있음. 이때 MenuItem 이 다른 자식에 해당하는 아이템이 있는 경우 함께 이동하여 부모 자식 관계를 유지 시킴 php XeMenu::moveItem($menu, $menuItem, $newParentItem); ### MenuItem 의 순서 정렬 * 형제 관계에 존재하는 MenuItem 은 정렬을 통해 표시되는 순서를 결정하게 되고, 또한 이 순서를 변경할 수 있음 php XeMenu::setOrder($menuItem, $position = 1);
Author: XE Developers ([email protected])
Inheritance: use trait Xpressengine\Support\Tree\NodePositionTrait
Mostra file Open project: xpressengine/xpressengine Class Usage Examples

Protected Properties

Property Type Description
$configs Xpressengine\Config\ConfigManager ConfigManager instance
$menuKeyword string Menu keyword for config
$model string Model class
$modules ModuleHandler ModuleHandler instance
$repo Xpressengine\Menu\MenuRepository MenuRepository instance
$routes Xpressengine\Routing\RouteRepository RouteRepository instance

Public Methods

Method Description
__construct ( Xpressengine\Menu\MenuRepository $repo, ConfigManager $configs, ModuleHandler $modules, Xpressengine\Routing\RouteRepository $routes ) MenuHandler constructor.
create ( array $inputs ) : Menu Create new menu
createItem ( Menu $menu, array $inputs, array $menuTypeInput = [] ) : MenuItem Create new menu item
deleteMenuItemTheme ( MenuItem $item ) : void Delete menu item config consisting of theme identifiers
deleteMenuTheme ( Menu $menu ) : void Delete menu config consisting of theme identifiers
get ( string $id, array $with = [] ) : Menu Get menu
getAll ( string $siteKey, array $with = [] ) : Menu[] Get all menu
getDefaultGrant ( ) : Grant Get default grant
getInstanceSettingURI ( MenuItem $item ) : string | null Get setting page url by menu item
getInstanceSettingURIByItemId ( string $itemId ) : string | null Get setting page url by menu item id
getItem ( string $id, array $with = [] ) : MenuItem Get menu item
getItemIn ( array $ids, array $with = [] ) : MenuItem[] Get menu item list by identifiers
getMenuItemTheme ( MenuItem $item ) : ConfigEntity Get menu item config consisting of theme identifiers
getMenuTheme ( Menu $menu ) : ConfigEntity Get menu config consisting of theme identifiers
moveItem ( Menu $menu, MenuItem $item, MenuItem $parent = null ) : MenuItem Move menu item
moveItemConfig ( MenuItem $beforeItem, MenuItem $movedItem ) : void Move menu item config consisting of theme identifiers
permKeyString ( MenuItem $item ) : string Make key string for permission
put ( Menu $menu ) : Menu Update category
putItem ( MenuItem $item, array $menuTypeInput ) : MenuItem Update menu item
remove ( Menu $menu ) : boolean Delete menu
removeItem ( MenuItem $item ) : boolean | null Delete menu item
setMenuItemTheme ( MenuItem $item, string $desktopTheme, string $mobileTheme ) : void Set menu config consisting of theme identifiers
setMenuTheme ( Menu $menu, string $desktopTheme, string $mobileTheme ) : void Set menu config consisting of theme identifiers
updateMenuItemTheme ( MenuItem $item, string $desktopTheme, string $mobileTheme ) : void Update menu item config consisting of theme identifiers
updateMenuTheme ( Menu $menu, string $desktopTheme, string $mobileTheme ) : void Update menu config consisting of theme identifiers

Protected Methods

Method Description
destroyMenuType ( MenuItem $item ) : void Destroy menu type associated with the menu item.
menuKeyString ( MenuItem | string $value ) : string Make key string for config
setHierarchy ( MenuItem $item ) : void Set hierarchy information for new item
storeMenuType ( MenuItem $item, array $menuTypeInput ) : void Store menu type associated with the menu item.
updateMenuType ( MenuItem $item, array $menuTypeInput ) : void Update menu type associated with the menu item.

Method Details

__construct() public method

MenuHandler constructor.
public __construct ( Xpressengine\Menu\MenuRepository $repo, ConfigManager $configs, ModuleHandler $modules, Xpressengine\Routing\RouteRepository $routes )
$repo Xpressengine\Menu\MenuRepository MenuRepository instance
$configs Xpressengine\Config\ConfigManager ConfigManager instance
$modules ModuleHandler ModuleHandler instance
$routes Xpressengine\Routing\RouteRepository RouteRepository instance

create() public method

Create new menu
public create ( array $inputs ) : Menu
$inputs array attributes
return Xpressengine\Menu\Models\Menu

createItem() public method

Create new menu item
public createItem ( Menu $menu, array $inputs, array $menuTypeInput = [] ) : MenuItem
$menu Xpressengine\Menu\Models\Menu menu instance
$inputs array item's attributes
$menuTypeInput array input for menu type module
return Xpressengine\Menu\Models\MenuItem

deleteMenuItemTheme() public method

Delete menu item config consisting of theme identifiers
public deleteMenuItemTheme ( MenuItem $item ) : void
$item Xpressengine\Menu\Models\MenuItem menu item instance
return void

deleteMenuTheme() public method

Delete menu config consisting of theme identifiers
public deleteMenuTheme ( Menu $menu ) : void
$menu Xpressengine\Menu\Models\Menu menu instance
return void

destroyMenuType() protected method

Destroy menu type associated with the menu item.
protected destroyMenuType ( MenuItem $item ) : void
$item Xpressengine\Menu\Models\MenuItem menu item instance
return void

get() public method

Get menu
public get ( string $id, array $with = [] ) : Menu
$id string menu identifier
$with array relation
return Xpressengine\Menu\Models\Menu

getAll() public method

Get all menu
public getAll ( string $siteKey, array $with = [] ) : Menu[]
$siteKey string site key
$with array relation
return Xpressengine\Menu\Models\Menu[]

getDefaultGrant() public method

Get default grant
public getDefaultGrant ( ) : Grant
return Xpressengine\Permission\Grant

getInstanceSettingURI() public method

Get setting page url by menu item
public getInstanceSettingURI ( MenuItem $item ) : string | null
$item Xpressengine\Menu\Models\MenuItem menu item instance
return string | null

getInstanceSettingURIByItemId() public method

Get setting page url by menu item id
public getInstanceSettingURIByItemId ( string $itemId ) : string | null
$itemId string menu item identifier
return string | null

getItem() public method

Get menu item
public getItem ( string $id, array $with = [] ) : MenuItem
$id string menu item identifier
$with array relation
return Xpressengine\Menu\Models\MenuItem

getItemIn() public method

Get menu item list by identifiers
public getItemIn ( array $ids, array $with = [] ) : MenuItem[]
$ids array menu item identifier list
$with array relation
return Xpressengine\Menu\Models\MenuItem[]

getMenuItemTheme() public method

Get menu item config consisting of theme identifiers
public getMenuItemTheme ( MenuItem $item ) : ConfigEntity
$item Xpressengine\Menu\Models\MenuItem menu item instance
return Xpressengine\Config\ConfigEntity

getMenuTheme() public method

Get menu config consisting of theme identifiers
public getMenuTheme ( Menu $menu ) : ConfigEntity
$menu Xpressengine\Menu\Models\Menu menu instance
return Xpressengine\Config\ConfigEntity

menuKeyString() protected method

Make key string for config
protected menuKeyString ( MenuItem | string $value ) : string
$value Xpressengine\Menu\Models\MenuItem | string to generate for config key string
return string

moveItem() public method

Move menu item
public moveItem ( Menu $menu, MenuItem $item, MenuItem $parent = null ) : MenuItem
$menu Xpressengine\Menu\Models\Menu menu instance
$item Xpressengine\Menu\Models\MenuItem menu item instance
$parent Xpressengine\Menu\Models\MenuItem menu item instance
return Xpressengine\Menu\Models\MenuItem

moveItemConfig() public method

Move menu item config consisting of theme identifiers
public moveItemConfig ( MenuItem $beforeItem, MenuItem $movedItem ) : void
$beforeItem Xpressengine\Menu\Models\MenuItem before item
$movedItem Xpressengine\Menu\Models\MenuItem after item
return void

permKeyString() public method

Make key string for permission
public permKeyString ( MenuItem $item ) : string
$item Xpressengine\Menu\Models\MenuItem menu item instance
return string

put() public method

Update category
public put ( Menu $menu ) : Menu
$menu Xpressengine\Menu\Models\Menu menu instance
return Xpressengine\Menu\Models\Menu

putItem() public method

Update menu item
public putItem ( MenuItem $item, array $menuTypeInput ) : MenuItem
$item Xpressengine\Menu\Models\MenuItem item instance
$menuTypeInput array input for menu type module
return Xpressengine\Menu\Models\MenuItem

remove() public method

Delete menu
public remove ( Menu $menu ) : boolean
$menu Xpressengine\Menu\Models\Menu menu instance
return boolean

removeItem() public method

Delete menu item
public removeItem ( MenuItem $item ) : boolean | null
$item Xpressengine\Menu\Models\MenuItem item instance
return boolean | null

setHierarchy() protected method

Set hierarchy information for new item
protected setHierarchy ( MenuItem $item ) : void
$item Xpressengine\Menu\Models\MenuItem item object
return void

setMenuItemTheme() public method

Set menu config consisting of theme identifiers
public setMenuItemTheme ( MenuItem $item, string $desktopTheme, string $mobileTheme ) : void
$item Xpressengine\Menu\Models\MenuItem menu item instance
$desktopTheme string theme id
$mobileTheme string theme id
return void

setMenuTheme() public method

Set menu config consisting of theme identifiers
public setMenuTheme ( Menu $menu, string $desktopTheme, string $mobileTheme ) : void
$menu Xpressengine\Menu\Models\Menu menu instance
$desktopTheme string theme id
$mobileTheme string theme id
return void

storeMenuType() protected method

Store menu type associated with the menu item.
protected storeMenuType ( MenuItem $item, array $menuTypeInput ) : void
$item Xpressengine\Menu\Models\MenuItem menu item instance
$menuTypeInput array input for menu type module
return void

updateMenuItemTheme() public method

Update menu item config consisting of theme identifiers
public updateMenuItemTheme ( MenuItem $item, string $desktopTheme, string $mobileTheme ) : void
$item Xpressengine\Menu\Models\MenuItem menu item instance
$desktopTheme string theme id
$mobileTheme string theme id
return void

updateMenuTheme() public method

Update menu config consisting of theme identifiers
public updateMenuTheme ( Menu $menu, string $desktopTheme, string $mobileTheme ) : void
$menu Xpressengine\Menu\Models\Menu menu instance
$desktopTheme string theme id
$mobileTheme string theme id
return void

updateMenuType() protected method

Update menu type associated with the menu item.
protected updateMenuType ( MenuItem $item, array $menuTypeInput ) : void
$item Xpressengine\Menu\Models\MenuItem menu item instance
$menuTypeInput array input for menu type module
return void

Property Details

$configs protected_oe property

ConfigManager instance
protected ConfigManager,Xpressengine\Config $configs
return Xpressengine\Config\ConfigManager

$menuKeyword protected_oe property

Menu keyword for config
protected string $menuKeyword
return string

$model protected_oe property

Model class
protected string $model
return string

$modules protected_oe property

ModuleHandler instance
protected ModuleHandler,Xpressengine\Menu $modules
return ModuleHandler

$repo protected_oe property

MenuRepository instance
protected MenuRepository,Xpressengine\Menu $repo
return Xpressengine\Menu\MenuRepository

$routes protected_oe property

RouteRepository instance
protected RouteRepository,Xpressengine\Routing $routes
return Xpressengine\Routing\RouteRepository