web-dev-qa-db-ja.com

ユーザーポイントが繰り返されないようにする方法

会社のライセンス情報でユーザープロファイルを更新するために、ユーザーにポイントを付与する必要があります。現在、次のルールがあります。

Event: After updating an existing user account

Add event: NOT Data value is empty
Parameter: Data to check: [site:current-user:field_licensing]

Action:Grant reputation to a user
Parameter: User: [site:current-user], Reputation: 25, Reputation category: Reputation,   
Operation: Insert, Moderate: Automatically approved

ユーザーがプロファイルを更新するたびにルールがポイントを追加しないようにするにはどうすればよいですか?ルールはフィールドが空でないかどうかをチェックするため、現在、更新ごとに25ポイントが付与されます。プロファイルがfield_licensingの付加価値を更新するかどうか、または単にプロファイルを更新してfield_licensingの値が同じかどうかをルールに確認するにはどうすればよいですか?

2
longboardnode

field_points_attributedのようなユーザーエンティティにフィールドを配置し、 フィールド権限 を使用して認証されたユーザーからフィールドを非表示にすることができます。

次に、ルールにアクションを設定して、ユーザーポイントを追加するだけでなく、フィールドの値を「yes」や「attributed」などに変更します。

最後に、そのフィールドの値をチェックする条件を追加し、「はい」または「属性付き」と表示されていないことを確認します。

1
Chapabu

もう1つの解決策は、 Flag モジュールを使用して、ユーザーに25ポイントが付与されたときにフラグを立てることを目的とした(グローバル)フラグを作成することです。

次に、既存のルールを次のように拡張します。

  • 追加のルールアクションを追加して、ユーザーにフラグを付けます。
  • 追加のルール条件を追加して、ユーザーにフラグが付けられていないことを確認します(このフラグによって)。

本当にそれだけです。

1
Pierre.Vriens