I'm creating a module which adds a rating form to all comments, much like the mediumvote/simplevote, except that I wan't to use a form instead of links to submit the ratings.
The problem I'm having is when several comments are displayed on the page, all having a rating form, only the first form works as expected. I guess it's makes sense since they all have the same form_id, and I haven't found a way to alter the id. I'm sure there are some clever ways of solving this with the formAPI, any tips or pointers to modules already doing this (both for 4.7 and 5.0 are welcome)?
Here is my form code (short version) which gets inserted to the comment with drupal_get_form('mymodule_rate_form', $record).
function mymodule_rate_form($record) { $form['options'] = array( '#type' => 'select', '#options' => array(NULL => t(''), 1 => t('good'), 2 => t('bad')), ); $form['cid'] = array( '#type' => 'value', '#value' => $record['cid'], ); $form['submit'] = array( '#type' => 'submit', '#value' =>t('Rate'), ); return $form; }
And the code to submit the form:
function mymodule_rate_form_submit($form_id, $form_values) { $cid = $form_values['cid']; $value = $form_values['options']; //Do some voting here }
Thanks, Anders
For the record, Karma module does this for 4.7 and a patch to support this in 5.0 was recently commited: http://drupal.org/node/88109
/Anders