2016-03-30 2 views

Antwort

1

Im Allgemeinen fügen Sie Stimmen unter Verwendung votingapi_set_votes hinzu und löschen Sie Stimmen unter Verwendung votingapi_delete_votes. http://www.drupalcontrib.org/ scheint keinen tatsächlichen Code für votingapi Modul zu haben, also schauen Sie sich die Quelle an.

Für diese beiden Funktionen müssen Sie eine Basiskriterien, etwa wie folgt:

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

Für Abstimmung Einstellung, die Sie seinen Wert benötigen, die in der Regel von Kriterien, die von Wertfeld nur dadurch unterscheidet:

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

dann

votingapi_set_votes($votes, $criteria); 

wird löschen alle Stimmen stimmen mit $criteria überein, und fügen dann neue Stimmen hinzu (angegeben durch $votes). Diese Funktion sorgt auch für die Neuberechnung des Abstimmungscaches (d. H. Aggregierte Werte).

Für Stimmen zu löschen („unvote“), die Sie zunächst erforderlichen Stimmen auswählen müssen und sie dann gehen in die votingapi_delete_votes Funktion:

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

Diese Funktion ist nicht stimm Cache nicht neu berechnet, so dass Sie dies explizit tun müssen, :

votingapi_recalculate_results('node', $node->nid);