• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/UI/LeftMenu/Menu.php
  • Класс: BitrixIntranetUILeftMenuMenu
  • Вызов: Menu::filterItemsByVisibility
private function filterItemsByVisibility(bool $shown): array
{
	$result = [];
	/*@var MenuItem $item */
	foreach ($this->items as $item)
	{
		if ($item instanceof MenuItemGroupService)
		{
			continue;
		}
		$bufItem = $item;
		$addItem = null;
		while ($bufItem->hasParent()
			&& ($parent = $bufItem->getParent()))
		{
			if ($parent instanceof MenuItemGroupService)
			{
				$addItem = ($parent === $this->items[$shown ? 'shown' : 'hidden']);
				break;
			}
			else
			{
				$bufItem = $bufItem->getParent();
			}
		}
		if ($addItem === true
			|| $addItem === null && $shown === true) //All orphan items add to visible set
		{
			$result[] = $item;
		}
	}
	return $result;
}