資産優先度の実装
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
アセットパブリッシャー では、優先順位に従ってアセットを注文できます。 ただし、これが機能するためには、ユーザーがアセットを作成または編集するときにアセットの優先度を設定できる必要があります。 たとえば、Webコンテンツを作成または編集する場合、ユーザーは[メタデータ]セクションの[優先度]フィールドで優先度を割り当てることができます。
アセットを作成するとき、このフィールドは有効になりません。 サポートを手動で追加する必要があります。 幸いなことに、これは非常に簡単です。 このチュートリアルでは、その方法を示します。 オンワード\!
JSPに優先度フィールドを追加する
アセットを追加および編集するためのJSPで、ユーザーがアセットの優先度を設定できる次の入力フィールドを追加します。 また、この例では、入力を検証して、ユーザーが設定する値がゼロより大きい数値であることを確認します。
<aui:input label="priority" name="assetPriority" type="text" value="<%= priority %>">
<aui:validator name="number" />
<aui:validator name="min">[0]</aui:validator>
</aui:input>
ビューレイヤーについては以上です! ユーザーがアセットを作成または編集するときに、優先度を入力できるようになりました。 次に、サービスレイヤーでその値を使用する方法を学習します。
サービスレイヤーでの優先値の使用
優先度の値を機能させるには、ビューから取得して、データベースのアセットに追加する必要があります。 優先度の値は、 ServiceContext
変数 serviceContext
介してサービス層で自動的に利用可能です。 serviceContext.getAssetPriority()
で取得し、 -LocalServiceImpl``assetEntryLocalService.updateEntry
呼び出しに最後の引数として渡します。 あなたには、この例を見ることができます BlogsEntryLocalServiceImpl
クラス @製品のを@のブログアプリ。 updateAsset
メソッドは、優先度 引数
取ります。この引数は、 assetEntryLocalService.updateEntry
呼び出しの最後の引数として渡します。
@Override
public void updateAsset(
long userId, BlogsEntry entry, long[] assetCategoryIds,
String[] assetTagNames, long[] assetLinkEntryIds, Double priority)
throws PortalException {
...
AssetEntry assetEntry = assetEntryLocalService.updateEntry(
userId, entry.getGroupId(), entry.getCreateDate(),
entry.getModifiedDate(), BlogsEntry.class.getName(),
entry.getEntryId(), entry.getUuid(), 0, assetCategoryIds,
assetTagNames, true, visible, null, null, null, null,
ContentTypes.TEXT_HTML, entry.getTitle(), entry.getDescription(),
summary, null, null, 0, 0, priority);
...
}
BlogsEntryLocalServiceImpl
クラスは、ブログエントリを追加または更新するときに、この updateAsset
メソッドを呼び出します。 serviceContext.getAssetPriority()
が優先度を取得することに注意してください。
updateAsset(
userId, entry, serviceContext.getAssetCategoryIds(),
serviceContext.getAssetTagNames(),
serviceContext.getAssetLinkEntryIds(),
serviceContext.getAssetPriority());
甘い\! これで、アプリのアセットの優先順位を有効にする方法がわかりました。