A new module, User Points has been uploaded.

Users gain points when they post info to the site, such as posting a node, commenting on a node, or voting on a node.

The site admin defines how much points a user gets on each event.

More on the User Points module.

Comments

Poolio’s picture

I can't seem to find where this can be downloaded from.

Poolitics

kbahey’s picture

Give it a day or so while the tarballs are built.

If you are really in a hurry, then you can get the files from here:
http://cvs.drupal.org/viewcvs/drupal/drupal/modules/userpoints

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

Poolio’s picture

I was just a little confused because your other post about this module seemed to imply that it was already available for download.

I'm looking forward to checking it out whenever it's ready. :)

Poolitics

zirafa’s picture

where can i find this nodevote module that is referenced on the user points module page?

kbahey’s picture

Note Vote is here http://drupal.org/project/nodevote

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

jasonwhat’s picture

It would seem more useful if the author of the node receiveing the votes got points equivalent to the vote. I've always found it weird that the module that allow voting on content don't actually relate to the user receiving the vote.

Also, is this module flexible enough to easily add points for other user events? For example, if they invite someone to join and the person does using the referral or invite modules?

kbahey’s picture

It would seem more useful if the author of the node receiveing the votes got points equivalent to the vote. I've always found it weird that the module that allow voting on content don't actually relate to the user receiving the vote.

As it stands now, the user gets points for posting the article, and that is it.

I see some value in what you are saying, but I am concerned that this could get abused. Imagine a political (or other site with fanatical audience polarized into various groups). Cliques can form, and vote someone into having more points, because he is one of us.

Also, is this module flexible enough to easily add points for other user events? For example, if they invite someone to join and the person does using the referral or invite modules?

If there is a "hook" in Drupal for the event then it can be added. Currently, I don't know of a hook that handles signups from referrals. If there is one in the future, I can add such an event.

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

jasonwhat’s picture

This is a standard feature in Scoop which is the most popular CMS for community moderation sites, Scoop and the largest polictal blog on the interenet, dailykos.com. There is always potential for abuse when you allow any form of community input, but it is a risk worth taking if you want a karma system.


Here is the tellafriend module, http://drupal.org/node/16499 and the invite module, http://drupal.org/node/20967 Adding more actions for points would be great and move Drupal towards having an actual karma system.

kbahey’s picture

Thanks for the pointers. tellafriend is too basic, since it only sends out an email and is not trackable.

Invite seems to be more promising. The admin can add points when a user invites someone, and more points when they actually sign up.

I will look into what is needed to integrate this. This is a good feature, since many sites like more users, and offering incentives in the form of points can be a good motivation. It will require a change to the invite module as well.

Now regarding Scoop, isn't that the one used to run Kuro5hin? It never "clicked" with me, but that may be a presentation problem, not an under the hood one.

Maybe making it an option which the admin can enable or disable?

I am not fully convinced yet, but keep talking, this is interesting.

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

grohk’s picture

We had a good thread about implementing a point system which could be used to build trust through moderation in Drupal many moons ago: http://drupal.org/node/14175

Someone in that thread mentioned the old gravity.module which used a mechanism similar to Scoop. In that system points earned are kept secret and degrade over time. The purpose is to prevent people from "gaming the system".

Here is one example of why I think Kuro5hin's has a slight advantage over Slashdot's cumulative point system: it prevents the creation of 'karma whores'. In an accumulated points system, a users score is not immediately responsive to thier current behavior and abusive behavior ("karma to burn" syndrome) can become a problem. But using Scoop's method, it is easy to gain elevated status, but it takes continued effort to keep it.

I am interested in this modules future, since I have always missed that part of Scoop since I moved to drupal.

Thanks for the module kb!

---
Code0range: Drink Your Juice

kbahey’s picture

Hi Brady

Thanks for the comments, and the insight in Kuro5hin vs. Slashdot. I am a long time Slashdotter, and find that all considered, moderation works surprisingly well there, considering the amount of traffic they get and the sheer volume of users, members and trolls as well.

Yes, I know Karma whoring is a problem, but all things considered, it is not that big an issue there.

