Bearbeiten Sie Stimmenanzahl

Gelegentlich besteht die Notwendigkeit, eine Gesamtzahl aus einer anderen Quelle einzubeziehen, z. B. „Likes von Facebook" für ein bestimmtes Thema.

Es wäre großartig, wenn es möglich wäre, die aktuelle Stimmanzahl zu bearbeiten. Obwohl dies verdächtig wirken könnte, würde ich erwarten, dass eine automatisierte Antwort hinzugefügt wird, die angibt, wer, was und wann geändert wurde (ähnlich wie bei der manuellen Schließung eines Themas). Zum Beispiel:

„Rob: Stimmanzahl auf 352 gesetzt."

Als Administrator könnte ich dann diese automatisierte Antwort bearbeiten und möglicherweise einen Grund hinzufügen, z. B. „Likes aus dem Facebook-Beitrag einbezogen."

Ich vermute, dass die Stimmen irgendwo in einer Tabelle zusammen mit einer Benutzer-ID gespeichert sind. Vielleicht könnte eine Stimmenänderung ähnlich wie die Benutzer-ID -2 für den Discobot erneut unter einer fiktiven Benutzer-ID gespeichert werden?

3 „Gefällt mir“

I know this is a year old, but you can do this by editing the database directly.

From what I’ve found in my spelunking, the plugin keeps information about votes in 2 locations: the topic_custom_fields table contains the vote count for each topic, and the user_custom_fields table contains the actual record of each vote, tied to a user.

If you just edit the vote count in topic_custom_fields, the new vote count will display-- but the next time someone votes, the plugin will cross-check with the user_custom_fields records, realize the count is incorrect, and “fix” it back to before the edit.

So you have to also edit the user_custom_fields table so it agrees. Luckily, even though on the frontend you’re limited to 1 vote per topic per user, it looks like you can insert as many records as you want for 1 user into the database. So something like this:

UPDATE topic_custom_fields SET value = 3 WHERE name = 'vote_count' AND topic_id = <topic_id>;
 
INSERT INTO user_custom_fields VALUES ( DEFAULT,<user_id>,'votes',<topic_id>,<timestamp>,<timestamp>);
INSERT INTO user_custom_fields VALUES ( DEFAULT,<user_id>,'votes',<topic_id>,<timestamp>,<timestamp>);
INSERT INTO user_custom_fields VALUES ( DEFAULT,<user_id>,'votes',<topic_id>,<timestamp>,<timestamp>);

That way, assuming the vote_count was 0 at first, you’ve set it to 3 and given it 3 records to chew on when it goes to cross-check that number. Seems to work o-k for me, and you should be able to set the user_id to -2 or whatever you want.