Modifica conteggio dei voti

In alcune occasioni, abbiamo la necessità di includere un totale proveniente da un’altra fonte, ad esempio “Mi piace da Facebook” per un argomento specifico.

Sarebbe ottimo se fosse possibile modificare il conteggio attuale dei voti. Riconoscendo che ciò potrebbe apparire sospetto, mi aspetterei che venga aggiunta una risposta automatica che indichi chi, cosa e quando (simile a quella che appare quando un argomento viene chiuso manualmente), ad esempio:

“Rob: il conteggio dei voti è stato impostato a 352.”

Come amministratore, potrei quindi modificare quella risposta automatica e inserire magari una motivazione, ad esempio: “Inclusi i Mi piace dal post su Facebook”.

Immagino che i voti siano archiviati in una tabella da qualche parte associati a un ID utente; quindi, forse, un po’ come l’ID utente -2 per discobot, una modifica al voto potrebbe essere archiviata contro un altro utente fittizio.

3 Mi Piace

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.