gabs007 Posted November 22, 2017 Share Posted November 22, 2017 I was talking to a friend about my main project and he said, "do you know what it would be actually cool ?" .. this .... I only have the concept and I will explain it with an example, or it won't make sense. Basically it's a counter for users to express gratitude and achievement thanks to the community. IT could also be a slogan for each community. It's used in visual composer for wordpress, so this is not something new. Imagine you have a community about literature where you encourage or recommend book reading. Imagine every time a member finishes reading a book, could go somewhere on the website and click on a button to say "I read a book thanks to this community and I enjoyed it" . Every time someone clicks on that button, they are added to a counter for the website. In a widget on the side, there could be a message saying something like this: "560 users enjoyed our book recommendations". Of course 560 is the counter, so the number could increase every day, week etc. while users keep reading and clicking to express satisfaction. Imagine you have a community about modifying cars. Same thing, every time someone successfully modifies his car could click on the button and the Community would read a message like "267 cars successfully modified thanks to this forum." Imagine you have a community about cooking, same thing: "1,584,544 recipes or meals successfully prepared using this website" Imagine you have a community about laptop or tablet recommendations ... same thing : "This community recommended 5,568 satisfying purchases". Imagine you have new visitor in your geek community and reads: "7,893 glitches solved since 2015" Wordpress has this option in many themes for example themes with visual composer and it is used for curriculums or company achievements ( 200 happy customers, 140 projects in Asia, etc) . Of course, you can make up the number but since IPS is a community I think allowing members to increase those numbers makes sense. A few hints & recommendations the slogan should be visible somewhere and when I say visible, I mean well integrated with the template. I would suggest that also guest users could vote. For guest users I would add a one text editor so they could add pictures or proofs. ( also guest votes should be validated by a mod ) I would suggest more than just one button. For example, a button to say "I read a good book thanks to his community" and another one to say "I read a bad book thanks to this community". I would also suggest a tool for moderators in case there are cheaters adding fake clicks. So they could remove a few votes or clics. I would also suggest a custom time frame so registered users, for example, can only vote once a week or once a day or once a year. All in all, I think it's a good idea or I wouldn't waste my time writing it here. I write the idea in case someone wants has run out of ideas for IPS4 Link to comment
opentype Posted November 22, 2017 Share Posted November 22, 2017 In my opinion that could or should hook into the reactions system, because the user functionality is all there already. It just needs the option to set up and apply different “reactions sets” to different parts of the site. Then users could then just click “that solved it for me” and so on. And retrieving statistics about individual reactions as widget would also be easy. Link to comment
Adriano Faria Posted November 22, 2017 Share Posted November 22, 2017 2 minutes ago, opentype said: In my opinion that could or should hook into the reactions system, because the user functionality is all there already. It just needs the option to set up and apply different “reactions sets” to different parts of the site. Then users could then just click “that solved it for me” and so on. And retrieving statistics about individual reactions as widget would also be easy. The only problem here is that Reactions isn’t hookable. Link to comment
Anatik Posted November 23, 2017 Share Posted November 23, 2017 On 11/22/2017 at 5:32 AM, Adriano Faria said: The only problem here is that Reactions isn’t hookable. You can overload \IPS\Content\Controller, though, and capture the actual reaction event (react() and unreact() for content items, and _react() and _unreact() for content comments). I do this in my Points app to award a specific amount of points (defined per reaction) when someone reacts to a post. Link to comment
TheJackal84 Posted December 5, 2017 Share Posted December 5, 2017 On 22/11/2017 at 10:32 AM, Adriano Faria said: The only problem here is that Reactions isn’t hookable. It depends what you want to use it for, Like @Anatik said you can hook into the Controller but then you would need to be careful as to what it does, As changing the reactions will run the code again and again, for example if you made a hook to add say 3 more reputation to the like reaction and 4 for the thanks reaction, then if they click like then change it to thanks they get 7 reputation, it they repeat it then their rep keeps going up ( down if you set it to minus ), So you need to store the reaction so it knows it's already been called and not to run the code again Link to comment
Joel R Posted December 5, 2017 Share Posted December 5, 2017 This almost sounds like Flattr. Link to comment
Anatik Posted December 6, 2017 Share Posted December 6, 2017 On 12/5/2017 at 4:43 AM, TheJackal84 said: It depends what you want to use it for, Like @Anatik said you can hook into the Controller but then you would need to be careful as to what it does, As changing the reactions will run the code again and again, for example if you made a hook to add say 3 more reputation to the like reaction and 4 for the thanks reaction, then if they click like then change it to thanks they get 7 reputation, it they repeat it then their rep keeps going up ( down if you set it to minus ), So you need to store the reaction so it knows it's already been called and not to run the code again The way I do it, is I run my code first (which doesn't actually alter the reaction - it only captures the event and sees what reaction is being used) and then pass it off to the main controller so IPS can do its thing normally after my stuff finishes. The "pass off" is done using the "finally" construct, which will allow IPS4 to always execute the reaction even if my code has an issue (which isn't a typical use of finally, but it helps avoid any unwanted entanglements between my code and IPS4). Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.