Как перевести шаблон меню в композитный режим?

Подскажите, как сделать меню композитным?

С яндекс картами и прочим разобрался... там где нет смысла в динамическом контенте, просто добавил везде $this->setFrameMode(true)

Осталось только меню которое Composite was rejected... и вот тут как-то не совсем понятно. Наверно, динамическим фреймом надо окружить условие с проверкой прав, но как это правильно сделать.

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?if (!empty($arResult)):?>
<ul class="top-menu-list">
<?
$previousLevel = 0;
foreach($arResult as $arItem):?>

	<?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
		<?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
	<?endif?>

	<?if ($arItem["IS_PARENT"]):?>

		<li class="top-menu__item animation <? if ($arItem["SELECTED"]): ?>active<? endif ?>"><span class="top-menu__highlight"><a href="<?=$arItem["LINK"]?>" class="link" title="<?=$arItem["TEXT"]?>"><?=$arItem["TEXT"]?></span></a>
			<ul class="sub-menu">

	<?else:?>

		<?if ($arItem["PERMISSION"] > "D"):?>

			<?if ($arItem["DEPTH_LEVEL"] == 1):?>
				<li class="top-menu__item animation <? if ($arItem["SELECTED"]): ?>active<? endif ?>"><span class="top-menu__highlight"><a href="<?=$arItem["LINK"]?>" class="link" title="<?=$arItem["TEXT"]?>"><?=$arItem["TEXT"]?></span></a></li>
			<?else:?>
				<li class="sub-menu__item <? if ($arItem["SELECTED"]): ?>active<? endif ?>"><a href="<?=$arItem["LINK"]?>" class="link" title="<?=$arItem["TEXT"]?>"><?=$arItem["TEXT"]?></a></li>
			<?endif?>

		<?else:?>
		
			<?if ($arItem["DEPTH_LEVEL"] == 1):?>
				<li class="top-menu__item animation <? if ($arItem["SELECTED"]): ?>active<? endif ?>"><span class="top-menu__highlight"><a href="<?=$arItem["LINK"]?>" <?=GetMessage("MENU_ITEM_ACCESS_DENIED")?> class="link"><?=$arItem["TEXT"]?></span></a></li>
			<?else:?>
				<li class="sub-menu__item <? if ($arItem["SELECTED"]): ?>active<? endif ?>"><a href="<?=$arItem["LINK"]?>" <?=GetMessage("MENU_ITEM_ACCESS_DENIED")?> class="link"><?=$arItem["TEXT"]?></a></li>
			<?endif?>

		<?endif?>

	<?endif?>

	<?$previousLevel = $arItem["DEPTH_LEVEL"];?>

<?endforeach?>

<?if ($previousLevel > 1)://close last item tags?>
	<?=str_repeat("</ul></li>", ($previousLevel-1) );?>
<?endif?>

</ul>
<?endif?>
  • Вопрос задан
  • 346 просмотров
Пригласить эксперта
Ответы на вопрос 1
$this->setFrameMode(true)
Это голосование за композит. Если хоть один компонент или шаблон проголосовал против - композит не будет работать на странице. Для меню достаточно эту функцию вызвать ибо подтягивать смысла не вижу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы