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] vBShout v2 on your vBadvanced CMPS v2! Details »»
[AJAX] vBShout v2 on your vBadvanced CMPS v2!
Version: 1.1, by FleaBag FleaBag is offline
Developer Last Online: Jun 2020 Show Printable Version Email this Page

Version: 3.5.4 Rating:
Released: 10-03-2005 Last Update: Never Installs: 253
Uses Plugins Template Edits
 
No support by the author.

This is not essentially my hack, it's a group effort originating in the vBadvanced forums.

The following instructions will allow you to add vBShout v2.0 by Zero Tolerance as a fully collapsible module to your vBadvanced CMPS homepage v2.0.0, and remove it from your Forum Home [if you want]. Note, you must have both the vBShout product and CMPS installed with vBulletin 3.5.0 - it may work with Betas, but I really don't know.

This is a group effort from a few guys over at the vBadvanced forums, which includes Scotty2k and vbusers11 - I take no credit for this, I just spotted a problem with how the vBa forums was parsing postbits there. Plus the integration wasn't getting much attention over there and it would be a shame for users of vBShout and vBadvanced to miss out on this.

1) Create a new template based module called 'Shoutbox' in CMPS [ACP > vBa CMPS > Add Module > Template].

2) In 'Column', choose 'Center Column'.

3) Set 'Active' and 'Update All Pages' to Yes [assuming you want it to be active, and update all pages].

4 a) TO ADD AS A CENTRE MODULE - IF YOU DO THIS DO NOT FOLLOW STEPS B OR C!
In 'Template Content', paste the following code [this relies on you running your CMPS & vB in the same folder]. This will add a template to the selected Style called 'adv_portal_vbshout'.
Code:
<td class="alt1" align="left" width="100%">
	<form action="vbshout.php?{$session['sessionurl']}" method="post" name="vbshoutform" onsubmit="return postShout(this)">
		<input type='hidden' name='do' value='shout' />
		<input type='hidden' name='color' />
		<input type='hidden' name='fontFamily' />
		<input type='hidden' name='fontWeight' />
		<input type='hidden' name='textDecoration' />
		<input type='hidden' name='fontStyle' />

	<if condition="!$vboptions[shout_editor_position]">
		<if condition="$bbuserinfo[userid] > 0">
			<table width='100%' border='0' cellpadding='0' cellspacing='0'>
				<tr>
					<td width='100%'>
						<input type="text" name="shout" style="width: 90%" class="bginput" />
						</td>
						<td style='white-space:nowrap' width='1%'>
							<input type="submit" value="Shout" class="button" />
							<if condition="$vboptions[shout_extra_options]">
							<input type='button' class='button' value='Clear' onclick='sb_Clear()' />
							</if>
						</td>
					</tr>
					</table>
					<div style="height: 2px"></div>
					</if>
				</if>
					<div id="vbshout" style="overflow:auto;height:{$vboptions['shout_box_height']}px;width:100%;">
						Loading...
					</div>
				<if condition="$vboptions[shout_editor_position]">
					<if condition="$bbuserinfo[userid] > 0">
					<div style="height: 2px"></div>
					<table width='100%' border='0' cellpadding='0' cellspacing='0'>
					<tr>
						<td width='100%'>
							<input type="text" name="shout" style="width: 90%" class="bginput" />
						</td>
						<td style='white-space:nowrap' width='1%'>
							<input type="submit" value="Shout" class="button" />
							<if condition="$vboptions[shout_extra_options]">
							<input type='button' class='button' value='Clear' onclick='sb_Clear()' />													
							</if>
						</td>
					</tr>
					</table>
					</if>
				</if>
				</form>
				</td>

<script type='text/javascript'>
<!--

postingShout = false

function requestShouts()
{
	if (!postingShout)
	{
		ShoutRequest = new vB_AJAX_Handler(true)
		ShoutRequest.onreadystatechange(showShouts)
		ShoutRequest.send('vbshout.php', 'nocache=' + (5 * Math.random() * 1.33) )
	}
}

