- タレコミは登録すれば誰でも書ける。ただしログインしていないと見れない
- ある程度活動すると記者に昇格し、記事を書けるようになる
という動作を実装したくて、ポイント機能を実装している「User Points」モジュールを導入してみた。
コメントや投稿によってポイントを付けるUser points Nodes and Commentsも同時に導入。
今の設定は、
- タレコミをしたら5ポイント
- コメントしたら1ポイント
- 15ポイント以上になったら記者昇格
ポイントの名前を設定できたりタクソノミーでポイントの種別を任意の数だけ設定できたり、結構拡張性があるようです。
そしてちなみに、タレコミを消したりコメント消したりしたらポイントも減ります。
15ポイント以下になったら記者権限剥奪とかもやろうと思えばできるんだけど、今のところ設定してない。
記者への昇格には、Rulesモジュールと連携するモジュールがUser Pointsに付属していたのでそれを使用していますが、設定がかなりややこしかったです…
今のUser Pointsモジュールだと、ルール実行中にポイントの「トランザクション」しか見れなくて、トータルの値が参照できない…。
あれこれ探し回った挙句、Rules内でトータルのポイント数を参照できるカスタムモジュールを作る方法が解説されていたので、それをコピペで独自モジュールにしてみました。
Drupalは、APIが用意されているものが多くて、コアや主要モジュールに直接手をいれずにカスタマイズできることが多いのがいいところですね。
関連URL:
コメント