2016-03-30 11 views

答えて

1

一般に、votingapi_set_votesを使用して投票を追加し、votingapi_delete_votesを使用して投票を削除します。 http://www.drupalcontrib.org/votingapiモジュールの実際のコードを持っていないようですので、ソースを見てください。

$votes = $copy_of_criteria; 
$votes['value'] = 666; 

:あなたは通常は値フィールドで基準とは異なり、その値を、必要

$criteria = array(
    'entity_type' => 'node', 
    'entity_id' => $node->nid, 
    'uid' => $user->uid, 
    'value_type' => 'points', 
    'tag' => 'vote', 
); 

投票を設定するために:あなたはベースの基準を必要とするこれらの機能の両方について

、このような何かその後

votingapi_set_votes($votes, $criteria); 

削除させていただきますすべての投票が$criteriaと一致した後、新しい投票を追加します($votesで指定)。この機能は、投票キャッシュ(つまり、集計値)の再計算も行います。あなたが明示的にこれを実行する必要があるので、

$votes = votingapi_select_votes($criteria); 
votingapi_delete_votes($votes); 

この関数は、議決権のキャッシュを再計算しません:あなたは、まず必要な票を選択し、votingapi_delete_votes機能にそれらを渡す必要があります(「unvote」)票を削除するための

votingapi_recalculate_results('node', $node->nid); 
関連する問題