function showShouts()
{
	if (ShoutRequest)
	{
		if (ShoutRequest.handler.readyState == 4 && ShoutRequest.handler.status == 200 && ShoutRequest.handler.responseText)
		{
			Shouts           = fetch_object('vbshout')
			Shouts.innerHTML = '<table cellpadding="1" cellspacing="3" border="0" width="95%" align="left">' + ShoutRequest.handler.responseText + '</table>'
			setTimeout('requestShouts()', 10000)
			<if condition="$vboptions[shout_messages_order]">
			document.getElementById('vbshout').scrollTop = 99999;
			</if>
		}
	}
}

function sb_CollectHV(sbForm)
{
	rString = ''
	inputObjs = sbForm.getElementsByTagName('input')
	for (i = 0; i < inputObjs.length; i++)
	{
		if (inputObjs[i].type == 'hidden' && inputObjs[i].value != '')
		{
			rString += '&' + inputObjs[i].name + '=' + PHP.urlencode(inputObjs[i].value)
		}
	}

	return rString
}

function postShout(formObj)
{
	doShout = new vB_AJAX_Handler(true)
	doShout.onreadystatechange(postedShout)

	if (postingShout)
	{
		alert('Posting in progress..')
		return false
	}

	Shout = formObj.shout.value

	if (Shout.replace(/ /g, '') == '')
	{
		alert('You must enter a shout!')
		return false
	}

	doShout.send('vbshout.php', 'do=shout&shout=' + PHP.urlencode(Shout) + sb_CollectHV(document.forms['vbshoutform']))
	sb_Clear()
	postingShout = true

	return false
}

function postedShout()
{
	if (doShout.handler.readyState == 4 && doShout.handler.status == 200)
	{
		postingShout = false
		requestShouts()
	}
}

function sb_Input_SC(sProperty, setting)
{
	eval('document.forms["vbshoutform"].shout.style.' + sProperty + ' = "' + setting + '"')
	eval('document.forms["vbshoutform"].' + sProperty + '.value = "' + setting + '"')
}

function getSelectionValue(eSelector)
{
	return eSelector.options[eSelector.options.selectedIndex].value == 'Default' ? '' : eSelector.options[eSelector.options.selectedIndex].value
}

function sb_PropChange(eSelector, sProperty)
{
	sb_Input_SC(sProperty, getSelectionValue(eSelector))
}

function sb_PropChange_Button_Value(sProperty)
{
	trueValue = ''
	switch (sProperty)
	{
		case 'fontWeight':
		falseValue = 'bold'
		break;

		case 'textDecoration':
		falseValue = 'underline'
		break;

		case 'fontStyle':
		falseValue = 'italic'
		break;
	}

	return (eval('document.forms["vbshoutform"].' + sProperty + '.value'))? trueValue : falseValue
}

function sb_PropChange_Button(cButton, sProperty)
{
	if (cButton.value.match(/\*/))
	{
		cButton.value = cButton.value.replace(/\s+\*/, '')
	}
	else
	{
		cButton.value = cButton.value + ' *'
	}

	sb_Input_SC(sProperty, sb_PropChange_Button_Value(sProperty))
}

function sb_Smilie(code)
{
	document.forms["vbshoutform"].shout.value += ' ' + code
	return false
}

function sb_Clear()
{
	document.forms["vbshoutform"].shout.value = ''
	return true;
}

function sb_Smilies(cButton)
{
	if (cButton.value.match(/\*/))
	{
		cButton.value = cButton.value.replace(/\s+\*/, '')
	}
	else
	{
		cButton.value = cButton.value + ' *'
	}
	
	document.getElementById('shout_emo').style.display   = (document.getElementById('shout_emo').style.display == 'none')? '' : 'none'
}

requestShouts()

-->
</script>
4 b) TO ADD AS A SIDE MODULE - ONLY FOLLOW THIS STEP IF YOU DID NOT PERFORM STEP A.
In 'Template Content', paste the following code [this relies on you running your CMPS & vB in the same folder]. This will add a template to the selected Style called 'adv_portal_vbshout'.

