答案 0 :(得分:1)
通常,您使用votingapi_set_votes
添加投票,并使用votingapi_delete_votes
删除投票。 http://www.drupalcontrib.org/似乎没有votingapi
模块的实际代码,所以请查看源代码。
对于这两个功能,您需要一个基本标准,如下所示:
$criteria = array(
'entity_type' => 'node',
'entity_id' => $node->nid,
'uid' => $user->uid,
'value_type' => 'points',
'tag' => 'vote',
);
对于设置投票,您需要其值,该值通常仅与值字段的条件不同:
$votes = $copy_of_criteria;
$votes['value'] = 666;
然后
votingapi_set_votes($votes, $criteria);
将删除与$criteria
匹配的所有投票,然后添加新投票(由$votes
指定)。此函数还负责重新计算投票缓存(即聚合值)。
要删除投票(“unvote”),您首先需要选择所需的投票,然后将其传递到votingapi_delete_votes
函数中:
$votes = votingapi_select_votes($criteria);
votingapi_delete_votes($votes);
此功能不会重新计算投票缓存,因此您需要明确地执行此操作:
votingapi_recalculate_results('node', $node->nid);