Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.
Hiding down-voted posts [Yet Another Gamification Application 1.1]
nimrand
New
With this plugin, I was hoping there was a way to automatically hide posts/comments that receive two many negative reactions, but I haven't found any documentation to that effect. Is there a way to configure this?
0
Comments
@hgtonight - I haven't looked at the code, but is the vote count/negative reaction count stored in the discussion table? If so the Filterdiscussion plugin could do the trick right out of the box (easiest to do with the plugin saved filter).
Following the previous comment :I see that the "YagaDiscussionReactionCount" saves the total reaction count in the discussion table, so the approach may work. (I'm away from my computer and trying to respond from my small smart phone...)
Further follow up - Sorry, but the filterdiscussion plugin won't work at it's current incarnation - it only looks at the discussion table and the info is not there.
Thanks. I'll look into the code of those plugins. Despite my ignorance of PHP, I may be able to cobble together a solution using the code of those existing plugins as examples.
I think that the issue you face is a bit more complicated - I think that you first need to clarify uniquely what is a "down vote" and whether an "up vote" changes the "score" by which you filter out down voted discussions that reach your set threshold (and if you allow "up votes" then how would one vote on a hidden discussion? ).
It is possible to add the total vote count to the discussion table, but consider that an unvoted discussions will start with a zero count. Would you like a positive vote behave like a protection against negative votes? For example, assume that you set the hiding threshold to five negative votes. Would a discussion that got two positive vote require seven negative votes to become hidden? You can clearly see how polarized discussion topics can be subject to voting wars...
My $0.02 food for thought
I would use the reaction's reputation modifier. If the total reputation modifiers of the post's reactions drops below a certain threshold (say -5), it would become "hidden". Hidden posts will still be listed, but it will be elided saying "this comment is hidden because of too many negative reactions. Click here to show." Therefore, someone COULD later come by, click the button to show the post even though it was hidden, and decide to up vote it, but most people will just pass over it.
This is very similar to the what slashdot does, and it works well.
As for "voting-wars", you may see some of that in contentious issues. However, the negative reactions I'm setting up are really more about bad behavior (trolling, being disrespectful, off-topic, etc.), than simply disagreeing with the content.
I'd also look at the Hide Comments plugin.
I have a plugin published here: https://github.com/hgtonight/Plugin-AutoBury
I am working on releasing it right now.
Search first
Check out the Documentation! We are always looking for new content and pull requests.
Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.
That's great, while we chat you code ;-)
Hi @hgtonight , just looked at the plugin code. I saw that you achieve the hiding via css. I'm curious whether there is a way to actually skip the discussion altogether (I'm less interested in the skipping of comments). I fully understand that the effect will be to disable the ability to resurrect the discussion via positive voting.
Wait a few minutes before you release it, I'm making a PR
Edit: rubbish - that would drop those discussions more often than you want to...
I guess you would have to check the request, too in order to make sure that you only omit those discussions in "Recent Discussion"
I made this as more of a "caveat emptor" for users. I don't want users to not be able to see the content. I just want an easy warning the post is crap and not worth looking at.
This solves a great deal of issues.
Search first
Check out the Documentation! We are always looking for new content and pull requests.
Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.
By "more often" do you mean performance-wise?
Any other way?
If not I'm surprised Vanilla doesn't offer a way to accept/reject a record.
Still making the PR?
Search first
Check out the Documentation! We are always looking for new content and pull requests.
Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.
Whenever the DiscussionModel is used to get all discussions, they would be dropped. When the discussion are fetched with a custom query, they would be included.
I haven't checked it, but it might be the case that they wouldn't be included in the profile of a user.
If you really want to purge them, you should do so. If you simply don't want to include them, you should still give an option to make them accessible and give users a hint what happened.
A discussion that vanishes leaves open questions. I really prefer the CSS method.
But I think it is an error to judge a discussion based on its score. There are a lot of topics with controversal views: politics would be one good example. It is not unrealistic that a downvoted discussions score changes completely after some other users have read such a discussion. Filtering them out based on a temporary state could stop a diversified discussion before it even started...
@R_J, I have to admit that I posed the question here while my interest was elsewhere - in the ability to filter out discussion records in another plugin and without using custom views.
I do agree that total exclusion on the basis of votes is problematic.
Any ideas for what I want (should I open another dimension on that)?
Nope, already finished. It was just that locale file.
Yeah, open another dimension. That would be awesome!
It is always a big help if you also state in which view (/controller/method) you would like to exclude something.