テンプレートを使用したウィジェットの埋め込み
テーマにウィジェットを埋め込んで、選択したテンプレートファイルを使用してすべてのページでウィジェットを使用できるようにすることができます。 ウィジェットを埋め込む際には、ウィジェットのポートレット定義を参照する必要があります。 コンポーネントの値の一部を提供する。
準備ができたら、テーマ(src/templates/ディレクトリ内)でFreeMarkerテンプレート(.ftl)ファイルを選択してウィジェットを埋め込みます。 たとえば、portal_normal.ftlを選択して、追加するほとんどのページにウィジェットを埋め込みます。
portal_normal.ftl またはその他のテーマ テンプレートを変更する場合は、 id="wrapper" 要素を保持する必要があります。ページ エディターはこれを使用してサイドバー、パンくずリスト、および編集コントロールをレンダリングするため、これを削除するとエディターが壊れます。 一部の機能(セグメント実験など)はこれに依存しているため、 id="コンテンツ" 要素も保持してください。 FTL ファイルを直接変更せずに外観をカスタマイズするには、代わりに マスター ページ または クライアント拡張機能 を使用してください。
ウィジェットを埋め込むテンプレートファイルに、選択したウィジェットのポートレット名とインスタンス ID (ウィジェットがインスタンス化できる場合) を使用して、 liferay_portlet["runtime"] マクロを追加します。
<@liferay_portlet["runtime"]
instanceID="INSTANCE_ID"
portletName="PORTLET_NAME"
/>
ポートレット定義でウィジェットのjavax.portlet.nameの値を使用して、ポートレット名を指定します。 com.liferay.portlet.instanceableプロパティがfalseに設定されていない限り、インスタンスIDも指定する必要があります。
たとえば、次のマクロは、テンプレートファイルの選択した場所にナビゲーションメニューを埋め込みます。
<@liferay_portlet["runtime"]
portletName="com_liferay_product_navigation_applications_menu_web_internal_portlet_ProductNavigationApplicationsMenuPortlet"
/>
埋め込みウィジェットをテンプレートに追加したら、gulp deployを実行して、変更を加えたテーマを作成します。 デプロイされたテーマには、選択した場所にウィジェットが埋め込まれました。