تعديل عدد الأصوات

في بعض الأحيان، نحتاج إلى تضمين إجمالي من مصدر آخر، لنقل مثلاً “إعجابات من فيسبوك” لموضوع معين.

سيكون رائعًا لو أمكن تعديل عدد الأصوات الحالي. ومع إدراكي أن هذا قد يبدو مشبوهًا، أتوقع إضافة رد آلي يوضح من قام بالتعديل، وماذا تم، ومتى (مثل ما يظهر عند إغلاق موضوع يدويًا)، على سبيل المثال:

“تم تعيين عدد أصوات روب إلى 352.”

كمسؤول، يمكنني بعد ذلك تعديل ذلك الرد الآلي وإدراج سببٍ ما، مثل: “تم تضمين الإعجابات من منشور فيسبوك.”

أظن أن الأصوات مخزنة في جدول ما مرتبط بمعرف مستخدم أيضًا، لذا ربما، وبشكل مشابه لمعرف المستخدم -2 المستخدم للـ discobot، يمكن تخزين تعديلات التصويت تحت معرف مستخدم وهمي آخر؟

3 إعجابات

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.