0

このガイドに従って、Liferayでカスタム フィールドを作成しました。true/false 属性を作成しましたが、この属性が true か false かを確認したいのですが、true の場合はメニュー/Page a 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 かを確認するにはどうすればよいですか?
どんな助けでも大歓迎です!どうもありがとう!

4

2 に答える 2

1

条件が機能する必要がある場合、ページの get-menuカスタム フィールドが上記のブール値として宣言されている場合

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

それでも機能しない場合は、ExpandoColumnテーブルのデータベースを確認してください。列名 の get-menuとデフォルト値が設定されています。

ExpandoValueテーブルには、カスタム フィールドの実際の値が含まれます。カスタム フィールドに対応するcolumnIdと、ページ レイアウト ID となるclassPKを探します。この行には、値、つまり真/偽のいずれかが含まれます。

この行がページに存在する場合、上記の VM コードで機能するはずです。

これがあなたを助けることを願っています!

于 2013-09-26T04:40:18.387 に答える
1

それがブール値の場合、次のいずれかを使用できます。

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

ただし、コードでも機能するはずなので、値を間違って読んでいる可能性があります。の値は$menu? 印刷するだけでわかります。

于 2013-09-18T14:50:11.693 に答える