ページ フラグメントでのカスタムフィールドの使用
Liferay のユーザーまたはページに カスタム フィールド を追加した場合は、フラグメントでそれらにアクセスできます。 ページカスタムフィールドの値を取得するためには、下記を使用します。
layout.getExpandoBridge().getAttribute("ATTRIBUTE_NAME")
フラグメントでページカスタムフィールドを使用するには、まず カスタムフィールドを追加し、次にサイトメニュー → フラグメントからフラグメントエディターを使用してページフラグメントを追加または編集します。
この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]