web-dev-qa-db-ja.com

ルールを使用して、十分なユーザーポイントを持つユーザーにユーザーバッジを割り当てる方法

サイトのユーザーにバッジを割り当てたい。ユーザーポイント、ユーザーバッジ、ルールモジュールがあります。ユーザーポイントは正常に機能しています。バッジを作成しました。ここで、ユーザーの合計ポイントが50を超える場合は常に、ユーザーにバッジが割り当てられるようにします。それで、ルールを作成しました。しかし、そのためのイベント、状態、またはアクションを見つけることができませんでした。アドバイスをお願いします

:ユーザーのプロファイルに移動してバッジを割り当てることで、ユーザーに直接バッジを割り当てようとしましたが、そうしようとすると、「My_Badge」は有効なバッジではありません。 。オートコンプリート機能を使用してみてください(JavaScriptが必要です)。これは何ですか?

2
why

これはもう問題ではないかもしれませんが、それでもユーザーバッジモジュールの製品版がリリースされており、ほとんどのバグが処理されているので、問題は今解決する必要があると思います。したがって、最新の7.x-1.0推奨リリースにアップグレードしてください。

ルールアクションにバッジを追加できなかった理由については、ユーザーバッジのD7バージョンはルールに統合されていませんでした。実際に取り組んでおり、まもなく統合される予定です。

0
SN_26

使用しているユーザーバッジのバージョンを教えてください。

モジュールのページによると、「7.xバージョンはまだ本番環境には適していません。」したがって、それを使用する場合は、少なくとも手動でデバッグする必要があります。

このユーザー に同じ問題が発生しており、最新の2.x devをアンインストールして再インストールすると問題が解決したとのことです。

0
Chance G

このルールの例(ルールエクスポート形式)をご覧ください。

{ "rules_grant_a_new_badge" : {
    "LABEL" : "Grant a new badge",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "userpoints_rules", "rules", "user_badges", "rules_conditional" ],
    "ON" : { "userpoints_event_points_awarded_after" : [] },
    "DO" : [
      { "userpoints_rules_get_current_points" : {
          "USING" : { "user" : [ "site:current-user" ], "tid" : "all" },
          "PROVIDE" : { "loaded_points" : { "total_points" : "Number of points in all categories together" } }
        }
      },
      { "CONDITIONAL" : [
          {
            "IF" : { "NOT data_is" : { "data" : [ "total-points" ], "op" : "\u003C", "value" : "50" } },
            "DO" : [
              { "add_badge_by_name" : { "badge" : "1", "user" : [ "userpoints-transaction:user" ] } }
            ]
          }
        ]
      }
    ]
  }
}

最初のルールアクション(ルール条件ではありません!)として、ユーザーのユーザーポイントの現在の量を取得します。金額が50以上の場合、ユーザーバッジが付与されます。

この例では、 条件付きルール モジュールを使用しています。このモジュールを使用すると、さまざまなユーザーバッジのロジックを1つのルールに統合できます。たとえば、50ポイントのブロンズ、500ポイントのシルバー、5000ポイントのゴールドなどです。ルールアクションを再実行してルールコンポーネント(適切なルール条件を追加する)を実行することもできるため、この追加のモジュールは必要ありません。詳細については、「 条件付きルールモジュールを使用する代わりの方法は何ですか? 」の回答を参照してください。

このルールを機能させるための手がかりは、最初のルールアクション "ユーザーのユーザーポイントの読み込みです。 」これは、「ユーザーの現在のユーザーポイントを確認する」ための欠落したルール条件などの代替手段(回避策?)です。

0
Pierre.Vriens