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

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

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

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

Похожие вопросы