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

Параметры меню

00 голосов
4
Есть необходимость выделять некоторые пункты меню. Делаю как в мануале, а именно:
1) В расширенном режиме редактирования меню некоторому пункту задаю параметры название:HOT значение:Y
2) В шаблоне меню в цикле вывода пунктов например <?=$PARAMS["HOT"]?>

и без результата, "Y" не вижу(
Все это сопровождалось массой экспериментов с названиями переменных.

Скажите пожалуйста, как надо было решать?
спросил 16 Сен, 13 от qwetgyuer (120 баллов)

4 Ответы

00 голосов
А как появляется переменная $PARAMS? Или она для примера только?
Вообще, если у Вас цикл в шаблоне вроде этого:
Код
<?foreach($arResult as $arItem):?>

то внутри него 'Y' нужно ожидать в $arItem['PARAMS']['HOT'].
ответил 20 Сен, 13 от Snaper (580 баллов)
00 голосов
Массив $PARAMS я так понимаю предопределен, судя по http://dev.1c-bitrix.ru/user_help/content/fileman/fileman/fileman_menu_edit.php
ответил 18 Дек, 13 от qwetgyuer (120 баллов)
00 голосов
Пользоваться сокращением $PARAMS действительно проще, но сам по себе он не обновляется в итерациях. Так что можно дописать строчку после условия цикла
Код
<?foreach($arResult as $arItem):?>
   <?$PARAMS = $arItem['PARAMS'];?>
ответил 02 Апр, 14 от Snaper (580 баллов)
00 голосов
Собственно с Вашей помощью достучался до массива, и сделал бы это сам, если бы не зацепился за недвусмысленное на мой взгляд описание в мануале:

Указываются любые параметры, используемые при построении шаблоном пункта меню. Параметры хранятся в ассоциированном массиве $PARAMS в виде пар "имя =>значение". При построении меню по шаблону, в самом шаблоне может быть добавлена проверка параметра, например:
Код
if ($PARAMS["MY_PARAM"]=="Y")
или подставлено его значение:
Код
<a href='".$link."'
 class='".$clrtext."'
 title='".$PARAMS["ALT"]."'>".$TEXT."". $clrimg ."</a>


А по факту работает так:

Код
<?if (!empty($arResult)):?>
<?
foreach($arResult as $arItem):
?>
<?if($arItem["PARAMS"]["HOT"]=="Y"):?> class="hot"<?endif?><?endforeach?>
<?endif?>
ответил 26 Июль, 14 от qwetgyuer (120 баллов)

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

0 голосов
4 ответов
спросил 22 Янв, 14 от Eolin (100 баллов)
0 голосов
2 ответов
спросил 25 Апр, 14 от Mira666 (100 баллов)
0 голосов
2 ответов
спросил 18 Апр, 14 от Marcion (220 баллов)
0 голосов
1 ответ