behandelt votingapi_set_votes Abstimmungen und Unvoting. Ich werde versuchen, die gleiche Logik wie diese Drupal Creating Votes in Voting API Through Code zu verwenden, um eine Abstimmung zu erstellen. Was ich frage ist, wie man mit Abstimmungen und Abstimmungen umgeht.behandelt votingapi_set_votes mit Abstimmungen und Abstimmungen
Antwort
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);