web-dev-qa-db-ja.com

ユーザーが取得するユーザーポイントの量を制限するにはどうすればよいですか?

フィールド「値」(整数)と「コンテンツの公開とユーザーへのポイントの付与」というフラグを持つコンテンツタイプ「コンテンツ」があります。コンテンツにこのフラグのフラグが立てられるたびに、コンテンツの作成者に、[値]フィールドの値と同じで、最大5つのユーザーポイントを付与したいと思います。

「最大5」の状態について質問があります。 「データ比較」という追加条件を使用して、2つの別個のルールを作成しました。1つは[flagged-node:field-valueが6未満]で、もう1つは[flagged-node:field-valueが5より大きい]です。 (ここで「フィールド値」を選択できることに注意してください!)これを1つのルールだけで実行することはできませんか?

注:「値」フィールドにも問題があります。参照: 特定のフィールドの値に等しいユーザーユーザーポイントを付与する

1
Jeroen

私は自分の質問に対する解決策を見つけました。多分それは他の人も助けることができます。私は実際に、ユーザーにユーザーポイントが付与され、「コンテンツ」ノードに「コンテンツの公開とユーザーへのポイントの付与」のフラグが付けられた後にアクティブ化される「修正」ルールを作成しました。これが私がルールを設定する方法です:

[〜#〜]イベント[〜#〜]

  • ユーザーにユーザーポイントが付与されました
  • 「コンテンツの公開とユーザーへのポイントの付与」でノードにフラグが付けられました

次に、ポイント数が5を超えているかどうかを確認しました。

[〜#〜]条件[〜#〜]

  • データ比較:[userpoints-transaction:points] より大きい 5

最後に、追加されたユーザーポイントと5の差を計算し、この値をユーザーのユーザーポイントから差し引きました。

[〜#〜]アクション[〜#〜]

  • 値を計算します:[userpoints-transaction:points] "-" 5(変数名:違い)
  • 値を計算します:[difference] "*" -1(変数名:減算)
  • ユーザーにポイントを付与します:grant [userpoints-transaction:user]substractポイント

2番目の計算を挿入する必要がありました。そうしないと、ユーザーのユーザーポイントから「差」を差し引くことができなかったためです。

0
Jeroen