Code:
<td class="alt1" align="left">
	<form action="vbshout.php?{$session['sessionurl']}" method="post" name="vbshoutform" onsubmit="return postShout(this)">
		<input type='hidden' name='do' value='shout' />
		<input type='hidden' name='color' />
		<input type='hidden' name='fontFamily' />
		<input type='hidden' name='fontWeight' />
		<input type='hidden' name='textDecoration' />
		<input type='hidden' name='fontStyle' />

	<if condition="!$vboptions[shout_editor_position]">
		<if condition="$bbuserinfo[userid] > 0">
			<table border='0' cellpadding='0' cellspacing='0'>
				<tr>
					<td>
						<input type="text" name="shout" style="width: 100%" class="bginput" />
						</td>
						<td style='white-space:nowrap' width='1%'>
							<input type="submit" value="Shout" class="button" />
							</td>
					</tr>
					</table>
					<div style="height: 2px"></div>
					</if>
				</if>
					<div id="vbshout">
						Loading...
					</div>
				<if condition="$vboptions[shout_editor_position]">
					<if condition="$bbuserinfo[userid] > 0">
					<div style="height: 2px"></div>
					<table border='0' cellpadding='0' cellspacing='0'>
					<tr>
						<td>
							<input type="text" name="shout" style="width: 90%" class="bginput" />
						</td>
						<td style='white-space:nowrap' width='1%'>
							<input type="submit" value="Shout" class="button" />
							<if condition="$vboptions[shout_extra_options]">
							<input type='button' class='button' value='Clear' onclick='sb_Clear()' />													
							</if>
						</td>
					</tr>
					</table>
					</if>
				</if>
				</form>
				</td>

<script type='text/javascript'>
<!--

postingShout = false

function requestShouts()
{
	if (!postingShout)
	{
		ShoutRequest = new vB_AJAX_Handler(true)
		ShoutRequest.onreadystatechange(showShouts)
		ShoutRequest.send('vbshout.php', 'nocache=' + (5 * Math.random() * 1.33) )
	}
}

function showShouts()
{
	if (ShoutRequest)
	{
		if (ShoutRequest.handler.readyState == 4 && ShoutRequest.handler.status == 200 && ShoutRequest.handler.responseText)
		{
			Shouts           = fetch_object('vbshout')
			Shouts.innerHTML = '<table cellpadding="1" cellspacing="3" border="0" width="95%" align="left">' + ShoutRequest.handler.responseText + '</table>'
			setTimeout('requestShouts()', 10000)
			<if condition="$vboptions[shout_messages_order]">
			document.getElementById('vbshout').scrollTop = 99999;
			</if>
		}
	}
}

function sb_CollectHV(sbForm)
{
	rString = ''
	inputObjs = sbForm.getElementsByTagName('input')
	for (i = 0; i < inputObjs.length; i++)
	{
		if (inputObjs[i].type == 'hidden' && inputObjs[i].value != '')
		{
			rString += '&' + inputObjs[i].name + '=' + PHP.urlencode(inputObjs[i].value)
		}
	}

	return rString
}

function postShout(formObj)
{
	doShout = new vB_AJAX_Handler(true)
	doShout.onreadystatechange(postedShout)

	if (postingShout)
	{
		alert('Posting in progress..')
		return false
	}

	Shout = formObj.shout.value

	if (Shout.replace(/ /g, '') == '')
	{
		alert('You must enter a shout!')
		return false
	}

	doShout.send('vbshout.php', 'do=shout&shout=' + PHP.urlencode(Shout) + sb_CollectHV(document.forms['vbshoutform']))
	sb_Clear()
	postingShout = true

	return false
}

function postedShout()
{
	if (doShout.handler.readyState == 4 && doShout.handler.status == 200)
	{
		postingShout = false
		requestShouts()
	}
}

function sb_Input_SC(sProperty, setting)
{
	eval('document.forms["vbshoutform"].shout.style.' + sProperty + ' = "' + setting + '"')
	eval('document.forms["vbshoutform"].' + sProperty + '.value = "' + setting + '"')
}

function getSelectionValue(eSelector)
{
	return eSelector.options[eSelector.options.selectedIndex].value == 'Default' ? '' : eSelector.options[eSelector.options.selectedIndex].value
}

function sb_PropChange(eSelector, sProperty)
{
	sb_Input_SC(sProperty, getSelectionValue(eSelector))
}

