Проверьте, имеет ли пользовательский атрибут значение true

Я следовал этому руководству, чтобы создать Пользовательское поле в Liferay. Я создал атрибут true/false, но я хочу проверить, является ли этот атрибут истинным или ложным, если это правда, перейдите в меню/страницу 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?
Мы очень признательны за любую помощь! Большое спасибо!


person Mustapha Aoussar    schedule 18.09.2013    source источник


Ответы (2)


Если пользовательское поле get-menu для страницы объявлено как логическое выше, если условие должно работать

#if ($menu)
#if ($menu == true)

Если это все еще не работает, проверьте базу данных для таблицы ExpandoColumn, она будет иметь имя вашего столбца get-menu и значение по умолчанию, если оно установлено.

Таблица ExpandoValue будет иметь фактическое значение для вашего настраиваемого поля, найдите columnId, соответствующий вашему настраиваемому полю, и classPK, который будет вашим идентификатором макета страницы. Эта строка будет иметь ваше значение, т. е. либо истинное, либо ложное.

Если эта строка присутствует для вашей страницы, она должна работать в коде вашей виртуальной машины выше.

Надеюсь, это поможет вам!

person Ankit P    schedule 26.09.2013

Если это логическое значение, вы можете использовать любое из:

#if ($menu)
#if ($menu == true)
#if ("$!menu" == 'true')

Однако он должен работать и с вашим кодом, поэтому, возможно, вы неправильно читаете значение. Каково значение $menu? Просто распечатайте его, чтобы узнать.

person Sergiu Dumitriu    schedule 18.09.2013