Hello,
I've just created a new karma module.
I am not entirely sure other people would be interested in it. It's well code, well commented, and it's about to be tested on a production server (http://www.freesoftwaremagazine.com).
Now... here is a (probably not comprehensive) list of features:
-
Javascript voting; however, the module works 1000% even if the
user doesn't have Javascript -
Abuse control. The module allows you to limit users on how many karma points
they cna give, to a particular user or in general. The admin can also decide
on how many different comments a user can vote on -
Publishing the best comment in a special spot, ONLY for nodes associated
to selected (configurable) terms. This allows certain forums (for
example) to have this feature, and create a "Ask Jeeves"-like
web sites -
Automatic assignment of roles depending on the karma range. This means
that you can make some users more powerful according to the
karma they have. It's DEADLY CRUCIAL that you create roles SPECIFICALLY
for this module. This module will turn the set roles on and off, with
no mercy. Roles are assigned when a user signs up, which means that
you can assign a "default role" to a user. -
Automatic assignment of userpoints based on a custom formula when
karma is assigned. The Karma module will take/give userpoints according
to the karma received/taken away. This is handy if you allow people to
"spend" their user points, for example. -
Bonus karma-voting owers to people with specific permissions. The module
sets a number of specific permissions. When a user has them (because
they are associated to a role, for example), then the user can give/take
more karma on each vote. -
Ability to bury comments below a certain karma. The administrator
can set a threshold under which a comment is marked as buried. The
comment will still show up, but users won't be able to vote for it
nor see its contents. -
Ability for the karma administrator to see all of the buried
comments and vote on them (users can't vote for buried comments). This
way, the administrator could un-bury them, or use this as
anti-abuse mechanism. -
No HTML anywhere in the module. Everything is configurable from the
admin interface -
Ability to put the karma form in the link section of the comment
or anywhere in the comment template (by hand) -
Ability to see users by karma, and (for the karma administrator) the
-
ability to see who got karma when
-
Karma points expire in N days (where N is configurable). NOTE:
points expire only as far as users are concerned. All of the
queries consider ALL of the karma votes for comments. This makes sense:
a user's karma will tend to 0 as time passes, whereas a comment's
karma will stay forever
It doesn't use the voting API. However, it "interfaces" with it, meaning that when people get karma points, the module might invoke the userpoint API to give that user some userpoints.
(And yes, it works totally fine even if a vote is re-cast, since it checks the txn history if a vote is re-cast, please check the code)
You can get the module from here:
http://www.freesoftwaremagazine.com/sk.tgz
Please NOTE: don't enable the userpoint abilities just yet, since it needs a version of userpoints that is not available just yet (the author of userpoints, Khalid Baheyeldin, has the patch as is reviewing it, see my patch here: http://drupal.org/node/142956. The patch fixes an issue where the trail is not updated if no moderation is required, and the trail is ALWAYS NECESSARY to simple_karma in case a person re-votes ).
The obvious question first: why didn't I use the voting API to keep track of the karma? Basically, because karma and userpoints are two different things. They work in different ways, and it would be bad to confuse them. The main difference in terms of tables (that is, the real showstopper technically) is that karma has a 'giver' and a 'receiver', and they are both very important. If you are not convinced, have a look at the module's code (which is very easy to read and follow, BTW).
Why am I writing here?
I was just wondering if you guys thought I should release it to drupal.org (I have CVS access to the contrib repository) and if you had any comments, really. I really only have time for bug fixing, but any extra ideas will definitely be added to a nice "ideas.txt" file for the next release!
One note: the recalculation hasn't been tested yet. So please beware and backup your DB before trying this module.
Bye!
Merc.
Comments
It seems there is interest
It seems there is interest for this over at http://drupal.org/node/144363
Did I get you guys in a quite moment...?
Hi,
Does anybody hang out around here? :-D
Just wondering... I hope it's not because my module is completely uninteresting!
Bye,
Merc.
It is most definitely
It is most definitely interesting. I look forward to trying Simple Karma a in a future project! Thank you for contributing it.
OK!
Hi,
OK thanks!
Merc.
thanks for you module
Hi mercmobily, I've just implemented your Simple Karma module on my site. I was looking for such a module and your's perfectly suites my needs. It's great because users get karma not by posting quantity but for quality. It can be easily integrated with User Badges module.
Thanks a lot for you module!
Federico
www.zonaeconomica.com
(Just a minor issue: it crashes css when using drupal 5 css aggregation and compression)
No worries!
Hi,
I didn't even know that the badges module existed!
That's very cool.
I am actually re-developing the module as we speak. Amongs other things:
I also don't really like the way users have to decide manually how much karma decides which roles are assigned. I am after somebody with maths experience to help me out...
ANyway, stay tuned!
Merc.
where to publish modules
Perhaps I missed it and you've already done this, but you'll get a lot more visibility and users of your module if you publish it on drupal.org proper. See http://drupal.org/contribute/development for more details on how to go about that.
--
Knaddisons Denver Life | mmm Chipotle Log | The Big Spanish Tour
knaddison blog | Morris Animal Foundation
i'm interested
i want a good karma module too. i want it in association with organic groups. each group is like yahoo group mailing list and i want karma for each member. then a threshhold whereby you don't get emailed (or see on web) posts by low rated members. because you have to authenticate on web for any post, we know exactly who authored any post. a regular email list can't say that because of forged From header.
More info?
Hi Moshe,
The module is under VERY active development.
Can you send me more information about this feature request?
Merc.
Looking into this...
Hi,
OK, looking into this one...
The simple_karma module already does some of this - although, not quite.
Right now, a comment will get buried if it receives enough bad karma from people (you decide the threshold). I am not sure about the email part, to be honest.
It's very easy form e to change the module so that it doesn't show at all comments by people with karma < X. But then, who ever gets to see these comments? (The simple_karma module, right now, allows the admin to see the buried comments in buried order, just in case something got buried for the wrong reasons).
Moshe, please also note that to keep the module sane, and not to overlap sillily with existing notevote modules, simple_karma only works on comments, NOT nodes.
Bye,
Merc.
FYI: Another Karma module
I think that the module in question has been released by now: http://drupal.org/project/simple_karma
For your information, here is the home page for karma.module, another karma module: http://drupal.org/node/66596.
Unlike simple_karma, karma.module does not seem to be actively maintained and is much more limited in scope.
Maybe the two modules could be merged at some time?
--
www.reuniting.info
Healing with Sexual Relationships.
www.wechange.org
We live in a world of solutions.
.
--
www.reuniting.info
Healing with Sexual Relationships.
www.wechange.org
We live in a world of solutions.
Merging would be impossible...
Hi,
Merging would be impossible, because the modules are too different in scope - sorry...
However, please feel free to send me feature requests and I will do my best!
Bye,
Merc.
Error
Hi. I was excited to see this module. I installed it and am getting this error on the admin page:
warning: Invalid argument supplied for foreach() in /includes/form.inc on line 945.
Do you have any idea what this is?
Thanks,
Rachael
Known bug...
Hi,
It's a known bug if you have no forums created.
It's actually harmless... and yes, it will be fixed in the next version of the module.
In the future, please use the module's bug tracking system!
Thanks,
Merc.
I'm very excited about this new module.
I've been wanting to have this functionality for a user-moderated forum for years now.
The install profile which fascinates me most is this:
Voting API
CRE (Content Recommendation Engine with the Slope One Algorithm)
User Points
Organic Groups
Up/Down Voting
Those modules and the ones which are required by these make the most volatile environment.
Now that this Karma module has been created, I'm even more excited.
The question in my mind is this: should the Karma module be a separate module from user-points, or should these new levels of functionality be integrated into User Points?
Anyway, I'm obsessed with this install profile so I can emulate the functionality of the most successful group blogs using free software.
I also hope all these modules which I consider crucially important to be quickly updated for Drupal 6 which is fast approaching.
I'm guessing Drupal 6 will be even more scalable than Drupal 5.
All I care about is the highest possible level of interactivity between users combined with scalability for the most possible concurrent users.
This free software can create a volatile, group-psychology environment which can turn the group-blogging world upside down!
This is like the Manhattan Project.
Paul
Userpoints
Hi,
Karma interacts with Userpoints, meaning that it can give/take userpoints according to the karma you've received. However, the concept of karma and the concept of points are completely different and somehow unrelated...
Let me know what you thing about my module!
Bye,
Merc.
I can't wait to try this module out.
Merc,
It's been a while since I've installed all the modules in question. I would love to get my installation working smoothly and with your karma module. I'm hyped. I just need to find the time to take another stab at this install profile.
Thanks,
Paul