Umfrage (Kernmodul) - erneut abstimmen nach Bearbeiten der Umfrage?!
am 13.07.2009 - 09:30 Uhr in
Hallo zusammen,
ich habe ein Problem mit der Umfrage (Kernmodul). Wenn man eine Umfrage erstellt und sie eine gewisse zeitlang laufen lässt (in der auch schon Stimmen abgegeben wurden) und sie anschließend bearbeitet, dann werden zwar die Anzahl der Stimmen weiterhin übernommen, jedoch nicht die Benutzernamen, die bereits abgestimmt haben! Folge: Jeder Benutzer darf nochmals abstimmen, egal ob er schon abgestimmt hatte oder nicht! Woran liegt das, dass die Benutzernamen nicht übernommen werden?! Gibt es dafür eine Einstellung?! Ist es möglich den alten Stand wieder herzustellen? So kann die Umfrage ja leider nicht weiterlaufen, das würde ja das Ergebnis verfälschen!
Für Rat bin ich sehr dankbar!
- Anmelden oder Registrieren um Kommentare zu schreiben
Scheint sich hierbei wohl
am 13.07.2009 - 16:21 Uhr
Scheint sich hierbei wohl nicht um nen Bug, sondern um ein "Feature" zu handeln! Habe nämlich folgenden Code im Poll-Modul entdeckt:
/**
* Implementation of hook_update().
*/
function poll_update($node) {
db_query('UPDATE {poll} SET runtime = %d, active = %d WHERE nid = %d', $node->runtime, $node->active, $node->nid);
db_query('DELETE FROM {poll_choices} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {poll_votes} WHERE nid = %d', $node->nid);
$i = 0;
foreach ($node->choice as $choice) {
$chvotes = (int)$choice['chvotes'];
$chtext = $choice['chtext'];
if ($chtext != '') {
db_query("INSERT INTO {poll_choices} (nid, chtext, chvotes, chorder) VALUES (%d, '%s', %d, %d)", $node->nid, $chtext, $chvotes, $i++);
}
}
}
Ist auch eigentlich klar, wenn man nämlich aus der Antwort "grün" die Antwort "rot" macht, würde man ja so den Benutzern ein falsches Wort in den Mund legen können ... was ich allerdings GARNICHT in Ordnung finde ist, dass man hierbei nicht vorher gewarnt wird! Das find ich nämlich ziemlich übel ... so zerschießt man sich nämlich eben mal ungewollt und unbewusst ne ganze Umfrage! Bleibt nur zu hoffen, dass man die Ergebnisse per Backup zurück spielen kann ...