web-dev-qa-db-ja.com

定期的な日付ルールを一括更新する方法は?

ユーザーが、おそらくVBOとルールセットを使用して定期的な日付ルールを一括更新できるようにしたいと思います。

例:ユーザーは、選択したすべてのノードの日付に「除外日= 2012/01/01」の定期的な日付ルールを追加したい場合、日付はコンテンツタイプに追加される新しいフィールドです。

これを行う方法 ?

--- =編集= ---

次のコードで基本的なルールを既に構築しています:

{ "rules_change_end_date_for_selected_content" : {
    "LABEL" : "Change end date for selected content(s) (Test rule)",
    "PLUGIN" : "rule",
    "REQUIRES" : [ "rules" ],
    "USES VARIABLES" : {
      "node" : { "label" : "Content", "type" : "node" },
      "event_end_date" : { "label" : "Event End Date", "type" : "date" }
    },
    "IF" : [
      { "entity_has_field" : { "entity" : [ "node" ], "field" : "field_event_date" } },
      { "node_is_of_type" : { "node" : [ "node" ], "type" : { "value" : { "event" : "event" } } } }
    ],
    "DO" : [
      { "data_set" : {
          "data" : [ "node:field-event-date:0:value2" ],
          "value" : [ "event-end-date" ]
        }
      },
      { "entity_save" : { "data" : [ "node" ] } }
    ]
  }
}

日付ルールの終了日(最初の日付の終了日ではなく)を変更するには、node:field-event-date:0:value2の代わりに何を入れればよいですか。このノードが繰り返されるまで日付を変更したいのですが、日付繰り返しルールのトークンが表示されません。

6
Refineo

Date Repeat Entity モジュールを見てください。モジュールの機能、特にニーズに応じて項目2を参照:

  • 定期的なシリーズの各日付に固有のコンテンツを添付する
  • 現在、将来、またはすべての定期的な日付を更新する
  • 現在、将来、またはすべての定期的な日付を削除する
  • バンドルごとの構成(コンテンツタイプ)
  • 更新が参照コンテンツに影響を与える可能性がある場合に警告を表示します
  • 繰り返される内容とタイミングをさらに制御するためのフックが含まれています

私は個人的にこのモジュールを使い始めたばかりで、素晴らしいです。

1
cdmo

これはカスタムモジュールが必要なようですが、一括更新モジュールを試しましたか?これを拡張して日付に適応できます。コード例はありません。非常に複雑に聞こえるためです。

1
Andre

あなたの場合、作業ルールの重要な部分は Rules アクションLoop(最初のルールを置き換える)です「データ値を設定する」アクション)。このようなループに慣れていない場合は、「 リストとループ 」というタイトルのチュートリアルを参照することを強くお勧めします。

あなたの場合、(少なくとも)ルールアクションを使用して、node:field-event-dateフィールドに関連するループを作成する必要があります(質問に含まれているルールに示されています)。その後、そのリストの各アイテムを反復処理する必要があります。そして、反復ごとに「ループで処理されているリストアイテムのデータ値を設定する」ためのルールアクションを実行し、その値をルールコンポーネントパラメータevent_end_dateに設定する必要があります。

完了

PS:ここでの質問のバリエーションのようないくつかのサンプルルールについては、「 ルールを使用して無制限の用語参照フィールドに複数の値を設定する方法 」に対する私の回答を参照してください。

0
Pierre.Vriens