web-dev-qa-db-ja.com

フラグ設定フラグのルールフラグ

「旗A」をもらいました。このフラグには、「フラグB」でフラグを付けることができます。

フラグAがフラグBでフラグされている場合、フラグAのフラグ設定ユーザーに Rules モジュールを介して電子メールを送信したいと思います。

私の問題は、フラグAのflagging-userの代替トークンが見つからないことです。

フラグaのフラグを設定しているユーザーに対処するトークンを除いて、フラグaのトークンをたくさん取得します。

フラグ付きフラグで利用可能なトークン:

[flagged-flagging:date] 
Flagging date   The date an item was flagged.

[flagged-flagging:flag-freundschaftsspiel-bestaetigen-count]
Freundschaftsspiel bestätigen flag count    Gesamtzahl der Kennzeichnungen für die Kennzeichnung Freundschaftsspiel bestätigen

[flagged-flagging:flag-freundschaftsspiel-bestaetigen-link] 
Freundschaftsspiel bestätigen flag link Flag/unflag link for Freundschaftsspiel bestätigen

[flagged-flagging:original] 
Original flagging   The original flagging data if the flagging is being updated or saved.

[flagged-flagging:field-fs-mannschaft]  
Mannschaft  Feld "field_fs_mannschaft".

[flagged-flagging:field-flag-fs-trikotfarbe]    
Trikotfarbe Feld "field_flag_fs_trikotfarbe".

[flagged-flagging:og-membership]    
OG memberships  A list of all OG memberships of the flagging entity.

[flagged-flagging:og-membership--1] 
Aktiv OG membership A list of all OG memberships of the flagging entity with Aktiv state.

[flagged-flagging:og-membership--2] 
Ausstehend OG membership    A list of all OG memberships of the flagging entity with Ausstehend state.

[flagged-flagging:og-membership--3] 
Gesperrt OG membership  A list of all OG memberships of the flagging entity with Gesperrt state.

[flagged-flagging:field-fs-mannschaft--og-membership]   
OG membership from field Mannschaft A list of all OG memberships registered in field Mannschaft.

[flagged-flagging:field-fs-mannschaft--og-membership--1]    
Aktiv OG memberships from field Mannschaft  A list of all OG memberships with Aktiv registered in field Mannschaft.

[flagged-flagging:field-fs-mannschaft--og-membership--2]    
Ausstehend OG memberships from field Mannschaft A list of all OG memberships with Ausstehend registered in field Mannschaft.

[flagged-flagging:field-fs-mannschaft--og-membership--3]    
Gesperrt OG memberships from field Mannschaft   A list of all OG memberships with Gesperrt registered in field Mannschaft.

[flagged-flagging:flag-freundschaftsspiel-bestaetigen]  
Whether the entity is flagged with flag freundschaftsspiel_bestaetigen  Whether the entity is flagged with flag freundschaftsspiel_bestaetigen.

[flagged-flagging:field_fs_mannschaft]  
Mannschaft  Field Entity Reference.

[flagged-flagging:field_flag_fs_trikotfarbe]    
Trikotfarbe Field Referenz auf Taxonomy-Begriffe.

これはルールのエクスポートです:

{ "rules_freundschaftsspiel_best_tigen" : {
    "LABEL" : "Freundschaftsspiel best\u00e4tigen",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules", "rules_i18n", "flag" ],
    "ON" : { "flag_flagged_freundschaftsspiel_bestaetigen" : [] },
    "IF" : [
      { "entity_has_field" : { "entity" : [ "flagged-flagging" ], "field" : "field_fs_mannschaft" } }
    ],
    "DO" : [
      { "mail" : {
          "to" : "[flagged-flagging-user:mail]",
          "subject" : "test",
          "message" : "test \r\n[flagging-user:name]",
          "from" : "[site:mail]",
          "language" : [ "flagging-user:language" ]
        }
      }
    ]
  }
}

メールアクション「to」で使用されるトークンは、単なる例です。フラグが立てられたフラグのユーザーのメールのトークンはありません。

使用できる唯一のメールトークンは、flagging-user:mailの1つです。これは、フラグBのフラグ設定ユーザーになります。

Flagged-flagging:flagging-user:mailのようなものが必要になると思います。

フラグBのフラグが付いたフラグAのユーザーにメールを送信する方法はありますか?

ルールは次のようにする必要があります。

フラグ( "A"または "Freundschaftsspiel"と同じ)がフラグ "Freundschaftsspiel bestaetigen"によってフラグが設定されている場合、フラグが "Freundschaftsspiel bestaetigen"によってフラグが設定されているユーザー(flagging-user)にメールを送信します。

