本文整理汇总了PHP中Knp\Menu\ItemInterface::setDisplay方法的典型用法代码示例。如果您正苦于以下问题:PHP ItemInterface::setDisplay方法的具体用法?PHP ItemInterface::setDisplay怎么用?PHP ItemInterface::setDisplay使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Knp\Menu\ItemInterface
的用法示例。
在下文中一共展示了ItemInterface::setDisplay方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createFromArray
/**
* @param ItemInterface $menu
* @param array $data
* @param array $itemList
* @param array $options
*
* @return \Knp\Menu\ItemInterface
*/
private function createFromArray(ItemInterface $menu, array $data, array &$itemList, array $options = array())
{
$isAllowed = false;
foreach ($data as $itemCode => $itemData) {
if (!empty($itemList[$itemCode])) {
$itemOptions = $itemList[$itemCode];
if (empty($itemOptions['name'])) {
$itemOptions['name'] = $itemCode;
}
if (empty($itemOptions['route']) && empty($itemOptions['uri'])) {
$itemOptions['route'] = $itemCode;
}
if (!empty($itemData['position'])) {
$itemOptions['extras']['position'] = $itemData['position'];
}
$this->moveToExtras($itemOptions, 'translateDomain');
$this->moveToExtras($itemOptions, 'translateParameters');
$newMenuItem = $menu->addChild($itemOptions['name'], array_merge($itemOptions, $options));
if (!empty($itemData['children'])) {
$this->createFromArray($newMenuItem, $itemData['children'], $itemList, $options);
}
$isAllowed = $isAllowed || $newMenuItem->getExtra('isAllowed');
}
}
$menu->setExtra('isAllowed', $isAllowed);
if ($menu->getExtra('hideIfEmpty') && $menu->hasChildren()) {
$willDisplaySomeChildren = false;
foreach ($menu->getChildren() as $child) {
if ($child->isDisplayed() && $child->getExtra('isAllowed')) {
$willDisplaySomeChildren = true;
break;
}
}
if (!$willDisplaySomeChildren) {
$menu->setDisplay(false);
}
}
}
示例2: setContext
/**
* Set uri, display context to menu item
*
* @param MenuItemInterface $item
* @param array $routeParameters
* @param array $options
*
* @return MenuFactoryInterface
*/
protected function setContext(MenuItemInterface $item, array $routeParameters = array(), array $options = array())
{
$display = true;
$rootItem = !$item->getName();
$token = $this->security->getToken();
if ($token) {
if ($options['roles'] && !$this->security->isGranted($options['roles'])) {
$display = false;
}
if ($display) {
foreach ((array) $item->getExtra('oids') as $oidItem) {
if (!$this->security->isGranted($oidItem['permissions'], $oidItem['oid'])) {
$display = false;
break;
}
}
}
}
if ($options['route'] && !$rootItem) {
$acceptedRouteParameters = array_intersect_key($routeParameters, $options['routeAcceptedParameters']);
if ($options['routeRequiredParameters'] === $options['routeAcceptedParameters']) {
$uri = $this->router->generate($options['route'], $acceptedRouteParameters, $options['routeAbsolute']);
$item->setUri($uri);
} else {
$display = false;
}
}
if (!$display) {
if ($options['showNonAuthorized'] && !$token) {
$display = true;
}
if ($options['showAsText']) {
$display = true;
$item->setUri(null);
}
}
if (!$display) {
$item->setDisplay(false);
}
return $this;
}