Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
[AJAX] Post Thank You Hack Details »»
[AJAX] Post Thank You Hack
Version: 4.5, by Abe1 Abe1 is offline
Developer Last Online: Jun 2010 Show Printable Version Email this Page

Version: 3.5.4 Rating:
Released: 07-17-2005 Last Update: 06-18-2006 Installs: 630
DB Changes Uses Plugins Template Edits
Additional Files  
No support by the author.

Post Thank You Hack 4.5




About this hack:
One of the biggest problems on forums as you may know is 'posts boosting'. There are users who LOVE to say 'thanks' when ever they can. How can it hurt? Their post count goes up, they have nothing to loose.

There are also users who really like to express their thanks to post but don't like posting a post that looks like they're post boosting.

Then comes the moderators who have to delete people's thanks yous so a thread can look readable with out the thanks yous thrown around.

Finally comes the posters of these useful posts. They have no idea how many people really likes their posts if only some people say 'thanks'.

What this hack does is fix ALL these problems - except those users who like post boosting. This places a button called 'thanks.' When a user clicks on it, it places his username in a box right under the post saying that so-and-so says 'thanks' for the post. Every-one who clicks is placed in one box.

By giving your users the extra feature, you forum will look allot nice and organized. It is a granted liking by ALL the members of your forum.

Features:
  • Uses vBulletin easy Product installer/updater/uninstaller
  • Uses AJAX technology so your users don't have to refresh when they thank.
  • Places an easy to use button next to the edit button
  • Separate looks for postbit and postbit_legacy
  • Places all Thanks into one small box
  • Uses only ONE query every time you view a showthread page!
  • Users can't thank twice
  • Option to not allow users to thank their own post
  • Guests don't see 'thanks' button
  • Counts how many thanks a user gives
  • Counts how many thanks a post gets
  • Shows how many thanks a user gave in every post of his
  • Shows how many thanks a user gave in profile
  • Shows how many thanks a user got
  • Shows how many posts or a user are thanked
  • Shows info in profile
  • Search for a users thanked posts
  • Search for all thanked posts
  • Administrator can remove all Thanks from a single post
  • Users can remove their own Thanks
  • Turn on and off hack totally
  • Turn on and off hack for only some forums
  • Option to turn off hack for all but the first post of a thread
  • Option to turn off hack for all but the first post of a thread in specific forums
  • Option to turn off hack view of date for specific or all forums
  • Option to add to post count when someone clicks 'thanks'.
  • Option to give a user who receives thanks reputation points.
  • Ban Usergroups
  • Ban Users
  • Uses Phrases
  • Cache Templates
  • Guaranteed to be liked by ALL users on your forum!
Installation information on hack:
  • Files edited: 0
  • Templates edited: 4
  • Files to upload: 1
  • Time to install: 5 minutes max
Updates:

Version 2.0 GOLD (10/02/05):
  • GOLD Release of this hack for vBulletin version 3.5
Version 2.1 (10/23/05):
  • [BUG FIX] When merging/splitting threads
  • [BUG FIX] When a user deletes his thanks (now removes post/rep count if option(s) on)
  • [ADD PHRASE] post_thanks_user_says
  • [ADD PHRASE] post_thanks_time_post
  • [ADD PHRASE] post_thanks_times_post
  • [ADD PHRASE] post_thanks_times_posts
  • [DELETED PHRASE] post_thanks_thanks_amount
Version 2.2 (10/23/05):
  • [ADDED] Re-counters. Found under Maintenance->Update Counters in your ACP.
Version 2.3 (11/05/05):
  • [ADDED] Cache Templates
Version 2.4 (11/07/05):
  • [ADDED] Setting to disallow users from deleting their own thanks.
Version 2.5 (11/09/05):
  • [FIXED] All number outputs run through your vb setting of number format. (e.g. 1234 will now show as 1,234)
Version 2.6 (12/04/05):
  • [FIXED] Number outputs for numbers between 1,000 and 1,999
  • [FIXED] Showing of the thanks button on deleted threads pages.

Version 2.7 (12/18/05):
  • [ADDED] Made the Thanks button a template
  • [ADDED] Made a template group for this hacks templates
  • [FIXED] One template edit. Find correction in zip file.
  • [CHANGED] Made a pop-up now when you click Thanks instead of refreshing the page.
  • [FIXED] Made the line when you give reputation points for thanks, a phrase.
  • [ADDED] Paypal link so you can make a donation for this hack.

Version 2.8 (2/5/06):
  • [FIXED] Removed one query thanks to AnhTuanCool (Abe clicks 'thanks')
  • [ADDED] Option to allow users to thank their own post
  • [ADDED] Option to allow a pop=up or refresh after a user clicks thanks

Version 2.9 (2/8/06):
  • [FIXED] Fixed allot of things in regard to deleting thanks using the "remove all thanks" and "Remove your thanks".

Version 3.0 (2/10/06):
  • [FIXED] Fixed one more thing in regard to "remove all thanks".
  • [FIXED] Re-wrote the thanks actions so it they useless queried when you give or remove thanks.

Version 3.1 (2/11/06):
  • [FIXED] Fixed bug with reputation.

Version 3.2 (2/13/06):
  • [FIXED] Fixed another bug with reputation.
  • [FIXED] Sped up the one query used to retrieve the thanks.

Version 3.3 (2/14/06):
  • [FIXED] Fixed bug with removing own thanks.

Version 3.4 (3/17/06):
  • [FIXED] Fixed a few bugs.

Version 4.0 (4/17/06):
  • [ADDED] AJAX technology so your users don't have to refresh the page they are viewing!

Version 4.1 (4/18/06):
  • [FIXED] Crashing of 'quick reply' when using Firefox.

Version 4.2 (4/23/06):
  • [FIXED] If you have vboption 'Add Template Name in HTML Comments' set to 'Yes', button was not showing.
  • [FIXED] Uncached template when viewing a PM
  • [FIXED] Getting sent to index page when clicking thanks on some forums.
  • [FIXED] Link to member's profile from the thank box.
  • [FIXED] The post thank count not updating. (Recommend you recount thanks. (ACP->Maintenance->Update Counters)

Version 4.3 (5/4/06):
  • [FIXED] Optimized a lot of the templates.
  • [ADDED] Easy integration with my Post Groan Hack.

Version 4.4 (5/7/06):
  • [FIXED] Bug with AJAX if you had the date showing.

Version 4.5 (6/19/06):
  • [FIXED] Bug with AJAX if you had hacks that added things to your output.

Please post your comments or suggestions for this hack. I read ALL posts.

MAKE SURE YOU CLICK INSTALL!
You will get an email when a new version is released.

Pictures:
  1. Showing the 'thanks' button and stats in Postbit
  2. Showing post after 'thanks' (user view)
  3. Showing post after 'thanks' (admin view)
  4. Showing post after 'thanks' with legacy posts (admin view)
  5. Stats in members profile and link
  6. Link in Search drop down menu
  7. Hacks settings

This hack is created for your use free of charge. No payment is requested. However, if you would like to donate money for the work I put in to this hack, a donation would show your appreciation.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #482  
Old 02-11-2006, 03:16 PM
D.Ilyin D.Ilyin is offline
 
Join Date: Oct 2005
Posts: 193
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

and i have the same error when click THANKS:
Quote:
Database error in vBulletin 3.5.3:

Invalid SQL:

UPDATE user
SET post_thanks_thanked_times = 1 + post_thanks_thanked_times, post_thanks_thanked_posts = 1 + post_thanks_thanked_posts, reputation = $vboptions[post_thanks_reputation] + reputation
WHERE userid = 38210;

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[post_thanks_reputation] + reputation
WHERE userid = 38210' at line 2
Reply With Quote
  #483  
Old 02-11-2006, 10:06 PM
Abe1's Avatar
Abe1 Abe1 is offline
 
Join Date: Feb 2004
Location: I LOVE New York!
Posts: 2,886
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Version 3.1 (2/11/06):
  • [FIXED] Fixed bug with reputation.
Reply With Quote
  #484  
Old 02-12-2006, 02:16 AM
AnhTuanCool's Avatar
AnhTuanCool AnhTuanCool is offline
 
Join Date: Jul 2004
Location: Albuquerque
Posts: 263
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey Abe1,

Although the showthread page uses only ONE query, the load seems yet to loose.

I've attached the query exp of one normal thread on my forum. One post got thanked 13 times and it took almost 10 sec to query!
Reply With Quote
  #485  
Old 02-12-2006, 02:30 AM
Abe1's Avatar
Abe1 Abe1 is offline
 
Join Date: Feb 2004
Location: I LOVE New York!
Posts: 2,886
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by AnhTuanCool
Hey Abe1,

Although the showthread page uses only ONE query, the load seems yet to loose.

I've attached the query exp of one normal thread on my forum. One post got thanked 13 times and it took almost 10 sec to query!
This is what I got on my forum:

Time Before: 0.13631 seconds
Time After: 0.13647 seconds
Time Taken: 0.00016 seconds
Reply With Quote
  #486  
Old 02-12-2006, 02:53 AM
AnhTuanCool's Avatar
AnhTuanCool AnhTuanCool is offline
 
Join Date: Jul 2004
Location: Albuquerque
Posts: 263
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ahhhhh, I think I've made a terrible mistake here.

I figured out what the problem is that the mixing query I suggested awhile ago actually makes the hack's query time worse. When using multiple WHERE's in query, it queries ALL the entries out of the table and the filter it through the second WHERE. If there are a lot of thanks entries like mine, it tremendously stresses the server. Look at the image I attached above, at column Row and you'll understand why.

So I strongly recommend switch back to the old time query.
Code:
$post_thanks_querys = $db->query("SELECT postid FROM ". TABLE_PREFIX ."post WHERE threadid = '$post[threadid]'");
    $post_thanks_postids = 0;
    
    while ($post_thanks_query = $db->fetch_array($post_thanks_querys))
    {
      $post_thanks_postids .= ",$post_thanks_query[postid]";
    }

    $post_thanks_cashe = $db->query("SELECT * FROM " .TABLE_PREFIX. "post_thanks WHERE postid IN ($post_thanks_postids) ORDER BY username ASC");
Lastly, I terribly sorry for suggesting such a flawful mod...
Reply With Quote
  #487  
Old 02-12-2006, 06:06 AM
dai-kun dai-kun is offline
 
Join Date: Jul 2005
Posts: 238
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

For some reason, as soon as I enable this product, my server load spike up to 10-20... why is that?
I have a lot of members online (around 200 at the same time) and a lot of thanked posts.
I'm using the latest version.

As soon as I disable this, server load goes back to normal (1-3).
Reply With Quote
  #488  
Old 02-12-2006, 12:43 PM
NeutralizeR NeutralizeR is offline
 
Join Date: Aug 2005
Posts: 355
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can't remove thanks.

Quote:
Database error in vBulletin 3.5.3:

Invalid SQL:
DELETE FROM msx_reputation WHERE postid = 62668 AND AND whoadded = 1 reason = 'Teşekk?r Mesajı';

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND whoadded = 1 reason = 'Teşekk?r Mesajı'' at line 1
Error Number : 1064
Quote:
Database error in vBulletin 3.5.3:

Invalid SQL:

UPDATE msx_user
SET post_thanks_user_amount = post_thanks_user_amount - 1
WHERE userid IN ();

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3 Error Number : 1064
Reply With Quote
  #489  
Old 02-12-2006, 04:59 PM
dai-kun dai-kun is offline
 
Join Date: Jul 2005
Posts: 238
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by AnhTuanCool
Ahhhhh, I think I've made a terrible mistake here.

I figured out what the problem is that the mixing query I suggested awhile ago actually makes the hack's query time worse. When using multiple WHERE's in query, it queries ALL the entries out of the table and the filter it through the second WHERE. If there are a lot of thanks entries like mine, it tremendously stresses the server. Look at the image I attached above, at column Row and you'll understand why.

So I strongly recommend switch back to the old time query.
Code:
$post_thanks_querys = $db->query("SELECT postid FROM ". TABLE_PREFIX ."post WHERE threadid = '$post[threadid]'");
    $post_thanks_postids = 0;
    
    while ($post_thanks_query = $db->fetch_array($post_thanks_querys))
    {
      $post_thanks_postids .= ",$post_thanks_query[postid]";
    }

    $post_thanks_cashe = $db->query("SELECT * FROM " .TABLE_PREFIX. "post_thanks WHERE postid IN ($post_thanks_postids) ORDER BY username ASC");
Lastly, I terribly sorry for suggesting such a flawful mod...

Thanks, I've revert it back toversion 2.5 and the server load seems to be less than 3-4 now
Before it was 20-30

edit:

nvm.. it's fluctuating now.. going around 6-15
Reply With Quote
  #490  
Old 02-12-2006, 07:14 PM
AnhTuanCool's Avatar
AnhTuanCool AnhTuanCool is offline
 
Join Date: Jul 2004
Location: Albuquerque
Posts: 263
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

@dai-kun - Did you delete this line in the hook?
Code:
    $post_thanks_cashe = $db->query("SELECT " . TABLE_PREFIX . "post_thanks.* FROM " . TABLE_PREFIX . "post_thanks, " . TABLE_PREFIX . "post WHERE " . TABLE_PREFIX . "post.postid = " . TABLE_PREFIX . "post_thanks.postid AND " . TABLE_PREFIX . "post.threadid = '$post[threadid]' ORDER BY " . TABLE_PREFIX . "post_thanks.username ASC");
If you didn't, please do so. It's the main problem source.
Reply With Quote
  #491  
Old 02-12-2006, 11:54 PM
dai-kun dai-kun is offline
 
Join Date: Jul 2005
Posts: 238
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok so how would I do this? Do I edit out that code in the 3.0 version? I tried that and it giving me errors.

Cam on.

PHP Code:
global $post_thanks_cash$post_thanks_done$db;

if (empty(
$post_thanks_done))
{

    
$act 1;

    while (
$thanks $db->fetch_array($post_thanks_cashe))
    {
        
$post_thanks_cash[$act][userid] = "$thanks[userid]";
        
$post_thanks_cash[$act][username] = "$thanks[username]";
        
$post_thanks_cash[$act][date] = "$thanks[date]";
        
$post_thanks_cash[$act][postid] = "$thanks[postid]";
        
$act ++;
    } 
Reply With Quote
Reply


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 04:47 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06489 seconds
  • Memory Usage 2,347KB
  • Queries Executed 25 (?)
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
  • (3)bbcode_code
  • (1)bbcode_php
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (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
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete