I havent seen much buzz about ajax in 4.7 so I figured I'd see what people think of something i've been developing for the company I work for. This is proprietary (at the moment) but it shows what's possible with Ajax (I use Sajax flavor) when it's dropped into the Drupal frame work.

http://blueberry.spoonohost.com/~thereal/drupal/?q=rating_system

I'm trying to get a feel as to if people think this could/would be useful if implemented into Drupal (possibly by taking the place of the current rating module which is a bit simplistic) or, at least in it's current state, being implemented as a series of functions into the core so that it can be generated on a page where ever is desired (currently it's setup like a built in function).

At the moment it is table based (i know, ick) but still highly customizable (almost everything about it can be turned on/off or changed via db variables aside from turning off the sajax portion and still having it work). My hope is that a final version would be CSS based to avoid theme conflicts (Kubrick is the only one it works in without destroying the theme's css at the moment)

Feedback is HIGHLY appriciated!

~!Btopro

Comments

boris mann’s picture

There is a ton of AJAX in the CVS version of Drupal already, and we have Google Summer of Code funding to add more. This is being centralized into a re-usable drupal.js library and core functions.

I recommend checking out the CVS version to look for more, and posting to the Usability Feedback forum. The voting.module implements something similar, although does it in Flash. You might want to get in touch with that module's owner, as well as nodevote -- your AJAX solution is very nice.

btopro’s picture

Cool, I've only seen the auto_complete script written by THOX (which is what got me really interested in combining drupal/ajax). I'll haveta track down the voting/nodevote makers and see what can possibly be done.

drofnar’s picture

I'll be keeping an eye out for what develops of your planned ajax rating module. Id definitely like to use it.. Rgds, mark

Crell’s picture

NodeVote is a commercial module. The free version listed on drupal.org is essentially just a very simple demo. The commercial version is also quite expensive. :-)

For a project I'm working on, I'm making essentially a cleanroom re-implementation of the commercial version as a new module. It should be completed fairly soon (a few days), and our plan is to release the module GPLed. When we do that, I'd certainly be interested in looking into how to Ajax-ify it. Ajax is cool. :-)

Please drop me a line, and I'll check with my partners.

--
Larry Garfield
http://www.garfieldtech.com/blog

--
Larry Garfield
http://www.garfieldtech.com/
Thinking Functionally in PHP: https://leanpub.com/thinking-functionally-in-php

beginner’s picture

The nodevote available at drupal.org is not GPL?
My understanding was that the commercial version was not hosted here, while the stripped down version hosted here was GPL?

Does this mean that we cannot improve the nodevote module and release the new code as GPL?

I'd be interested to know what you are currently working on. I have not started working on the voting module, but I've had the project to do something about it and add some more features to it. (I haven't looked at the code yet).

what is cleanroom re-implementation?

thanks.

--
http://www.reuniting.info/
Healing with Sexual Relationships.

eldarin’s picture

"cleanroom" as in:
he has not read/had access to the sourcecode/output from the commercial module.
I personally hope he also means the demo sourcecode, since it's probably a subset of the commercial module covered in a similar copyright.

So, he would look at and analyse what functionality is being offered. If he means the traditional way of re-engineering and mostly safe from litigation (barring patents etc) - that would mean someone supplied him with a description/specification document, and he would not have no knowledge of the UI, generated results or any sourcecode description.

How likely it is that he did not look at the demo or any sourceode is up to him to convince the audience about.

Crell’s picture

There are two versions of NodeVote. One is a very very simple version that supports only one hard coded rating axis. That version is listed on drupal.org and is released under the GPL. (http://drupal.org/project/nodevote)

The other is a commercial extended version that supports multiple axes. I did contact the author about licensing it for a project I'm working on, but the price he was asking was far too high. That version is not hosted on drupal.org, and I have never seen it, nor even seen it used.

For the project I'm working on we wanted features similar to the extended version, but didn't want to pay more for a Drupal module than for a copy of Windows XP (no joke). So I wrote my own, called noderate. (Actually just finished it tonight.) Our plan is to release it GPL and hopefully have it hosted on drupal.org. I just need to get final confirmation from my partners about it and apply for a CVS account.

I mention it here because the topic of extending NodeVote came up, and I'd much rather see noderate get fancy enhancements than NodeVote, not just because I wrote it :-), but because NodeVote's useful version is non-free.

--
Larry Garfield
http://www.garfieldtech.com/blog

--
Larry Garfield
http://www.garfieldtech.com/
Thinking Functionally in PHP: https://leanpub.com/thinking-functionally-in-php

kbahey’s picture

Hi Guys

Just to clarify on the commerical version of nodevote and userpoints.

These were developed for a client to their specifications, and he agreed that I can sell it to anyone, as long as I do not provide it for free. He agreed that I can release a GPL version of it, which I did, provided that it is on on dimension only, not multiple dimensions as the commerical version. This is the only missing feature in the GPL version, otherwise, they have the same features (it is not 'only a demo').

The reason is that he does not want people to compete with what he has done, and keep a unique feature to himself (or paying customers).

So, I cannot release it as GPL, otherwise I will be breaking my promise to him.

I later managed to convince him that non-profit organizations get it for free, and he agreed to that.

This is not rocket science though, and reimplementing it is not a difficult task for a good programmer.

--
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

boris mann’s picture

Khalid -- would you accept commits to nodevote that implement this functionality?

kbahey’s picture

You mean adding Ajax to the GPL nodevote that is in the contrib repository?

Yes, of course.

They are better than the Flash solution. At least it is more portable.

My only criteria is graceful degradation: if someone has Javascript disabled, the present functionality should be preserved (plain old list box with the vote values listed, and a "Vote" button).

--
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

beginner’s picture

I think Boris didn't mean AJAX but that he meant the multiple dimensions functionality...

--
http://www.reuniting.info/
Healing with Sexual Relationships.

boris mann’s picture

I don't think you would be violating your contract, and since this other developer has never seen your implementation, it would be fair game. Just trying to stop yet-another-rating/voting module.

The voting.module is coming along quite nicely, BTW.

kbahey’s picture

Yes, I think it would be perfectly legal and ethical that someone else add the multi dimensions as patches to the existing nodevote. I will gladly accept them, and hence the module will evolve into a GPL version of the multi dimension voting.

This is how the GPL works, anyone can extend anyone's work.

So, if someone is willing to add:

1. multi dimensions
2. Ajax (while preserving the present non-Javascript functionality)

Go ahead and submit patches.

Boris: what about this voting.module? Is it a third (or Nth) YAVM (yet another voting module)? If you say it is coming along nicely, then which way do we go?

--
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

boris mann’s picture

Voting.module is a very simple, Flash-based implementation. It also has a TinyMCE plugin. I like its simplicity, and also that it works with comments. It's probably a valid second option.

Your nodevote module has lots of options and has good development, and hopefully Larry will see fit to apply patches to yours rather than do another one (I've contacted him, pointing him at this thread).

Crell’s picture

Well, the problem is that the module I've been working on is essentially done now, as its own module. I've posted a forum topic on it here for now:

http://drupal.org/node/31157

The big thing for us is the calculated axes capability. I'll be adding more calculation functions soon, but it's fully functional as is.

How best to merge it with the other modules around here, I'm not sure.

--
Larry Garfield
http://www.garfieldtech.com/blog

--
Larry Garfield
http://www.garfieldtech.com/
Thinking Functionally in PHP: https://leanpub.com/thinking-functionally-in-php

harry slaughter’s picture

don't post a link you're going to take down a week later, dang.

--
Devbee - http://devbee.net/

btopro’s picture

2 weeks actually and I was told to pull it...sorry

Hosting Geek’s picture

put it back up I want to see!

btopro’s picture

ugh...ok fine. here it is. It's still very in the dev.
http://blueberry.spoonohost.com/~thereal/drupal/?q=rating_system

harry slaughter’s picture

looks excellent.

but why not get rid of the 'clear vote' button and alert and just have an 'unrated' icon/link, and also allow folks to change their vote (like netflix).

i'm probably going to be needing a star rating thingie soon, so i'll keep an eye out for this.

--
Devbee - http://devbee.net/

btopro’s picture

This is mostly for the purpose of example. The clear vote button is there to demonstrate that it is updating live and that under higher-traffic situations you can get updated information on exactly what is in the database at any given time.

Because this is proprietary it has been my hope to through it up and have people go "omg neat" and copy the idea without having access to the code. I wish I could give it out but it doesn't really work correctly (it screws up modifying headers at the moment which is why i take it down now and then) and I'd get in trouble w/ my bosses if it leaked more then just in this form to spur interest in the topic/concept.

ica’s picture

Simple AJAX Code-Kit. a lightweight ajax
might be worth to look into as a lightweight alternative to Sajax

http://twilightuniverse.com/2005/05/sack-of-ajax/
info/code
http://twilightuniverse.com/projects/sack/

thats the a plug-in for WordPress
http://twilightuniverse.com/2005/03/wordpress-touched/
(nice gif animation preview how the plugin function)

"no it’s not just for WordPress, it’s for everyone that wants to use AJAX in their web pages."