function sb_PropChange_Button_Value(sProperty)
{
	trueValue = ''
	switch (sProperty)
	{
		case 'fontWeight':
		falseValue = 'bold'
		break;

		case 'textDecoration':
		falseValue = 'underline'
		break;

		case 'fontStyle':
		falseValue = 'italic'
		break;
	}

	return (eval('document.forms["vbshoutform"].' + sProperty + '.value'))? trueValue : falseValue
}

function sb_PropChange_Button(cButton, sProperty)
{
	if (cButton.value.match(/\*/))
	{
		cButton.value = cButton.value.replace(/\s+\*/, '')
	}
	else
	{
		cButton.value = cButton.value + ' *'
	}

	sb_Input_SC(sProperty, sb_PropChange_Button_Value(sProperty))
}

function sb_Smilie(code)
{
	document.forms["vbshoutform"].shout.value += ' ' + code
	return false
}

function sb_Clear()
{
	document.forms["vbshoutform"].shout.value = ''
	return true;
}

function sb_Smilies(cButton)
{
	if (cButton.value.match(/\*/))
	{
		cButton.value = cButton.value.replace(/\s+\*/, '')
	}
	else
	{
		cButton.value = cButton.value + ' *'
	}
	
	document.getElementById('shout_emo').style.display   = (document.getElementById('shout_emo').style.display == 'none')? '' : 'none'
}

requestShouts()

-->
</script>
4 c) ONLY PERFORM THIS STEP IF YOU DID NOT PERFORM STEP A!
Edit your 'forumhome_vbshout_shout' template [ACP > Styles & Templates > Style Manager > YOUR DEFAULT STYLE > forumhome_vbshout_shout], and replace it's contents with the following.
Code:
<tr>
				<td align="left" valign="top">
<span class="smallfont">
<if condition="!$Shout[s_me]">
						<if condition="$Shout[s_by]">
							<a href='member.php?{$session['sessionurl_q']}u={$Shout['s_by']}'>
						</if>{$Shout['username']}<if condition="$Shout[s_by]"></a></if>:
					</if>
									<if condition="!$Shout[s_me]">
						{$Shout['s_shout']}
					<else />
						<span class='highlight'>
							*{$Shout['username']} {$Shout['s_shout']}*
						</span>
					</if>
</span>
				</td>
			</tr>
5) In the 'Module Shell Template Options' section when adding a template, add the following URL in 'Module Link'.

http://www.mysite.com/vbshout.php?do=archive

The above, again assumes you have CMPS & vBa running in the same folder. Replace www.mysite.com with the address of your website.

If your CMPS & vB are not installed in the same folder, you will need to replace all instances of 'vbshout.php' in the template and in 'Module Link' with the path to where you have vBShout installed in relation to your CMPS. For example if you have CMPS installed in the root folder, and vBshout within a folder called 'forum' you would need to replace all instances of 'vbshout.php' with '/forum/vbshout.php'.

Removing vBShout from your Forum Home - IF YOU FOLLOWED STEP 4 b) YOU HAVE TO DO STEP 5 - YOUR VBSHOUT WILL NOT RENDER CORRECTLY ON YOUR FORUM HOME! IF YOU HAVE YOUR SHOUTBOX AS A CENTRE MODULE ON THE CMPS, AND WANT TO ALSO HAVE IT RUNNING ON THE FORUM HOME, DO NOT PERFORM THIS STEP!

6) In your ACP go to [ACP > Plugin System > Plugin Manager] - find on that page 'vBShout [Template Alteration]' and uncheck the box which will deactivate it.

That's all there is to it folks, a very simple fix to the problem.

Supporters / CoAuthors

Show Your Support

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

Comments
  #62  
Old 10-16-2005, 10:12 PM
FleaBag's Avatar
FleaBag FleaBag is offline
 
Join Date: Dec 2001
Posts: 1,674
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK so I now have a very basic version of this hack working as a side module.

See the first post for details.
Reply With Quote
  #63  
Old 10-17-2005, 07:13 AM
Wordplay Wordplay is offline
 
Join Date: Nov 2001
Location: Dengoku
Posts: 864
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

can you make a mod for this that would display minature versions of user's avatars instead of their username in the shoutbox? i've been looking around for that ever since v3.5 rc1 came out, but nobody (not vbshout nor chatbox lite) is willing to work or create that.

