カスタムコードからアセットカテゴリーに関連付けられた画像を取得するには?
knowledge-article-header-disclaimer-how-to
knowledge-article-header-disclaimer
legacy-article
learn-legacy-article-disclaimer-text
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちら までご連絡ください。
問題
カテゴリーを編集する際、画像を設定することができる。
しかし、カスタムコードから画像を取得しようとすると、それができない。 AssetCategory
オブジェクトには関連するメソッドはありません。
解像度
これらの画像は、アセットカテゴリーが属するアセットフレームワークに関連する他のモジュールの代わりに、Liferay Commerceのモジュールによって処理されます。
そのため、他のカテゴリーのフィールドにアクセスするほど簡単ではない。
画像を取得するには、Commerce APIを使用する必要があります。 例えば CPAttachmentFileEntryServiceUtil.getCPAttachmentFileEntries()を呼び出す。
. これにより、CPAttachmentFileEntry
オブジェクトに対して fetchFileEntry()
を呼び 出して、関連する FileEntry
を取得することができます。
サンプルスニペットを以下に示します(7.4 u 76 でテスト済み):
import com.liferay.account.constants.AccountConstants import com.liferay.asset.kernel.model.AssetCategory import com.liferay.commerce.media.CommerceMediaResolverUtil import com.liferay.commerce.product.model.CPAttachmentFileEntryConstants import com.liferay.commerce.product.service.CPAttachmentFileEntryServiceUtil import com.liferay.document.library.util.DLURLHelperUtil import com.liferay.portal.kernel.theme.ThemeDisplay import com.liferay.portal.kernel.util.PortalUtil import com.liferay.portal.kernel.workflow.WorkflowConstants def assetCategoryId = 000 def themeDisplay = (ThemeDisplay)actionRequest.getAttribute(com.liferay.portal.kernel.util.WebKeys.THEME_DISPLAY) def cpAttachmentFileEntries = CPAttachmentFileEntryServiceUtil.getCPAttachmentFileEntries( PortalUtil.getClassNameId(AssetCategory.class), assetCategoryId, CPAttachmentFileEntryConstants.TYPE_IMAGE, WorkflowConstants.STATUS_ANY, -1, -1) for (def cpAttachmentFileEntry in cpAttachmentFileEntries) { def fileEntry = cpAttachmentFileEntry.fetchFileEntry() out.println("fileEntry " + fileEntry.getFileName()) def thumbnailSrc = DLURLHelperUtil.getThumbnailSrc(fileEntry, themeDisplay) out.println("thumbnailSrc " + thumbnailSrc) // You can also leverage CommerceMediaResolverUtil def url = CommerceMediaResolverUtil.getURL(AccountConstants.ACCOUNT_ENTRY_ID_ANY, cpAttachmentFileEntry.getCPAttachmentFileEntryId()) out.println("url " + url) }
did-this-article-resolve-your-issue