Cleaning House on Voting Modules

I've been spending hours trying to sort through the various voting modules available on drupal.org to find something to provide specific voting functionality for my site. This process was made difficult because many of the voting modules are splintered all over the place with little organizational agreement.

The good thing is that all of them seem to use Voting API. In addition, there are clearly some quality voting modules with great community support, such as Fivestar.

To make it less painful to find, install, and configure voting modules, I suggest developing a single voting module that integrates the important themes of the majority of these modules. This will be similar to what CCK has done for fields.

This new module can take the out-dated Voting module name-space. It can start with the Voting API and build a simple configurations around it that provide the most used voting forms (Fivestar, Advance Poll, Vote Up/Down...) which can be configured using a simple interface.

This "complete" voting module can be supplemented with additional voting form types just like other modules provide CCK with additional field types.

The goal for this module should be to make into Drupal's core and replace the currently provided poll module.

What do you think?

Login to post comments

Not sure this is the best approach.

eaton's picture
eaton - Wed, 2009-04-22 17:20

The reason different voting modules exist is -- for the most part, at least -- because different kids of workflows and different kinds of data gathering methods are needed. The requirements for Fivestar, versus a 'Was this Useful?' rating on comments, versus a Vote Up/Down style module, are all different. The approaches they use and the kinds of tasks they're performing are different.

Early on in the VotingAPI development cycle, I tried something similar to what you're describing. I called it 'CustomVote' and it supported a number of different voting styles with pluggable widgets and so on. After pursuing the project and writing quite a bit of code it became apparent that it took just as much code, with just as much duplication and inefficiency, to build it that way. I hadn't written one module -- I'd written four and jammed them into a single .module file, with extra-complex configuration screens to show for it.

Some of the questions that need to be ironed out: Would 'plug-in voting widgets' be supported across voting types? (i.e., a widget could be used for 'percentage' votes like Fivestar AND 'point' votes like Digg/Reddit) Would the widgets affect what results would be calculated when votes are cast?

If we start trying to move to a unified format for widgets we need to iron out the conceptual details first. It would be very, very easy to build a "unified" module that results in much lower quality for end users. I did that and abandoned the project myself... ;)


Good input Eaton! I didn't

philbar - Wed, 2009-04-22 19:50

Good input Eaton! I didn't know about your attempts with Custom Vote.

Despite your failed attempts, I still think with good planning, it might be possible.

Let's start: What are the functionality themes of the current voting modules?

I likely missed some. The question is: What?

Once we nail the functionality themes down, I think we can start finding points of overlap and using that information to make a clear and objective decision about if it would be better to combine efforts by producing a consolidated module.


Does anyone know why

philbar - Wed, 2009-06-03 21:14

Does anyone know why Advanced Poll and Decisions have the same functionality but are remaining separate modules? Seems like they should combine their efforts.