Contagem de votos de edição

Às vezes, temos a necessidade de incluir um total de outra fonte, digamos, “Curtidas do Facebook” para um determinado assunto.

Seria ótimo se fosse possível editar a contagem atual de votos. Reconhecendo que isso poderia parecer suspeito, eu esperaria que uma resposta automática fosse adicionada, indicando quem, o quê e quando (como a que aparece quando um tópico é fechado manualmente). Por exemplo:

“Rob: Contagem de votos definida para 352.”

Como administrador, eu poderia então editar essa resposta automática e inserir, talvez, um motivo, por exemplo: “Incluídas curtidas da postagem do Facebook.”

Estou supondo que os votos sejam armazenados em alguma tabela associada a um ID de usuário também, então, talvez, assim como o ID de usuário -2 para o discobot, uma alteração de votação pudesse ser armazenada contra outro usuário fictício?

3 curtidas

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.