I tried to be a regular Kuro5hin reader for a while, but never got the hang of it. Their stories are much better written than Slashdot, deeper and has more insight. What I don't like is how the comments are grouped. I tried to make them viewable like Slashdot (highest rated, nested, threshold), so I get the cream of the crop only, but failed to do so. That is why I don't like Scoop, though it may well have a better moderation system.

Anyway, enough about Scoop, let us talk about Drupal.

Moshe got in touch with me to unify nmoderation and nodevote in one module, and mentioned your name (perhaps for Code Orange).

Poolio showed interest in userpoints, and wants some features added too.

Jason came up with ideas too, regarding invite module, which I think makes perfect sense: users getting your sites more users have to be rewarded.

So, I would rather do what the community think best, rather than what I myself think is best.

Keep coming up with ideas, and if any of you run large sites (Poolitics, code0range) keep giving us feedback and direction and feature requests. If any of you need features sooner, and don't mind paying for them, let me know too.

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

Poolio’s picture

interestingly, here's something that Rusty (the founder/creator of Scoop) posted in reply to a comment of mine at DailyKos regarding open source platforms.

Drupal and Scoop are actually sort of siblings. Dries started Drupal just after I started Scoop, and we had a lot of the same motivations and goals. He liked PHP and I liked perl, so we were basically developing similar applications in parallel. We also both shared some good ideas with each other -- users of both will notice one or two similarities between then that are too strong to be coincidence.

Poolitics

jasonwhat’s picture

There is a great affiliates module at spreadfirefox.com, that is finally being updated in some promising ways, http://drupal.org/node/16009#comment-42823 I'd love to see this tied in as well since it already handles points for affiliate linking and is going to be made to work for offsite linking. On a community site like Dkos, people could get points for linking through their emails to a fundraising page for a particular candidate is one example. You can see this in action over on http://spreadfirefox.com .


As you can see this is a muc desired module in Drupal, not just for its features alone, but for it's ability to combine several dispersed modules, profile, people's email network, event, user badges all have use for this to give points for actions. The real architectural solution seems to be to have a developers api for user points, or use something like actions or workflows to give complet control to the admin, making it possible for nearly any event that happens on the site to be an oppurtunity for point accumulation.

kbahey’s picture

Jason

Re: affiliates

This is an excellent suggestion.

However, it will have to wait till affiliates is in the repository, since I need to modify both user points and the whatever other module we need to link with.

What about the other affiliates module that is in the repository?

We need to see which one has more features, is in the repository, is actively maintained, ...etc. then I can investigate integration with it.

Once one seems to be the way forward, then I will do the work.

Re: API
It would be ideal to have one. A user action API, similar to the nodeapi calls. However, this does not exist now.

The approach I am using is the next best thing. I check the desired module, and see at which point we want to inform userpoints module. A call is added to userpoints_modulename(), with the appropriate parameters.

Then userpoints can assign points to this (as per how the admin set it up).

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

Poolio’s picture

is it possible for the admin to see how many points users have?... besides the top 5.

it'd also be nice if the admin could edit users balances. for instance, if you wanted to allow users to trade their points for something... or start everyone off fresh each month.

Poolitics

kbahey’s picture

is it possible for the admin to see how many points users have?... besides the top 5.

That can be added if someone has a need for it.

it'd also be nice if the admin could edit users balances. for instance, if you wanted to allow users to trade their points for something... or start everyone off fresh each month.

In this case, it has to be part of a bigger picture: the user must be informed where the points went, and the system has to keep track of that too for future reference.

For the client I did the extended version for, they want the user to gain more privileges as they gain points (e.g. can moderate, has access to more areas, ...etc.)

If we do the start fresh thing, then better keep last month total too, or perhaps last X months. Perhaps cumulative points too (all time).

If you have a clear concept of what needs to be done, contact me and we can discuss it.

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

incidentist’s picture

Wow, I actually renamed the affiliate module that I'm working on to "userpoints" because I thought that better captured the idea. Guess I'll have to find a new name for it. This sounds good. We should definitely work to integrate our two modules.

Dan

--
Dan Kurtz - http://www.brickswithoutclay.com
The Rockridge Institute - http://www.rockridgeinstitute.org

kbahey’s picture

My first question is: how does your affiliate module compare/compete with SpreadFireFox's affiliate module? Do they overlap, are they the same? Which one has more features? Which one has more future (actively maintained, ..etc.)