alot of people asked for this on the chatbox lite thread, but with no luck.
Reply With Quote
  #64  
Old 10-17-2005, 07:19 AM
Neutral Singh's Avatar
Neutral Singh Neutral Singh is offline
 
Join Date: Sep 2004
Location: Sikh Philosophy Network
Posts: 545
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent!! Thanks

Can we define a certain size of the message window along with right scrollba, right now window goes on expanding infinitely.
Reply With Quote
  #65  
Old 10-17-2005, 08:31 AM
tqvn2004 tqvn2004 is offline
 
Join Date: Sep 2005
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Very useful hack!

BTW, when I choose the position of the vBShout editor to be "Below Messages" (in vBulletin options > vBShout options), the editor box disappear! I am using the shout box as a side module, and maybe the new template does not allow the change of editor's possition?
Reply With Quote
  #66  
Old 10-17-2005, 10:11 AM
aloha aloha is offline
 
Join Date: Jan 2004
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Shouts on my website currently appear like this

tr> ****: test
tr> ****: test
tr> ****: test

How do I take the tr> off?
Reply With Quote
  #67  
Old 10-17-2005, 10:14 AM
Wordplay Wordplay is offline
 
Join Date: Nov 2001
Location: Dengoku
Posts: 864
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

you must've messed up in the template, check the template edit again, and see whether there is an outstanding tr> which isn't supposed to be there.
Reply With Quote
  #68  
Old 10-19-2005, 04:29 PM
Prodimysterio Prodimysterio is offline
 
Join Date: Feb 2005
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi everyone,

Thanks for all of the updates thus far. I have the shoutbox set to the right column of my CMPS and it looks fantastic.



My last question about the shoutbox on the CMPS...Is there anyway to fix the following problem when I view "who's online?"


Quote:
Last Activity: 2 Minutes Ago 12:23 PM
Unknown Location /forums/vbshout.php - 2 Minutes Ago
Thanks for any help you can provide!
Reply With Quote
  #69  
Old 10-20-2005, 09:41 PM
FleaBag's Avatar
FleaBag FleaBag is offline
 
Join Date: Dec 2001
Posts: 1,674
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Wordplay
can you make a mod for this that would display minature versions of user's avatars instead of their username in the shoutbox? i've been looking around for that ever since v3.5 rc1 came out, but nobody (not vbshout nor chatbox lite) is willing to work or create that.

alot of people asked for this on the chatbox lite thread, but with no luck.
I'll certainly give it a go when I get a chance.
Reply With Quote
  #70  
Old 10-20-2005, 09:45 PM
FleaBag's Avatar
FleaBag FleaBag is offline
 
Join Date: Dec 2001
Posts: 1,674
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Wordplay
can you make a mod for this that would display minature versions of user's avatars instead of their username in the shoutbox? i've been looking around for that ever since v3.5 rc1 came out, but nobody (not vbshout nor chatbox lite) is willing to work or create that.

alot of people asked for this on the chatbox lite thread, but with no luck.
I'll certainly give it a go when I get a chance.

Quote:
Originally Posted by Neutral Singh
Excellent!! Thanks

Can we define a certain size of the message window along with right scrollba, right now window goes on expanding infinitely.
I'll explain how to when I update.

Quote:
Originally Posted by Prodimysterio
Hi everyone,

Thanks for all of the updates thus far. I have the shoutbox set to the right column of my CMPS and it looks fantastic.



My last question about the shoutbox on the CMPS...Is there anyway to fix the following problem when I view "who's online?"




Thanks for any help you can provide!
This is an issue with the hack itself, not the add-on. I have a workaround running on my site where users are showing as on the homepage when on the homepage, but the downside is when people view the shoutbox archive they are also shown to be on the homepage. If you want to know how to do this, say so, and I'll include it with the next update.
Reply With Quote
  #71  
Old 10-29-2005, 02:11 AM
divided_by_fear's Avatar
divided_by_fear divided_by_fear is offline
 
Join Date: Oct 2005
Posts: 451
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

is there anyway to make the smileys box appear again? but love the hack thanks
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:04 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.04962 seconds
  • Memory Usage 2,343KB
  • 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
  • (3)bbcode_code
  • (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
  • (1)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