現在の唯一の状態は、最初のコメントに追加するように私に依頼したものです。元のフラグ(フラグAまたはFreundschaftsspiel)に含まれているフィールドを追加します。

Freundschaftsspielは「フレンドリーゲーム」です。

Flagged-flagging-userは、私の構成です。置換パターンにはありません。

しかし、このようなものはトークンが必要です。上に示すように、「著者」またはフラグを立てているユーザーを除いて、フラグ「A」の他のすべてのデータが利用可能です。

このすべての背後にある全体的な考えを説明します。

ユーザーは、日付とチームのデータを含むエンティティ「Freundschaftsspiel」を作成します。他のすべての親善試合でこのチームとの競争に興味がある場合は、このエンティティにフラグAまたは "Freundschaftsspiel"フラグを設定できます。

エンティティ「Freundschaftsspiel」の作成者は、ビュー内の関心のリストを取得します。

次に、これらの興味の1つにフラグBまたは "Freundschaftsspiel bestaetigen"のフラグを立てます。

そのとき、ルールを実行する必要があります。

2
fruitsalad

質問に対処するために何が必要かを伝えるのは難しいです。ただし、ルールに「エンティティにフィールドがある」などの条件が含まれていることを確認してください。そのフィールドは「フラグA」に関連するものです。これにより、「フラグAのフラグを設定しているユーザー」が、探しているトークンとして利用可能になる場合があります。

編集1:少し考えてから、(更新された)質問には、これまでに持っているルールも含まれているので、何かがあると思いますあなたが達成しようとしていることで間違っています(または私はそれを理解していません):

  • フラグAにフラグBが設定されている場合、フラグAの「flagging-user」に電子メールを送信します。
  • フラグBを使用」は明らかに、許可されたユーザーなら誰でもできることです(問題ありません)。
  • フラグAにフラグが設定されています」は「何か」(=フラグA)のように思えますフラグを立てることができます(「フラグB」など)。 「フラグA」をノードまたはユーザー(通常はフラグ設定に使用される)のようなエンティティによってしばらくの間(置換)すると仮定します。ノード(またはユーザー)エンティティには「フラグ設定ユーザー」などのものがありませんフラグBについて話している場合。その場合、フラグを立てるユーザーは、フラグBを使用してノード(またはユーザー)のようなエンティティにフラグを立てたユーザーを示します。
  • 上記で説明した理由により、このような「フラグAのフラグを立てているユーザー」は、存在しないという理由だけでは見つけられないと思います。それはあなたが聞きたい答えではないかもしれませんが、私はそれが答えであることを恐れています。

おそらく、最初にユースケースをよりよく説明して、「フラグA」の部分を、既存の「フラグB」を使用できる他のもの(エンティティ)に置き換える方法があるかどうかを確認する必要がありますか?

編集2:以下は、質問の最後に追加したこの部分に基づいて、質問に答えるための追加の試みです。

ユーザーは、日付とチームのデータを含むエンティティ「Freundschaftsspiel」を作成します。他のすべての親善試合でこのチームとの競争に興味がある場合は、このエンティティにフラグAまたは "Freundschaftsspiel"フラグを設定できます。

エンティティ「Freundschaftsspiel」の作成者は、ビュー内の関心のリストを取得します。

次に、これらの興味の1つにフラグBまたは "Freundschaftsspiel bestaetigen"のフラグを立てます。

そのとき、ルールを実行する必要があります。

上記は私がすでに考え始めたことを確認します...あなたはそれをあまりにも複雑にしているようです。上にあるものは忘れてください(私の答えで)。そして、すでに持っている「フラグA」と「ビュー」を保持しますが、「フラグB」は削除します。 Rules Link モジュールによって提供される機能を追加して、ビューを拡張するだけです。それに関するいくつかの詳細(プロジェクトページから):

このモジュールでは、 Rules を使用して任意の機能をトリガーするリンクを作成できます。

...

リンクは通常 Views を使用して表示されます。

リンクには3つのタイプがあります。

  • JavaScript-Ajaxを使用してルールをトリガーするリンク。
  • トークン-これは基本的なリンクであり、呼び出し後にページをリロードします。
  • 確認リンク-ルールを実行する前に確認フォームを表示します

したがって、「フラグBでフラグを立てる」(リンクをクリックすることも知っていますが...)の代わりに、解決策は Rules Link モジュールを介して追加されるリンクをクリックすることです。ユーザー(=そのエンティティの作成者)にとっては、おそらく「似ている」ように見えます(すべきです!)。

この(2番目の)編集で、残りの「フラグを立てる」パズルを解決していただければ幸いです。それがどうなるか聞いて興味があります。

1
Pierre.Vriens