Go Back   vb.org Archive > vBulletin Modifications > vBulletin 3.8 Modifications > vBulletin 3.8 Add-ons

Reply
 
Thread Tools
[AJAX] Helpful Answers - Post Rating System (plus many sub-features) Details »»
[AJAX] Helpful Answers - Post Rating System (plus many sub-features)
Version: 2.0.6, by Ted S Ted S is offline
Developer Last Online: Nov 2020 Show Printable Version Email this Page

Category: Add-On Releases - Version: 3.8.1 Rating:
Released: 02-02-2009 Last Update: 05-12-2011 Installs: 460
DB Changes Uses Plugins Auto-Templates
Additional Files  
No support by the author.

Note: While this modification is updated for compatibility, I am only developing features for the 4.x version. I understand many sites continue to use 3.8 for a variety of reasons but dual developing takes time away from adding anything new. I encourage you to develop out your own change and share them back as no modification is ideal for every forum out of the box.

Every day your users contribute hundreds if not thousands of posts making it hard for new members and guests to separate out the best answers from those that are less helpful. The Helpful Answers System offers your members a quick way (AJAX) to rate individual posts as either helpful or not allowing future visitors to understand the benefits of each post.

Designed for maximum flexibility:


This addon is built to be flexible and offers several customization options including:
  • The ability to show a user's vote stats in posts
  • The ability to use image or text ratings.
  • The ability to offer yes/no or scaled 1-10 point ranking.
  • The ability to turn off negative ratings for a positive only system.
  • The ability to decide which forums are open for helpful answer ratings.
  • The ability to audit the system and identify top users and potential abusers.
  • The ability to ban specific members from using the system.
  • The ability to customize the AJAX message shown after a post is rated.
  • The ability to edit all text and messages through phrases.
  • The ability to show a page with the top helpful posts.
  • The ability to show rating stats on a user's profile.
  • Integration with the reputation system for ratings.
  • Template driven display that can easily be customized to your forum.
For advanced users template conditionals and variables let you further extend the functionality to color highlight good or bad posts, include ratings in user?s profiles and much more.

Load & Scale:
This addon is designed to work with small to large sites and is currently being used by sites with more than 2 million posts. If you have questions about integrating with your big board please contact me.

Modification Installation:
This addon requires uploading multiple files, installing a vBulletin product and enabling the feature in any forums you wish. No template modifications are required. Please see the included install file for detailed instructions.

If you are not seeing the rating bar double check that you have enabled the feature in the forum you are in and insure the Manual Template override option is not enabled.

Rating Review & Deletion:
To identify and remove abuse a reporting system is included with this addon and can be found in your vBulletin ACP under the Helpful Answers tab. Through this panel you will be able to view a user's overall rating history and individual ratings and can remove either if necessary. Users can also be explicitly banned from the system.

Reputation System Integration:
Helpful Answers can be extended to directly tie into your reputation system giving users positive or negative points based on the ratings of their posts. There are numerous options on how to handle ratings that can be found in a separate Helpful Answers Reputation part of your vBulletin Settings page.

External Integration:
vB Plaza Modification - http://www.vbplaza.com/forum/showthread.php?p=6359
vB Experience - https://vborg.vbsupport.ru/showthread.php?t=199556

Anonymous Stats Tracking (optional):
vBulletin forums reach millions of consumers around the world yet little is known about their habits and opinions. This addon was released to the public out of requests but also to further the research of forum user's behaviors and actions through collecting the most basic data on thousands of sites.

By default this addon will pass basic rating data (positive or negative) to a 3rd party site for statistical purposes. Only the most basic data is captured (the vote and your site name) and no user information or specific forum details are logged, not even an IP address.

While you may disable this feature through the administrative options I ask that you consider leaving it in place to help this research effort and insure the continued support of the addon.

The tracking feature uses the php library cURL on a 5 second timeout. If cURL is not installed this option is automatically disabled.

Updates:
- 5/13/2011 - Release of 2.0.6 minor bug fix
- 08/31/2009 - Release of 2.0.0
- 08/07/2009 - Release of 1.9.5 stable

Other Versions:
This addon will work with 3.7 but to avoid issues with different code versions please see the 3.7 version thread here.

Before you download this modification please remember this is a free tool provided as a courtesy to you and support responses are subject to the availability of the author and other members. If you are looking for a professionally supported system this is not the solution for you.

Download Now

File Type: zip Helpful Answers 1.9.5.zip (36.5 KB, 398 views)
File Type: zip Helpful Answers 2.0.6.zip (39.4 KB, 617 views)

Screenshots

