Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 03-19-2012, 10:51 PM
ctcdesign ctcdesign is offline
 
Join Date: Jan 2012
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help with setting variables

We just switched our forum over to vbulletin and love it but I'm having trouble understanding the way mods are put together. I'm not finding much for documentation on the new variable system in vb4 (We have suite)

I'm trying to update a very simple mod that was available for 3.6 that isn't available for 4 and I'm not getting the variables for some reason. When I install this (updated by me):

HTML Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="posts_in_last_x_hours" active="1">
	<title>Posts In Last X Hours</title>
	<description>Show the number of posts created in the last X hours.</description>
	<version>1.0</version>
	<url></url>
	<versioncheckurl></versioncheckurl>
	<dependencies></dependencies>
	<codes></codes>
	<templates></templates>
	<plugins>
		<plugin active="1" executionorder="5">
			<title>Get 24 hours post info</title>
			<hookname>forumhome_complete</hookname>
			<phpcode><![CDATA[if ($vbulletin->options['posts_last_x_hours_enabled'] == 1)
{
	$timeframe = $vbulletin->options['posts_last_x_hours_numhours'];

	$posts_last_x_hours = $db->query_read("SELECT COUNT(postid) from " . TABLE_PREFIX . "post WHERE  " . TABLE_PREFIX . "post.dateline >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL " . $timeframe . " HOUR));");
	$posts_last_x_hours = construct_phrase($vbphrase['posts_in_last_x_hours'], $posts_last_x_hours, $timeframe);

	$templater->register('posts_last_x_hours', $posts_last_x_hours);

	}]]></phpcode>
		</plugin>
	</plugins>
	<phrases>
		<phrasetype name="GLOBAL" fieldname="global">
			<phrase name="posts_in_last_x_hours" date="0" username="" version=""><![CDATA[There have been {1} post in the last {2} hours.]]></phrase>
		</phrasetype>
		<phrasetype name="vBulletin Settings" fieldname="vbsettings">
			<phrase name="setting_posts_last_x_hours_numhours_desc" date="0" username="" version=""><![CDATA[Specify the amount of time in hours you want to count posts.]]></phrase>
			<phrase name="setting_posts_last_x_hours_numhours_title" date="0" username="" version=""><![CDATA[Number of Hours]]></phrase>
			<phrase name="setting_posts_last_x_hours_enabled_desc" date="0" username="" version=""><![CDATA[Allows you to enable/disable the hack.]]></phrase>
			<phrase name="setting_posts_last_x_hours_enabled_title" date="0" username="" version=""><![CDATA[Enabled?]]></phrase>
			<phrase name="settinggroup_posts_last_x_hours" date="0" username="" version=""><![CDATA[Posts Last X Hours]]></phrase>
		</phrasetype>
	</phrases>
	<options>
		<settinggroup name="posts_last_x_hours" displayorder="1000">
			<setting varname="posts_last_x_hours_enabled" displayorder="10">
				<datatype>boolean</datatype>
				<optioncode>yesno</optioncode>
				<defaultvalue>1</defaultvalue>
			</setting>
			<setting varname="posts_last_x_hours_numhours" displayorder="20">
				<datatype>number</datatype>
				<defaultvalue>24</defaultvalue>
			</setting>
		</settinggroup>
	</options>
	<helptopics></helptopics>
	<cronentries></cronentries>
	<faqentries></faqentries>
</product>

And place this in my forumhome template:

PHP Code:
<vb:if condition="$vboptions['posts_last_x_hours_enabled'] == 1">
{
vb:rawphrase posts_in_last_x_hours}
</
vb:if> 

I get this:

Code:
There have been %1$s post in the last %2$s hours

If I use vb:raw rather than vb:rawphrase the line is not inserted at all...I also checked my php logs and there are no errors.

Sorry if it's obvious but I'm a noob at vbulletin :-) Any help would be appreciated, even a nudge towards some documentation I missed.

Charles
Reply With Quote
  #2  
Old 03-19-2012, 11:20 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I think you need to add this line (before or after the other register() call):

Code:
$templater->register('timeframe', $timeframe);

and then in the template:

Code:
<vb:if condition="$vboptions['posts_last_x_hours_enabled'] == 1">
{vb:rawphrase posts_in_last_x_hours, {vb:raw posts_last_x_hours}, {vb:raw timeframe} }
</vb:if>

BTW, there's some info in the manual that might be helpful: https://www.vbulletin.com/docs/html/ (search for "template syntax")
Reply With Quote
  #3  
Old 03-20-2012, 04:22 PM
ctcdesign ctcdesign is offline
 
Join Date: Jan 2012
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the help kh99, now I understand how to call the phrase with variables.

I have bigger problems though. For some reason it doesn't seem to be cycling through the code at all so I'll have to play with it more. I changed the php cdata to this:

Code:
if ($vbulletin->options['posts_last_x_hours_enabled'])
{
	$timeframe = '*';
	$posts_last_x_hours = '*';

	$posts_last_x_hours = construct_phrase($vbphrase['posts_in_last_x_hours'], $posts_last_x_hours, $timeframe);

	$templater->register('posts_last_x_hours', $posts_last_x_hours);
    $templater->register('timeframe', $timeframe);
}
and the output is:

Code:
There have been post(s) in the last hours.

the "*" doesn't show up in my phrase for {1} or {2}, they come up blank within the phrase.

I'll have to keep playing with it.
Reply With Quote
  #4  
Old 03-20-2012, 04:38 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Oh...I didn't notice that $templater isn't defined. You need to use preRegister instead, like this:


Code:
vB_Template::preRegister('FORUMHOME', array('posts_last_x_hours' => $posts_last_x_hours,
					'timeframe' => $timeframe));
Reply With Quote
  #5  
Old 03-20-2012, 07:03 PM
ctcdesign ctcdesign is offline
 
Join Date: Jan 2012
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That worked great Thank you so much!
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 10:16 PM.


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.04340 seconds
  • Memory Usage 2,216KB
  • Queries Executed 11 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (6)bbcode_code
  • (1)bbcode_html
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete