問題
- カスタム表示テンプレートを使用して Asset Publisher に表示される Web コンテンツ記事で適応画像を使用するにはどうすればよいですか?
Environment
- Liferay DXP 7.3
解決策
- System Settings > Template Engines > Freemarker Engine > Restricted Classes に移動し、制限されたクラスから serviceLocator を削除します。
- Asset Publisher テンプレートの先頭に、次のコードを追加します。
<#assign dlAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")/>
-
画像を取得するときは、次のコードを使用します。
<@adaptive_media_image["img"] fileVersion=dlAppServiceUtil.getFileEntry(image_json.getLong('fileEntryId')).getFileVersion()/>
Asset Publisher でカスタム テンプレートを適用すると、ソース コードには以下のように適用されたイメージが含まれます。
<picture data-fileentryid="39919">
<source media="(max-width:300px)" srcset="/o/adaptive-media/image/39919/Thumbnail-300x300/liferay-product-downloads.png?t=1635486233174">
<source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/39919/Preview-1000x0/liferay-product-downloads.png?t=1635486233174">
<img src="http://localhost:8080/documents/37244/0/liferay-product-downloads.png/380248bb-8067-e93d-2468-1a5b22f16f48?version=1.0&t=1635486233174">
</picture>