File Type: gif admin-stats1.gif (15.5 KB, 0 views)
File Type: gif admin-stats2.gif (11.3 KB, 0 views)
File Type: gif admin-stats3.gif (6.1 KB, 0 views)
File Type: gif topanswers.gif (19.6 KB, 0 views)
File Type: jpg settings.jpg (102.6 KB, 0 views)
File Type: gif rating-methods.gif (48.8 KB, 0 views)

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
5 благодарности(ей) от:
BGObsession, hsoen, JohorBahru, Simon Lloyd

Comments
  #12  
Old 02-03-2009, 11:29 PM
Ted S Ted S is offline
 
Join Date: Dec 2003
Location: SoCal
Posts: 3,954
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks WoodiE. I've really never dived deep into AJAX and I was pretty pleased to have it go so fast although for a mod like this it was a pretty simple change.

Also releasing 1.3.1 which moves the helpful_answers template to phrases for better translation support and easier editing.
Reply With Quote
  #13  
Old 02-04-2009, 12:51 AM
Ted S Ted S is offline
 
Join Date: Dec 2003
Location: SoCal
Posts: 3,954
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the private feedback; I've added a simple page showing the Most Helpful Answers. This can be disabled through the options and the number of results to show can also be configured.
Reply With Quote
  #14  
Old 02-04-2009, 02:00 AM
buileminh buileminh is offline
 
Join Date: Jan 2005
Posts: 111
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How does this impact to server load?
Reply With Quote
  #15  
Old 02-04-2009, 02:20 AM
Ted S Ted S is offline
 
Join Date: Dec 2003
Location: SoCal
Posts: 3,954
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by buileminh View Post
How does this impact to server load?
Fair question and as I'm sure it will be asked later, I'll break down the different areas of potential impact:

1. Viewing a thread

No new queries are made with this addon but there is a change that impacts the existing post query. Basically with this addon 3 additional fields are pulled from the select routine, 2 exist in the post table and one is from a join on the helpful answers table. Joins certainly add to the query length but as both keys are indexed it's minimal.

There are also a few template conditionals called; while conditionals don't do much to load on their own they do add up if you use enough.

While testing this script I used microstats to measure impact and did not identify any noticeable impact to the page rendering or CPU usage.

2. Rating a post

When a post is rated the script goes through a series of checks including 2 queries to read out data and two updates to insert the vote record and change the post table. This is fairly minimal and since it's a specific request option (rather than something passive that happens when viewing a page) it should be expected.

3. Viewing the most helpful answers page

When enabled this page will run one looping query with a single join. This is not a major process at all.

4. Admin functions

The admin functions are mostly simple querying one or two times per page. The exception to this is doing a bulk delete on a user with a lot of rating history; in this case there's two queries per rating which can be intensive. As such this function is marked as being intensive.

Summed up

It's easy to get worried about a function like this where data is read on every post but I have done my best to minimize any impact. For example, rather than querying tables to get vote totals for every post the totals are stored with the post record and calling them up adds minimal load. Other steps are also taken to prevent load like using an array with banned members and a forum option to check if the forum is allowed to use the addon rather than querying the database for a standalone piece of data.

To be crystal clear, this addon has been used for over a year on a decent traffic forum that runs, as most of the users would say, fast. While there are new functions with the public release this is not an untested app and if it was impacting performance on my sites I wouldn't be using it let alone releasing it.

I'm confident this addon will have minimal additional performance impact but like every addon it does introduce more queries on some pages, more joins, more conditionals and more code which does mean more load. For larger sites I always encourage basic load testing (even just watching load times with microstats is often enough).

Hope that answers your question.
Reply With Quote
  #16  
Old 02-04-2009, 02:35 AM
The3rdNipple The3rdNipple is offline
 
Join Date: Oct 2008
Posts: 76
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Code:
Database error in vBulletin 3.8.0:

Invalid SQL:

		SELECT
			post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
			user.*, userfield.*, usertextfield.*,
			icon.title as icontitle, icon.iconpath,
			avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight,
			spamlog.postid AS spamlog_postid,
			deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason,
			editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
			editlog.reason AS edit_reason, editlog.hashistory,
			postparsed.pagetext_html, postparsed.hasimages,
			sigparsed.signatureparsed, sigparsed.hasimages AS sighasimages,
			sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight,
			IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
			
			, IF(SUM(photoplog_fileuploads.moderate) > 0 AND 1 = 0,COUNT(photoplog_fileuploads.moderate) - SUM(photoplog_fileuploads.moderate),COUNT(photoplog_fileuploads.moderate)) AS photoplog_filecount,post.goodrank,post.totalrank,helpfulanswer.helpfulanswerid
		FROM post AS post
		LEFT JOIN user AS user ON(user.userid = post.userid)
		LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid)
		LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
		LEFT JOIN icon AS icon ON(icon.iconid = post.iconid)
		LEFT JOIN avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN customavatar AS customavatar ON(customavatar.userid = user.userid)
		LEFT JOIN spamlog AS spamlog ON(spamlog.postid = post.postid)
			LEFT JOIN deletionlog AS deletionlog ON(post.postid = deletionlog.primaryid AND deletionlog.type = 'post')
		LEFT JOIN editlog AS editlog ON(editlog.postid = post.postid)
		LEFT JOIN postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = 2 AND postparsed.languageid = 1)
		LEFT JOIN sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = 2 AND sigparsed.languageid = 1)
		LEFT JOIN sigpic AS sigpic ON(sigpic.userid = post.userid)
			LEFT JOIN photoplog_fileuploads AS photoplog_fileuploads ON(photoplog_fileuploads.userid = user.userid)LEFT JOIN helpfulanswer AS helpfulanswer ON(helpfulanswer.postid = post.postid and helpfulanswer.userid = 1)
		WHERE post.postid IN (0,50) GROUP BY post.postid
		ORDER BY post.dateline;

MySQL Error   : Table 'theguy1_AllBoutLife.helpfulanswer' doesn't exist

My error after visiting a thread
Reply With Quote
  #17  
Old 02-04-2009, 02:43 AM
Ted S Ted S is offline
 
Join Date: Dec 2003
Location: SoCal
Posts: 3,954
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The3rdNipple,

It looks like the table used to store records was not able to be created by the installer.

You will need to create this table manually by running the following query from phpMyAdmin or a similar database program.

Code:
CREATE TABLE `helpfulanswer` (
      `helpfulanswerid` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `postid` int(10) unsigned NOT NULL DEFAULT '0',
      `userid` int(10) unsigned NOT NULL DEFAULT '0',
      `yesno` int(10) unsigned NOT NULL DEFAULT '0',
      `dateline` INT UNSIGNED NOT NULL DEFAULT '0',
      KEY `helpfulanswerid` (`helpfulanswerid`),
      KEY `postid` (`postid`),
      KEY `userid` (`userid`)
);
I suggest you disable the addon until this is done, if you have not done so already.
Reply With Quote
  #18  
Old 02-04-2009, 02:56 AM
Quantnet Quantnet is offline
 
Join Date: Nov 2006
Location: NYC
Posts: 649
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Interesting mod. Watching this closely.
In the update history, the latest should be 1.3.2 instead of 1.3.3

How do you compare this one with Yahoo Answers. Yahoo makes it very easy to find the most useful answer in a long thread.
Reply With Quote
  #19  
Old 02-04-2009, 03:14 AM
Ted S Ted S is offline
 
Join Date: Dec 2003
Location: SoCal
Posts: 3,954
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Quantnet.org View Post
Interesting mod. Watching this closely.
In the update history, the latest should be 1.3.2 instead of 1.3.3

How do you compare this one with Yahoo Answers. Yahoo makes it very easy to find the most useful answer in a long thread.
Definitely happy to have your feedback whether you install or not.

This mod has a lot of similarities to the Yahoo Answers site in letting users rate responses which they also do. Future visitors can then identify the more popular/ trusted answers out of the overall batch.

The feature you're talking about where the topic starter picks an answer and has that answer moved to the top of the list is not something this mod tries to solve as that's not about group ratings but rather about an individual post selection. I've developed a feature like that for a few sites but have never made it move the post around. It's an interesting discussion as a forum is different than q&a website like Yahoo Answers and moving a post up in order to say the second spot has a lot of implications for discussion flow. That said, I imagine there are sites with areas that could use an easy selection process like that.
Reply With Quote
  #20  
Old 02-04-2009, 03:36 AM
Rene Kriest Rene Kriest is offline
 
Join Date: Jun 2008
Location: Germany ./. Reality
Posts: 157
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would like to see a in-post feature to rate preset phrases:
  • Color: [rate]
  • Speed: [rate]
  • Design [rate]
  • ...
Unlike the poll function can you put a voting system up.
Reply With Quote
  #21  
Old 02-04-2009, 03:39 AM
Quantnet Quantnet is offline
 
Join Date: Nov 2006
Location: NYC
Posts: 649
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm waiting for a feature where the most useful post in a thread is highlighted using some customizable color palette.
what is your solution when you have 2 equally ranked posts on the level of usefulness? Will they be marked most useful at the same time?

I can see this being very useful for my site and I look forward to installing soon.

P.S Can you post a screenshot of the post in the thread. I like to see how standout it looks currently
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:26 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06358 seconds
  • Memory Usage 2,361KB
  • Queries Executed 27 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (4)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (8)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete