Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles

Reply
 
Thread Tools
How to turn the "Post Thank You" hack into a "Likes" system similar to vBulletin.org
BirdOPrey5's Avatar
BirdOPrey5
Join Date: Jun 2008
Posts: 10,610

The details of my life are quite inconsequential.

New York
Show Printable Version Email this Page Subscription
BirdOPrey5 BirdOPrey5 is offline 07-05-2011, 10:00 PM

Note: These instructions are for VB 3.8. See post #35 by michal72 for a VB4 adaptation.

First off, the "Likes" system on vBulletin.org is custom and does not use any other hacks- however it is too custom to be released. Instead you can modify an existing mod to do mostly the same thing.

Several people have asked me for info on how to do this so I figured I'd write it up and post it here.

You can see what it looks like on my live forum: http://www.juot.net/forums/showthread.php?t=60059



You need the latest version Abe1's Post Thank You Hack (7.7): Here.

What you can see above was done with this mod plus some phrase changes and template edits, and an optional plugin edit.

So step 1 is make sure you have the ?Thank You? mod installed and working.

Step 2 is to change the following phrases. In Admin CP use Phrase Manager to "translate" these phrases from "Thank You" to "Like(s)":

You can of course use your own translations but this is what I used-

Phrase Name | Translation:
post_thanks_already | You have already liked this post!
post_thanks_remove_user | Remove Your Like
post_thanks_search | Find All Liked Posts
post_thanks_search_user | Find all liked posts by {1}
post_thanks_search_user_gave | Find all posts liked by {1}
post_thanks_thanked_post | Liked Post
post_thanks_thanks | Likes
post_thanks_time_post | Liked 1 Time in 1 Post
post_thanks_times_post | Liked {1} Times in 1 Post
post_thanks_times_posts | Liked {1} Times in {2} Posts
post_thanks_total_thanks | Total Likes
post_thanks_user_says | The Following User Likes This Post:
post_thanks_users_say | The Following {1} Users Like This Post:

Some of the above we won't actually use in my implementation but best to fix them all to be consistent.

Step 3:

At this point we need to have a "like.png" file in your images/buttons/ directory and the button directory for every custom style you have, if any. I will attach a couple of options but consider finding or making one unique to your forum.

Step 4:

Now we have to edit a couple of templates.

Edit the template: post_thanks_button

Replace it all with this:

Code:
<a href="post_thanks.php?$session[sessionurl]do=post_thanks_add&amp;p=$post[postid]&amp;securitytoken=$bbuserinfo[securitytoken]" id="post_thanks_button_$post[postid]"<if condition="$vboptions[disable_ajax] != 2"> onclick="return post_thanks_give($post[postid], <if condition="$vboptions[post_groan_integrate]">true<else />false</if>);"</if> <if condition="$display_thanks_image == 'none'">style="display:none"</if> rel="nofollow"><img src="$stylevar[imgdir_button]/like.png" alt="Like This Post" border="0" /></a>
Note: The above template will work correct if you use the "Post Groan Hack" which I also use. You can convert the "Post Groan Hack" into an "dis-like" system basiclly the same way we are changing "Thank You" to "Likes."


Edit the template: post_thanks_postbit_legacy OR post_thanks_postbit (whichever postbit you use)

Replace it all with this:

Code:
<div style="background-color: #CAEBDA; border: 2px ridge #7BBA99; border-width: 2px 2px 2px 2px; padding: 2px; width:99%; margin: 0px auto 0px auto; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; margin-top:auto; margin-bottom:0px;">

<table border="0" width="100%">
<tr>
<td width="100">
<strong>Likes: ($post[post_thanks_amount_formatted])</strong><br />
				
</td><td>
<div style="float:left;">$post[post_thanks_bit]</div> <div style="float:right;"><if condition="$bbuserinfo['usergroupid'] == 6"><a href="post_thanks.php?do=post_thanks_remove_all&amp;p=$post[postid]"<if condition="$vboptions[disable_ajax] != 2"> onclick="return post_thanks_remove_all($post[postid], <if condition="$vboptions['post_groan_integrate']">true<else />false</if>);"</if> rel="nofollow">Delete All</a></if><if condition="$bbuserinfo['usergroupid'] == 6 AND $post['show_thanks_remove_option']"> | </if><if condition="$post['show_thanks_remove_option']"><a href="post_thanks.php?do=post_thanks_remove_user&amp;p=$post[postid]"<if condition="$vboptions['disable_ajax'] != 2"> onclick="return post_thanks_remove_user($post[postid], <if condition="$vboptions['post_groan_integrate']">true<else />false</if>);"</if> rel="nofollow">Unlike</a></if></div>
</td></tr></table>
</div>

At this point you should have a nice light-green "Like" box appearing below each post someone "Likes." You might want to stop here.

The last steps are only if you want to integrate the Like box INTO the posts like on my forum.

If you do the next step is pretty easy-

In Admin CP -> Plugin Manager, edit the plugin: Post Thank You Hack on hook: postbit_display_start

Find the line:

Code:
eval('$template_hook[postbit_end] .= " ' . fetch_template('post_thanks_box') . '";');
and change it to:

Code:
eval('$template_hook[postbit_signature_end] .= " ' . fetch_template('post_thanks_box') . '";');
OK This will move the "Like" box into the actual post table instead of below it.

Again this is a good place to stop if you are happy.

However there is one more template edit I did to keep the Like Box inside the post but at the very bottom of it regardless how short the post might be. In this case we must edit the postbit_legacy template. (I don't use the regular postbit template so I don't have any further instructions for people who use regular postbit. The following is ONLY for postbit_legacy.)

IMPORTANT- Copy all of your postbit_legacy template to a text file and save it as a backup in case you make an error or the instructions don't work for you. You can also "Revert" the template but that will undo ALL customizations you may have made.

Find in postbit_legacy:

Code:
<td class="alt2" width="175" style="border: $stylevar[cellspacing]px solid $stylevar[tborder_bgcolor]; border-top: 0px; border-bottom: 0px">
Change it to:

Code:
<td class="alt2" rowspan="2" width="175" style="border: $stylevar[cellspacing]px solid $stylevar[tborder_bgcolor]; border-top: 0px; border-bottom: 0px">
Find:

Code:
$template_hook[postbit_signature_end]
And delete it.

Find:

Code:
		<!-- / edit note -->
		</if>

	</td>
</tr>

Add BELOW it:

Code:
<tr>
<td class="alt1" valign="bottom">
$template_hook[postbit_signature_end]
</td>
</tr>
----

And that should do it.

Of course you are encouraged to make some customizations... Most of what you'll want to change is in the top part of the post_thanks_postbit_legacy template. The background color, border style, and the like are all controlled by this code:

Code:
<div style="background-color: #CAEBDA; border: 2px ridge #7BBA99; border-width: 2px 2px 2px 2px; padding: 2px; width:99%; margin: 0px auto 0px auto; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; margin-top:auto; margin-bottom:0px;">
On my forum I actually use a background image texture but did not include it here as it is an unnecessary complication.

Feel free to play around and tweak the box to your liking. :up:
Attached Images
File Type: jpg Likes_ss.jpg (313.7 KB, 0 views)
Attached Files
File Type: txt Like System Converion by BOP5.txt (6.1 KB, 138 views)
Reply With Quote
  #122  
Old 02-03-2013, 08:52 AM
Glynn58 Glynn58 is offline
 
Join Date: Jul 2006
Location: Barnsley UK
Posts: 97
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you really chuffed with this.....
Reply With Quote
  #123  
Old 02-23-2013, 01:44 AM
Raptor Raptor is offline
 
Join Date: Nov 2001
Posts: 499
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by viper357 View Post
Hi Joe, small problem, everything works 100% but as soon as I do the above edit, I get a blank page on any link except for my vbadvanced home page. If I undo the edit it makes no difference until I re-upload the xml file (which I assume then replaces the small plugin), then the forum works again. Any idea's? I'm desperate to have this display within the posts.
any clues how to get this template edit working with vb 4.2 ?

https://vborg.vbsupport.ru/showpost....postcount=1948
Reply With Quote
  #124  
Old 03-04-2013, 02:43 AM
smirkley smirkley is offline
 
Join Date: Apr 2008
Posts: 627
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Foxtrotelite View Post
How can I move the like box into the post for 4.2? I have tried a couple code edits, but can't get it to work. I'm not sure if I'm just missing something simple or what.
Seconded !!


Nevermind,... FOUND IT !!
https://vborg.vbsupport.ru/showpost....postcount=1948

--------------- Added [DATE]1362454549[/DATE] at [TIME]1362454549[/TIME] ---------------

OK, have this looking great now inside my post box above the signature area.

Does anybody know of how I can force it down to the bottom to reside just above my siggy area? Just doesnt look right located all the way up under the post text, with a big space below between the siggy.
Reply With Quote
  #125  
Old 03-05-2013, 03:16 AM
smirkley smirkley is offline
 
Join Date: Apr 2008
Posts: 627
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK,..figured out how to force to bottom of post box right above siggy,.. in postbit legacy template

find
Code:
<vb:if condition="$show['postedited'] || $post['signature']">
add above
Code:
<div class="after_content">{vb:raw template_hook.postbit_messagearea_end}</div>
Of course it still shows up just above edit statement if applicable, but I rather have the box on the bottom but above siggy area. This was the easiest way for me.

--------------- Added [DATE]1362527876[/DATE] at [TIME]1362527876[/TIME] ---------------

Quote:
Originally Posted by MrSeth View Post
Install went great thanks for everyone's input.

I would like to ask for some help on these two things..

1. removing the white space in the like box.



Me too. I have dug n dug and cant resolve this white space issue either.
Reply With Quote
  #126  
Old 03-06-2013, 05:07 PM
Armee25 Armee25 is offline
 
Join Date: Mar 2008
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'd like to get an answer to the white space issue mentioned above please
Reply With Quote
  #127  
Old 03-09-2013, 12:50 AM
Armee25 Armee25 is offline
 
Join Date: Mar 2008
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Please? anyone?
Reply With Quote
  #128  
Old 03-10-2013, 12:43 PM
Simon Lloyd's Avatar
Simon Lloyd Simon Lloyd is offline
 
Join Date: Aug 2008
Location: Manchester
Posts: 3,481
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Have you turned on the template naming in general options in admincp and then looked at the sorce code to see what is being used there?, it could be a <br /> tag or padding...etc in css.
Reply With Quote
  #129  
Old 03-12-2013, 08:16 PM
edgeless edgeless is offline
 
Join Date: Mar 2013
Posts: 115
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My version is 4.2.0. The Post Thank You Hack version is 7.8.4. I have not changed "Thanks" to "Like", but I've been trying to get the Thanks box to appear inside of the post bodies. I've however only succeeded in getting it to disappear completely. When I reverse my code changes the box reappears but it's of course not within the post bodies. It's back between the posts, since everything has been reverted.

I'd very much appreciate it if someone could tell me where I'm going wrong. Below are the changes I've been making, after which the box just goes away.

I change the contents of post_thanks_box to:

Code:
<div <vb:if condition="!$post_thanks_box == 1"> style="background-color: #f2f6f8; border: 1px ridge #417394; border-width: 1px 1px 1px 1px; padding: 2px; width:92%; margin: 

0px auto 0px auto; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; margin-top:10px; margin-bottom:0px;display:none" <vb:else /> 
style="background-color: #f2f6f8; border: 1px ridge #417394; border-width: 1px 1px 1px 1px; padding: 2px; width:92%; margin: 0px auto 0px auto; -webkit-border-radius: 5px; -

moz-border-radius: 5px; border-radius: 5px; margin-top:10px; margin-bottom:0px;"
</vb:if> id="post_thanks_box_{vb:raw post.postid}">
{vb:raw post_thanks_box}
</div>

In postbit_display_complete I change this:

Code:
$template_hook['postbit_end'] .= $templater->render();

to this:

Code:
$template_hook['postbit_messagearea_end'] .= $templater->render();

and in postpit_legacy I change this:

Code:
		<div class="postbody">
			<div class="postrow<vb:if condition="$show['postedited'] || $post['signature']"> has_after_content</vb:if>">
				{vb:raw template_hook.postbit_messagearea_start}
				<vb:if condition="$post['title'] OR $show['messageicon']">
				<h2 class="title icon">
					<vb:if condition="$show['messageicon']"><img src="{vb:raw post.iconpath}" alt="{vb:raw post.icontitle}" /> </vb:if>{vb:raw post.title}
				</h2>
				</vb:if>

to this:

Code:
		<div class="postbody">
			{vb:raw template_hook.postbit_messagearea_start}
			<div class="postrow<vb:if condition="$show['postedited'] || $post['signature']"> has_after_content</vb:if>">
				<vb:if condition="$post['title'] OR $show['messageicon']">
				<h2 class="title icon">
					<vb:if condition="$show['messageicon']"><img src="{vb:raw post.iconpath}" alt="{vb:raw post.icontitle}" /> </vb:if>{vb:raw post.title}
				</h2>
				</vb:if>

And there's apparently no postbit_display_start in this version so I can't modify that.

But why am I not able to move the box into the post body? What am I missing?

Thanks in advance.
Reply With Quote
  #130  
Old 03-15-2013, 06:42 PM
edgeless edgeless is offline
 
Join Date: Mar 2013
Posts: 115
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It would be very nice if someone could provide an adaptation of the modifications herein to function on version 4.2.0, both for the 'thanks' to 'likes' part and for the migration of the thanks/likes box into the message body part. The code within some of the 4.2.0 templates is apparently different from that in previous releases of version 4.

Edit: As far as changing 'Thanks' to 'Likes', it seems that simply doing the phrase search and replace for each of the named phrases in post #1, in addition to changing post_thanks_thanks from 'Thanks' to 'Like' (for the button label), did the trick for me. I only hope I'm not going to experience any complications without having done anything else. One problem I've already noticed is that the 'Thanks' stats field is now labeled 'Like' as opposed to 'Likes'. But if I change the text in the post_thanks_thanks phrase to 'Likes', then the button label also changes to 'Likes' when it should be 'Like'.

Addendum: I've fixed it. I just created a post_thanks_like phrase containing the text 'Like' and then changed the post_thanks_thanks reference (in the post_thanks_button template) to post_thanks_like. Next, I changed the text in post_thanks_thanks back to 'Likes' and everything now displays correctly.
Reply With Quote
  #131  
Old 04-05-2013, 09:10 AM
uninvited13th uninvited13th is offline
 
Join Date: Aug 2009
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Possible??

Quote:
The following members like this post: member1, member2, member3, member4, member5 and 36 others.
and when the "36 others" is clicked, it will expand with ajax..
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 12:57 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.08157 seconds
  • Memory Usage 2,385KB
  • Queries Executed 26 (?)
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
  • (17)bbcode_code
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (46)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
  • (2)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