PDA

View Full Version : custom template in an existing template


markuswarren
01-12-2013, 04:16 PM
Hello all.
I'm fairly new to vb4. I have updated one of my own mods following guides on here, but I've got a couple of other changes I want to make and I am a little stumped, so some help would be appreciated.

Here goes:

In vb3 I added a new template named custom_postbit_badges which contained this code:

<br>

<if condition="$post['field8'] == 'Yes'"><img src="images/mataharibadges/administrator.png" alt="$post[username] is an Administrator"></if>

<if condition="$post['field12'] == 'Yes'"><img src="images/mataharibadges/regulator.png" alt="$post[username] is a Regulator"></if>

<if condition="$post['field9'] == 'Yes'"><img src="images/mataharibadges/foundingfather.png" alt="$post[username] is a Founding Father"></if>


<if condition="$post['field11'] == 'Yes'"><img src="images/mataharibadges/prodetailer.png" alt="$post[username] is a Pro Detailer"></if>

<if condition="$post['field26'] == 'Yes'"><img src="images/mataharibadges/trainer.png" alt="$post[username] is a Trainer"></if>

<if condition="$post['field24'] !=''"><img src="images/mataharibadges/$post[field24].png" alt="$post[username] is an Approved Supplier"></if>

<if condition="$post['field13'] == 'Yes'"><img src="images/mataharibadges/sponsor.png" alt="$post[username] is a Sponsor"></if>

<if condition="is_member_of($post, 12)"><img src="images/mataharibadges/donator.png" alt="$post[username] has donated to Detailing Paradise"></if>

<if condition="is_member_of($post, 13)"><img src="images/mataharibadges/first48hours.png" alt="$post[username] is a member of the first 48 hour club"></if>

<if condition="$post['field21'] == 'Yes'">
<img src="images/mataharibadges/photographer.png" alt="$post[username] is a Photographer">
<else />

<if condition="is_member_of($post, 10)"><img src="images/mataharibadges/photographer.png" alt="$post[username] is a Photographer"></if>
</if>


<if condition="is_member_of($post, 9)"><img src="images/mataharibadges/loungeaccess.png" alt="$post[username] has access to The Lounge"></if>


<if condition="$post['field25'] !=''"><img src="images/mataharibadges/$post[field25].png"></if>


Obviously that code needs to change for vb4, if anyone wants to elaborate on that, it would also be appreciated, but a quick forum search would probably find it for me, so I'm not too bothered about that. Anyway.

I then edited postbit_legacy and added this line of code in the appropriate place:


<!-- START Badges by Profile Field Code -->

$custom_postbit_badges

<!-- END Badges by Profile Field Code -->


Finally I had a plugin, which was setup like this:


Product: bulletin
hook location: cache_templates
Title: cache template custom_postbit_badges
execution order: 5
php code:

$globaltemplates = array_merge($globaltemplates, array('custom_postbit_badges'));



I think you can probably guess where this is going :D

So, how (can?) I replicate this behaviour in vb4?

Thanks in advance.

Lynne
01-12-2013, 05:28 PM
See this article about vb4 template conditions/syntax - https://vborg.vbsupport.ru/showthread.php?t=231525

and this thread about rendering templates and registering variables for use in them - https://vborg.vbsupport.ru/showthread.php?t=228078

markuswarren
01-12-2013, 08:08 PM
Hello Lynne,
Thanks for the reply.

Stupid question. Would I put the html like code into a plugin and reference it there, rather than a custom template file, or can I put the following sort of code into the custom template:

$templater = vB_Template::create('mytemplate');
$templater->register('my_var', $my_var);
$templater->register('my_array', $my_array);
$templater->render();


I think that is the main thing that confuses me as I'm unsure if that code can go in an template, or has to go in a plugin

Lynne
01-13-2013, 02:11 AM
You will need something like what you wrote in order to use the variable $custom_postbit_badges in your template.

kh99
01-13-2013, 12:49 PM
I think that is the main thing that confuses me as I'm unsure if that code can go in an template, or has to go in a plugin


That code goes in a plugin. You can probably use hook location parse_templates.