Проверьте, имеет ли пользовательский Атрибут значение true
Я следовал этому руководству, чтобы создать настраиваемое поле в Liferay. Я создал атрибут истина / ложь, но я хочу проверить, является ли этот атрибут истиной или ложью, если это правда, перейдите в меню / страницу cssClass. Я пытался с этим:
#set ($menu = $nav_item.getLayout().getExpandoBridge().getAttribute("get-menu"))
#if ($menu == "true")
<a href="" class="menu True">$nav_child.getName()</a>
#else
<a href="" class="menu">$nav_child.getName()</a>
#end
Но не работает!
Как я могу проверить, имеет ли Пользовательский Атрибут значение true или false?
Любая помощь очень ценится! Спасибо вам большое!
2 ответа
Если пользовательское поле get-menu для Page объявлено как логическое значение выше, если условие должно работать
#if ($menu)
#if ($menu == true)
Если он по-прежнему не работает Проверить базу данных на наличие таблицы ExpandoColumn, он будет иметь имя вашего столбца get-menu и значение по умолчанию, если установлено.
Таблица ExpandoValue будет иметь фактическое значение для вашего настраиваемого поля, ищите columnId, соответствующее вашему настраиваемому полю, и classPK, который будет идентификатором макета вашей страницы. Эта строка будет иметь ваше значение, т. Е. Либо true / false.
Если эта строка присутствует для вашей страницы, она должна работать в коде вашей виртуальной машины выше.
Надеюсь, это поможет вам!
Если это логическое значение, вы можете использовать любое из:
#if ($menu)
#if ($menu == true)
#if ("$!menu" == 'true')
Тем не менее, он должен работать и с вашим кодом, так что, возможно, вы неправильно читаете значение. Какова стоимость $menu
? Просто распечатайте это, чтобы узнать.