View Full Version : Finding the right hook(s) for plugin(s) in vBulletin 5.2.0
robertw795
03-04-2016, 01:08 PM
I am currently adding advertisements to a forum and I want to place an advertisement after every 5 posts in a thread. To do this I have to write a custom plug-in.
I used to have a similar custom plug-in in a vBulletin 3.8.5 forum which I wanted to use as a reference. I noticed that the hooks have changed over the years. At this point my problem is that I don't know what hook I have to use for my plug-in, as the hooks of 3.8.5 don't correspond to those of 5.2.0 anymore.
I'd like to ask you which hook I have to use for my plug-in. And in general, where to find documentation about hooks and their functionality for future reference.
Where can I find this?
Thanks in advance. :)
Replicant
03-04-2016, 05:35 PM
Hooks have just been re-implemented in vb5. There are only two in 5.2.0 and they are pretty much for testing. The hook system is in it infancy on vb5.
I would add a template hook in the conversation display templates to accomplish what you're trying to do. The only problem with that is the modification won't survivr an upgrade and will need to be re-added which is really not that big of a deal. I have several on my site that I do it on every upgrade.
robertw795
03-07-2016, 08:15 AM
I would add a template hook in the conversation display templates to accomplish what you're trying to do.
Hello,
Thanks for your reaction.
I've managed to display my plug-ins custom template below the reaction to a topic form using the conversation_below_entry hook location.
Now I want to display it inbetween the posts, so what I want to do is fetch the number of the posts in the topic, and place my custom template after every 5. Is it possible to write a custom hook location for this?
Replicant
03-07-2016, 01:20 PM
From the VB5 manual
{vb:hook}
{vb:hook} is used for including templates hooks in current template.
Parameter Position Parameter Name Type Required Description
1 hook string Yes The name of the template hook
Code:
{vb:hook test}
There is also {vb:php} available which provides for a limited amount of php functions in you template code.
{vb:php}
{vb:php} is used to run allowed php functions during the execution of a template.
Parameter Position Parameter Name Type Required Description
1 function name string Yes The name of the function
2...∞ string[, ...] compiable code No Arguments of the function
Code:
{vb:set test, {vb:php implode, ',', {vb:raw variable}}}
PHP Equivalent:
<?php
$test = implode(',', $variable);
Allowed functions:
implode()
explode()
array_merge()
array_intersect()
array_intersect_key()
array_keys()
array_push()
array_pop()
array_shift()
array_unshift()
array_unique()
array()
current()
str_repeat()
str_pad()
strip_tags()
strtolower()
strtoupper()
trim()
substr()
vbstrtolower()
For more info on the VB5 template syntax, go here (https://www.vbulletin.com/docs/html/main/dev_vbulletin5_template_syntax).
This is too funny. -->> {vb:php}
robertw795
03-08-2016, 07:03 AM
Thanks, I've got all the information I need now.
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.