PDA

View Full Version : php code \ hooks \ in template


gcombe74
03-16-2016, 01:36 PM
I was reading this post.
https://vborg.vbsupport.ru/showthread.php?t=321423

but curious how much php functionality is now available. looks like in the past only certain functions where available.

https://www.vbulletin.com/docs/html/main/dev_vbulletin5_template_syntax


so I am trying to get some dynamic php for my og-image code that I used to have working where from my board to FB it posted the image of my sponsors with the last post twice a day. I used twitterfeed to pull the RSS and post to twitter\fb. But on my site i had this code so I could randomly grab an image with the post as it was read from my site.

how can I get my board to read this code in a template. right now i have the bottom hardcoded with meta tages in my header_include and it will read and post the image just fine.. but once I add the php part... no go?

I will apologize in advance I am just still learning the VB way of doing things.


<?php
$image1 = '<meta property="og:image" content="http://www.coverandcushion.com/image/sloan_ad.jpg"/>';
$image3 = '<meta property="og:image" content="http://www.coverandcushion.com/image/enviratex_ad.jpg"/>';
$image4 = '<meta property="og:image" content="http://www.coverandcushion.com/image/weathermax.jpg"/>';
$image5 = '<meta property="og:image" content="http://www.coverandcushion.com/image/breakwater.jpg"/>';
$image7 = '<meta property="og:image" content="http://www.coverandcushion.com/image/solarfix_ad.jpg"/>';
$image8 = '<meta property="og:image" content="http://www.coverandcushion.com/image/herculite_ad.jpg"/>';
$image9 = '<meta property="og:image" content="http://www.coverandcushion.com/image/csosmall.jpg"/>';

$arr = array("$image1", "$image3", "$image4", "$image5", "$image7", "$image8", "$image9" );
reset($arr); shuffle($arr); $new_array = array_slice($arr, 0, 1); while (list(, $value) = each($new_array)) {
echo "$value";







<meta property="og:title" content="{vb:raw thread.title}"/>
<meta property="og:image:type" content="image/jpg">
<meta property="og:image:width" content="200">
<meta property="og:image:height" content="200">
<meta property="og:description" content="{vb:raw thread.meta_description}" />

gcombe74
03-22-2016, 03:36 PM
guessing in vb5 I cant do this yet? or I am missing something... not one reply??

Lynne
03-22-2016, 03:46 PM
Is the code you have listed something you added to the template? You may only put HTML (and call variables) in templates. You may not put PHP code in templates.

gcombe74
03-22-2016, 03:57 PM
I am just trying to figure out how get that code or rather the output of that into the header of my board so that when my rss feed hits facebook the image pulled is always changing.

right now its not in my system... just trying to figure out how to get it into my board ATM.

Necrophyte
08-17-2016, 02:37 PM
Not sure if you still need this.
So the PHP hooks don't work in that way, but you can use a work around for that.
https://www.vbulletin.com/docs/html/main/dev_vbulletin5_template_syntax
If you look at the {vb: data} you can actually write a function and the data will be stored in a template variable.

{vb:data rank_icon, user, getrankiconurl} will run a public function called 'getrankiconurl' in the api file user.php. You can then access the variable it has by using {vb: raw rank_icon} and rank_icon will contain whatever you stored/returned. It can be HTML, a template, an Array. Whatever you want. You don't have to use user, you can make your own if you want. Just follow the same Idea as the user.php file.
Hope this helps.