私は現在、大学の専攻の最終的なキーストーンプロジェクトとして、教育プロジェクトに取り組んでいます。このプロジェクトはオンラインのアートワークトレーディングゲームであり、学生はアートディーラー/コレクターとしての役割を果たし、サイトでアートワークを購入、販売、取引、宣伝します。私はDrupalをその柔軟性のためにCMSとして使用することを選択しましたが、数週間後に卒業後はプロジェクトを維持しないので、比較的ユーザーフレンドリーです。
通貨システムを除いて、サイトのほとんどの機能を磨き上げました。現在、私は ser Points モジュールを使用して、生徒が作品を取引するときに使用する仮想通貨(ギルド)を作成しています。また、アートワークをカスタムコンテンツタイプとして作成しました。生徒が作品を売買したり、作品を直接交換したりできるようにしています。 Drupal Commerceモジュールをインストールしてそのルートを追跡しようとしましたが、機能していないようです。また、学生がノードの所有権を操作できるようにするためにそれを作成しようとしましたが、それは最終的に権限の悪夢を生み出すように見え、何をすべきかについて私を困らせてしまいます。サイトを維持するために私は周りにいないので、モジュールの推奨に関する私の元の質問は本当にソリューションの推奨私の教授(美術史家)がプロジェクトを維持し、コンピュータサイエンスの入門コースを受講している間は、聡明なプログラマではありません。
TL; DR:ユーザーがユーザーポイントを使用してユーザー間でカスタムコンテンツタイプを購入/販売する方法が必要です。また、長期的なメンテナンスの懸念により、ソリューションをできるだけ安定させる必要があります。
ユーザーポイント モジュールと ルール モジュールの統合を使用して、あるアカウントから別のアカウントにユーザーポイントを転送するカスタムルールを作成します。
サンプルとして、ノードの投票と組み合わせて使用されるこのルールを見てください。一方、著者は「-2」ポイントを失い、有権者は「-1」ポイントを失います。
{ "rules_votedown_question" : {
"LABEL" : "votedown_question",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"TAGS" : [ "answers" ],
"REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
"ON" : { "voting_rules_insert_node" : [] },
"IF" : [
{ "node_is_of_type" : {
"node" : [ "node" ],
"type" : { "value" : { "answers_question" : "answers_question" } }
}
},
{ "voting_rules_condition_check_vote_value" : { "vote" : [ "vote" ], "value" : "-1" } }
],
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "node:author" ],
"points" : "-2",
"tid" : "0",
"entity" : [ "" ],
"description" : "Receive downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "QuestionDownvoteReceived",
"reference" : "By uid=[vote:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
},
{ "userpoints_action_grant_points" : {
"user" : [ "vote:user" ],
"points" : "-1",
"tid" : "0",
"entity" : [ "" ],
"description" : "Issue downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "QuestionDownvoteIssued",
"reference" : "From uid=[node:author:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
}
]
}
}
ポイントの量(-2と-1)を(たとえば)+25や-25のようなものに単純に適合させる場合、プロトタイプは(25)ユーザーポイントをあるユーザーから別のユーザーに転送することになります。
ルールイベントを「何かにフラグが付けられている」( Flag モジュールで作成された)などのイベントに置き換えると、クリックするだけで「25ユーザーポイントをこれに転送したい」と示すことができます。ユーザー)これをさらに一歩進めることができます。フラグはフィールド化可能であるため、「移動」するポイントの量を示すフィールドを追加できます。
上記のルールの例では、さらに改良が必要な場合があります。ユーザーAからユーザーBにポイントを移動した後、ユーザーAの残りのポイントがマイナスにならないようにする場合。このような絞り込みを実装する方法の詳細については、「 現在のユーザーポイントがルールモジュールで否定的かどうかを確認する方法は? 」を参照してください。
PS:この質問はD7に関するものだと思います。