En Drupal 6:
- El modulo votingapi permite que los usuarios anónimos puedan votar nuevamente luego de un tiempo configurable (3600 segundos por default). Esto se puede ver en votingapi/votingapi.module:
function votingapi_select_votes($criteria = array(), $limit = 0) { $anon_window = variable_get('votingapi_anonymous_window', 3600); if (!empty($criteria['vote_source']) && $anon_window > 0) { $criteria['timestamp'] = time() - $anon_window; } $votes = array(); $result = _votingapi_select('vote', $criteria, $limit); while ($vote = db_fetch_array($result)) { $votes[] = $vote; } return $votes; }
- El módulo rate tiene widgets que permiten votar, con ayuda del votingapi. Se puede implementar el hook hook_rate_vote_alter() para indicar que los usuarios autenticados también puedan votar nuevamente:
Permitir votar nuevamente indefinidamente:// mmm module /** * Implementation of hook_rate_vote_alter(). */ function mmm_rate_vote_alter(&$votes, &$context) { $context['criteria'] = FALSE; }
Permitir votar nuevamente luego del mismo tiempo indicado en la configuración para los usuarios anónimos:// mmm module /** * Implementation of hook_rate_vote_alter(). */ function mmm_rate_vote_alter(&$votes, &$context) { $anon_window = variable_get('votingapi_anonymous_window', 3600); $min_time_until_new_vote = $anon_window; // seconds $context['criteria'] = array( 'content_id' => $votes['content_id'], 'timestamp' => time() - $min_time_until_new_vote ); }
Para deducir esto, me ayudó http://drupal.org/node/1224150#comment-4809672 y analizar un poco votingapi/votingapi.module, votingapi_set_votes().