web-dev-qa-db-ja.com

ユーザーがコンテンツを表示したときに、表示ユーザーにユーザーポイントを付与するにはどうすればよいですか?

このユーザーが「記事」のエンティティを表示したときに、ユーザーに1ユーザーポイントを追加する簡単なルールを誰かに提供できますか?

ユーザーポイント モジュールと「ユーザーポイントルール」統合モジュールを有効にしました。しかし、これを機能させる方法が見つかりません。

1
BassPlaya

興味深い質問です。Drupalサイト構築試験のすばらしい質問と見なす価値があります!

このルールを見てください:

{ "grant_user_points_after_content_view" : {
    "LABEL" : "Grant user points after content view",
    "PLUGIN" : "reaction rule",
    "ACTIVE" : false,
    "OWNER" : "rules",
    "REQUIRES" : [ "rules", "userpoints_rules" ],
    "ON" : { "node_view--article" : { "bundle" : "article" } },
    "IF" : [
      { "user_has_role" : {
          "account" : [ "site:current-user" ],
          "roles" : { "value" : { "2" : "2" } }
        }
      }
    ],
    "DO" : [
      { "userpoints_action_grant_points" : {
          "user" : [ "site:current-user" ],
          "points" : "1",
          "tid" : "0",
          "entity" : [ "node" ],
          "description" : "View of node with id \u0022[node:nid]\u0022 and title \u0022[node:title]\u0022",
          "operation" : "NodeViewed",
          "reference" : "Viewing of [node:content-type] \u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E\/node\/[node:nid]\u003C\/a\u003E",
          "display" : "1",
          "moderate" : "default"
        }
      }
    ]
  }
}

このルールに関する詳細。ルールUIがある場合は、自分のサイトにインポートできるはずです。 serpoints Rulesserpoints のサブモジュール)、有効にし、ルールを有効にした後も:

  • ルールイベント:a Node of content "Article"が表示されます(使用されているコンテンツタイプのマシン名を適切なタイプに適合させます)。
  • ルール条件:ユーザーが認証されている(ユーザーポイントを付与できるようにするため)。
  • ルールアクション:記事を表示しているユーザーに1ポイントを付与します。そして、利用可能なトークンのいくつかを使用して、実際のユーザーポイントトランザクションにいくつかの詳細(説明、操作、参照)を追加します...ただ楽しみのために。

簡単ですよね?申し訳ありませんが、2年間待たなければなりませんでした...

PS:前の答えは、ここでの質問に対する答えではないと思います。

1
Pierre.Vriens

変数モジュール を使用している場合は、それを実行できます。

次の手順に従ってください。

  1. Numberと呼ばれる新しい変数(テキストタイプ!)を提供します。必要なPHPコード(<?php ... ?>でラップ)。その後、$mynumberのような以前に計算された結果を使用できます。
  2. NumberPointsと呼ばれる整数に変換します。
  3. ユーザーにポイントを付与します。

これがお役に立てば幸いです。ありがとうございました。

0
Ataboy Josef