ページフラグメントでカスタムフィールドを使用する
カスタムフィールド をLiferayのユーザーやページに追加した場合、フラグメントでアクセスすることができます。 ページカスタムフィールドの値を取得するためには、以下のようにします。
layout.getExpandoBridge().getAttribute("ATTRIBUTE_NAME")
ページカスタムフィールドをフラグメントで使用するには、まず カスタムフィールドを追加し、次にサイトメニュー → Fragments からフラグメントエディタでページフラグメントを追加または編集します。
このHTMLの例では、カスタムフィールド showFooter
を使って、ページ上のプレースホルダー footer
要素を表示/非表示にしています。
[#assign showFooter = layout.getExpandoBridge().getAttribute("showFooter")]
[#if showFooter]
<footer class="bg-dark pb-8 pt-6 section-footer text-white">
Placeholder footer content...
</footer>
[/#if]
ページの showFooter
の値を true または false に切り替えると、それぞれフッターを表示または非表示にすることができます。
ユーザー用のカスタムフィールドにアクセスするには
user.getExpandoBridge().getAttribute("ATTRIBUTE_NAME")
ゲストユーザーは、カスタムフィールドに値を設定できない場合があります。 この場合、ゲストユーザーのカスタムフィールド値を取得しようとすると、ページ表示時にエラーが発生します。 ユーザーカスタムフィールドを持つフラグメントを開発する際には、ゲストユーザのアクセスを考慮するようにしてください。
このようにFreeMarkerのコードを追加することで、値が存在するかどうかをチェックしてから使用することができます。
[#if user.getExpandoBridge().getAttribute("showFooter")??]
...
[#/if]