Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проверка на родительский пункт меню

00 голосов
5
Здравствуйте, уважаемые любители и нелюбители замечательного продукта 1С :)
Подсобите советом, верстальщику, пожалуйста ;)

Есть в демоверсии вот такой простенький шаблончик левого вертикального меню:
Код
<?if (!empty($arResult)):?>
<div id="menu_left">
<ul class="left-menu">

<?foreach($arResult as $arItem):?>
   <?if($arItem["SELECTED"]):?>
      <li><a href="<?=$arItem["LINK"]?>" class="selected"><?=$arItem["TEXT"]?></a></li>
   <?else:?>
      <li><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></li>
   <?endif?>
   
<?endforeach?>

</ul>
</div>
<?endif?>
Можно ли как-нибудь проверить пункт на родительский, не прибегая к использованию громоздкого стандартного vertical_multilevel?
Есть верхнее горизонтальное выпадающее меню, и есть левое простое вертикальное (выше приведен его код), так вот если родительский пункт содержит подпункты, то он не должен быть активным, в верхнем это легко решается проверкой if ($arItem["IS_PARENT"]){...}, но в этом простеньком такая проверка не работает, можно ли используя код выше, сделать проверку на родителя, или нужно использовать шаблон, аналогичный горизонтальному выпадающему меню?
спросил 10 Дек, 13 от Traxexx (900 баллов)

5 Ответы

00 голосов
Вообще говоря if ($arItem["IS_PARENT"])работает...
но тебе вроде нужно условие if($arItem["DEPTH_LEVEL"]==1)
ответил 13 Фев, 14 от Lehan (280 баллов)
00 голосов
Цитата
Андрей пишет:
Вообще говоря if ($arItem["IS_PARENT"])работает...
Эта проверка у меня в приведенном выше коде шаблона не работает, а вот if($arItem["DEPTH_LEVEL"]==1) вроде работает, но мне нужно использовать не ее.

Мне нужно именно if ($arItem["IS_PARENT"]), потому что, как я понял DEPTH_LEVEL - это проверка на уровни вложенности, т.е. if($arItem["DEPTH_LEVEL"]==1) проверяет первый уровень пунктов меню.
Мне же нужна проверка на родительский пункт, т.е. на то, содержатся ли в пункте, подпункты.
Проверка if($arItem["DEPTH_LEVEL"]==1) выдаст мне все пункты первого уровня вложенности, вне зависимости, есть ли у них подпункты или нет.

Мой вопрос в принципе не о том, какую проверку использовать, а можно ли проверку на родительский пункт заставить работать в шаблоне меню, код которого приведен в моем вопросе выше. Может я что-то неправильно делаю?

Вопрос все еще не ясен, надеюсь на Вашу помощь.
ответил 03 Июнь, 14 от Traxexx (900 баллов)
00 голосов
Вот собственно как я пытаюсь проверять пункт на родителя:
Код
<?if (!empty($arResult)):?>
<div id="menu_left">
<ul class="left-menu">

<?foreach($arResult as $arItem):?>

   <?if ($arItem["IS_PARENT"]):?>
      <li><a href="<?=$arItem["LINK"]?>" class="selected"><?=$arItem["TEXT"]?>ЭТОТ ПУНКТ РОДИТЕЛЬСКИЙ</a></li>
   <?else:?>
      <?if($arItem["SELECTED"]):?>
         <li><a href="<?=$arItem["LINK"]?>" class="selected"><?=$arItem["TEXT"]?></a></li>
      <?else:?>
         <li><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></li>
      <?endif?>
   <?endif?>

<?endforeach?>

</ul>
</div>
<?endif?>
ответил 01 Окт, 14 от Traxexx (900 баллов)
00 голосов
Честно говоря твой шаблон вполне рабочий и проверка на родителя if ($arItem["IS_PARENT"]) вполне себе нормально работает... для того, чтобы он был неактивный просто не нужно выводить линк к нему...т.е.
нужно просто немного изменить шаблон, а именно в одном месте:

Код
<?if($arItem["SELECTED"]):?>
<li><?=$arItem["TEXT"]?></li>
<?else:?>

...


Надеюсь это тебе и нужно было:)
ответил 03 Фев, 15 от Lehan (280 баллов)
00 голосов
Цитата
Андрей пишет:
Надеюсь это тебе и нужно было:)


Да, Вы правы, Андрей, это то мне как раз и нужно, но выше в коде, я именно так (задал просто свой текст ссылке) и делал - ничего не работало ;)

Может Вы недопоняли сути вопроса.. в громоздком стандартном шаблоне все прекрасно работает, к примеру в шаблоне для верхнего меню, как я и писал выше, а вот в "упрощенном" варианте, код которого я приводил выше - ничего не работает, вот я и спрашиваю, возможно заставить работать проверку на родителя в этом простеньком шаблончике...?

вопрос остается открытым...
ответил 16 Май, 15 от Traxexx (900 баллов)

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

0 голосов
4 ответов
спросил 26 Март, 14 от Merkof (160 баллов)
0 голосов
3 ответов
спросил 17 Фев, 14 от Kania (5,180 баллов)
0 голосов
3 ответов
0 голосов
10 ответов
спросил 09 Фев, 13 от FanKoRn (240 баллов)
0 голосов
2 ответов
спросил 26 Апр, 14 от GaL4oNok (160 баллов)