Developing Page Fragments
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

ページ フラグメントでのカスタムフィールドの使用

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に切り替えると、それぞれフッターを表示または非表示にすることができます。

ページカスタムフィールドの値を使用して、ページ上のHTMLフッターコンテンツを表示または非表示にします。

ユーザー用のカスタムフィールドにアクセスするには、以下を使用します。

user.getExpandoBridge().getAttribute("ATTRIBUTE_NAME")

ゲストユーザーには、カスタムフィールドの値がない場合があります。 この場合、ゲストユーザーのカスタムフィールド値を取得しようとすると、ページ表示時にエラーが発生します。 ユーザーカスタムフィールドを持つフラグメントを開発する際には、ゲストユーザのアクセスを考慮するようにしてください。

このようにFreeMarkerのコードを追加することで、値が存在するかどうかをチェックしてから使用することができます。

[#if user.getExpandoBridge().getAttribute("showFooter")??]
    ...
[#/if]