web-dev-qa-db-ja.com

ルールを使用して作成された新しいノードのフィールドを更新する方法は?

私は、サイトで実行する必要があることを追跡するのに役立つタスクというコンテンツタイプを作成しました。一部のコンテンツが公開されると、フォローアップ作業を行うように通知する新しいタスクアイテムが作成されるというルールを作成しようとしています。

新しいコンテンツが公開されると、新しいタスクアイテムが作成されるというルールを作成しました。これを行うには、[アクション]セクションに[新しいエンティティの作成]を追加します。アイテムにタイトルを付けて作成者を設定できますが、新しいタスクアイテムの他のフィールドを更新する方法がわかりません。

これはルールを使用して行うことができますか、またはこれを実現するためにPHPコードを記述する必要がありますか?

4
Robbert

ルールでは、これらのフィールドを条件として追加する必要があります-「エンティティにはx、y、zフィールドがあります」-その後、アクションで使用可能になります

1
decibel.places

新しいタスクアイテムの他のフィールドを更新するには」(質問のように)、現在のルールアクションのリストを拡張することでこれを完全に行うことができます(タイプnodeの)「エンティティを作成」する必要があります。

次に、ジョブを実行するためのルールアクションの典型的なセット/シーケンスを示します。たとえば、作成するノードの他の3つのフィールドも更新します。

  • Taskを作成するために必要なルールアクションである新しいエンティティ(エンティティタイプ=ノード)を作成します。
  • 作成されたエンティティのfield1にデータ値を設定します(それに適合する値を選択します)。
  • 作成されたエンティティのfield2にデータ値を設定します(それに適合する値を選択します)。
  • 作成されたエンティティのfield3にデータ値を設定します(それに適合する値を選択します)。
  • エンティティを保存します(必ず「即時保存を強制する」を使用してください)。

同様のルールアクションのセット(そのようなフィールドが1つのみ)を持つルールの例(ルールエクスポート形式)については、 my answer to " Set value on new created nodeを参照) Rules "を使用します。

明らかに、これのためにカスタムPHPコードは必要ありません。

1
Pierre.Vriens