Проверьте, имеет ли пользовательский Атрибут значение 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? Просто распечатайте это, чтобы узнать.

Другие вопросы по тегам