--
Consulting: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

jasonwhat’s picture

He is taking the same module and updating it. SFX is moving to 4.6 and all modules are getting updated. This module should tie together with the affiliates in contrib. from my understanding as well so they could be combined anyways.

ced_garcia’s picture

Just wanted to say it is a great module!

I've actually recommended to my boss that we try this module and we may request a few paid modifications later this year.

Something we would like to do is use this module with a "rating" feature. When other users rate your article/comment/picture on a scale from 1 to 5, the person who created the article/comment/picture gets a different # of user points based on the ratings. It creates a system that is more fair to the users who write quality article, comments, etc.

Otherwise it is too easy to cheat the system by posting a few comments or fake article entries. That's the only solution I see because in our project we would not have the resources to systematically monitor all the allocation of user points.

I can think of very nice things that could be done with this module + Ajax.

C.G.

ced_garcia’s picture

Forget about the previous comment... didn't know it was using the vote module. Great module anyway!

kbahey’s picture

Currently, it gives the voting user certain number of points when they vote. This encourages participation.

It does not give the original article author any points.

But it can be modified to do that if you want it to.

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

jasonwhat’s picture

I misread and thougth this gave points to the user who wrote a node receiving votes. This is how it is done in most communities where content is moderated. Usually both nodes and comments can receive votes and that contributes to the users, karma. The old "tip jar" feature. Are there plans to implement this?

stevehinton’s picture

Points really come into their own with inter-member trading Then the community can start to develop its own currency.

I'd like to see this feature in the module as I believe community currencies are a coming thing (see http://xcogs.avbp.net)

kbahey’s picture

I guess this is like real life then: instead of working to earn money, one can beg, borrow or steal. Or maybe inherit it from a long lost relative!

:-)

No, I guess this is more like a free market: barter is the name of the game ...

You realize of course that this is open to various forms of abuse. For example User A votes on Node 1 and gets (say) 5 points. They then register as User B, vote for Node 1, and get 5 points. User B then gives his points to User A. So in effect, Use A doubled his point by faking another user.

Anyway, submit a feature request for this and describe in more detail what scenarios this would be useful in ...

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

snowcrash’s picture

Hello

I haven't been able to figure out with this module (not installed yet), but can it display the user points under a members name, in the forums?
So other members can see each other's points on posts/comments

thanks

kbahey’s picture

This can be done, but it requires a programming change to put the points where you want them to be displayed.
--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

coupet’s picture

Excellent concept! Great module!

Thanks, Darly

Apache is bandwidth limited, PHP is CPU limited, and MySQL is memory limited.

sepedatua’s picture

Hi,

I'd like to put current points value on a side block. Like showing points for blog post, inviting points, etc. I mean only the value.

Like:
=================
Current points system:

Post a blog: 10 points
Inviting user: 25 points
Post a page: 5 points
=================

How can I fetch the value from the database, what var do I have to use?

Thank you.

kbahey’s picture

You need to look in the userpoints_settings() and see the variable_get() in there.

If you create a PHP block with these in them to display the points.

You can also open a feature request to have this in a block. If I get time to do it, I will.
--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

coupet’s picture

Users earn points with userpoints. How can users use these points? I would like users to use points earned and be allowed to use other modules by using points accumulated.

for example, users can only use nodevote module based on point earned.

see noderestrict comments here http://drupal.org/node/43197#comment-98709

All comments, codes sample, ideas will be greatly appreciated!

Thanks, Darly

Apache is bandwidth limited, PHP is CPU limited, and MySQL is memory limited.

mobilemedic’s picture

I agree with coupet that the points accumulated should be able to be used in some way. Personally for my site I'd like to have predefined 'collections' (various admin uploaded images) that can be purchased with the user points, equally so these collections could be reflected on the userpoints score page ;)

I'd love to see this implemented.

irishsuperfly’s picture

I think user points are a great feature for any website wanting to build loyalty from their visitors, so thank you for creating this!

I am wondering if there is a way for an admin to manually add/remove points? I saw the API mentioned on the module page, but I've no idea if that is what I need or how I would use it. For my site, I want to be able to remove points if someone finds a loophole to abuse the system...and also there are a few things I'd like to award points for that would not be easy to implement automatically.

Thanks!