Fórum

Webコンテンツのスケジュールをドキュメントとメディアに追加する方法について

皆様。初めまして。大和と申します。

今回、Webコンテンツの編集画面にある「スケジュール」(公開開始日時、公開終了日時)をドキュメントとメディアの編集画面に追加
したいと考えています。
カスタム項目ではデータがxml管理となってしまうため、並び替えが厳しいと考え、テーブル「assetentry」にて管理されるスケジュールを
どうにか使用できるようにできないかと思っています。

フィールドを表示するところまでは出来ましたが、「assetentry」からの表示、入力チェック、テーブルへの登録方法が分かりません。
いい案があればご教授いただけると助かります。

宜しくお願いいたします。
thumbnail
Yasuyuki GreenG Takeo, modificado 9 Anos atrás.

RE: Webコンテンツのスケジュールをドキュメントとメディアに追加する方法について (Resposta)

Junior Member Postagens: 30 Data de Entrada: 13/09/12 Postagens Recentes
大和さん

EditFileEntryActionのprocessActionをオーバーライドして、AssetEntryLocalService.updateEntryでassetentryテーブルにデータをセットすることは可能ですが、ドキュメント&ライブラリのAssetを管理するための対応はこの部分だけでなく、データを参照する場所すべてと、広範囲に及ぶので、将来のLiferay のアップグレードなどを考慮すると、保守性が著しく下がるかと思います。

現時点での実現方法としては、

https://www.liferay.com/ja/community/forums/-/message_boards/message/18151809

にあるように、
1. Workflowをドキュメント&メディアに設定して、許可する時間をカレンダーに基づいて設定する。
単純にすべてのドキュメント&メディアのAssetsの公開時間を管理するだけであれば、こちらの方法でよいかと思います。すでにドキュメント&メディアでWorkflowを使用されている場合は、Assets公開用の専用のロールを作って、Workflowの動作を切り分ける必要があるかもしれません。

2.カスタムポートレットを作成し、Schedulerを実装する
管理するアセットのために、ダッシュボード的なものが必要な要件であれば、カスタムポートレットを作成して、ドキュメント&メディアに「公開時間」のようなカスタムフィールドを設けて、LiferayのScheduler(Unixのcronのようなことを実現する仕組み)を使って、設定時間毎に状態をチェックする、という方法が考えられます。SchedulerはMessageListenerインターフェースの実装を作成して実現します。
Yasuyuki GreenG Takeo さん

回答ありがとうございます。
上記の方法でやってみます。