PDA

View Full Version : getting variables to use in plugin's / external php pages


JamesUK
09-29-2011, 01:54 PM
Hi there,

I have created a plugin to include an external php file. This php file does a lookup for me based on a variable i feed it containgin a search string called '$queryText'. In this instance im trying to collect the 'keywords' meta declaration value and use that to search against our DB for the use of contexual adverts.

I'm having two difficulties in doing this..

Firstly, I believe one issue is that im using the wrong hook.. that when my plugin is called.. the keywords either aren't populated or aren't available.

The second issue is I have no idea on the syntax on how to send this value to the external file?!

heres the plugin so far:

Hook Location: global_bootstrap_init_start

echo $vbulletin->thread['keywords'];
echo $vbulletin->threadinfo['keywords'];
echo $vbulletin->vboptions['keywords'];

// $queryText = ;


ob_start();
require_once('contextInclude.php');
$contextInclude = ob_get_contents();
ob_end_clean();
vB_Template::preRegister('postbit_legacy',array('c ontextInclude' => $contextInclude));


you can clearly see that I am echo'ing out the three variaus attempts I have had to get the keywords from Vb.. all three return nothing. :(

I managed to echo out the keywords in the postbit_legacy template using:
{vb:raw thread.keywords}

It is in postbit_legacy that i am trying to 'call' the output of my external file.. but obviously the plugin is executed back at init_start so i cant feed the keywords there.. and even if i could.. i have no idea how to put {vb:raw thread.keywords} into a variable that can be used by the external file..


I hope all that makes sense :erm: :rolleyes:

I hope somone out there can tell me either how to make the keywords available globally, or how to access them in the plugin.. or where im going wrong generally! :D

cheers Guys

nhawk
09-29-2011, 03:42 PM
I don't know for sure that it will work, but try putting global $vbulletin; at the top of your code. I think that will get the echos working for you.

kh99
09-29-2011, 04:17 PM
I don't think you need the global statement at global_bootstrap_init_start, but I think what you want is $vbulletin->options['keywords']; (I don't know why they chose to make it "vboptions" in the templates). If you're including (or requiring) your external file you shouldn't have to do anything special, you could access $vbulletin->options or set another variable (but maybe you know that part already).

JamesUK
09-30-2011, 07:13 AM
Ah see this is where it gets slightly more in depth and confusing..

I was hoping I could find the standard way of getting the keywords and from there figure out the rest.. but it looks like this isn't going to work. :( Heres why:

we have vbseo installed.. this in turn re-generates (for want of a better word) the keywords from the vb4 standard ones.. in this instance our 'default keywords' are blank in the options and the keywords are generated using text from the forum threads themselves.. at least this is my understanding.

I put some default keywords back in and see if any of the above solution(s) generated anythign and sure enough they do! Great, thank you.. but it doesnt contain the modified keywords.. so I'll just have to keep hunting and askin on vbseo forums too lol :)

thanks guys for help so far!

--------------- Added 1317392668 at 1317392668 ---------------

AMAZINGLY ... I cant even get the thread ID...


Hook: global_bootstrap_init_start

echo $GLOBALS['threadinfo']['threadid'];
echo $vbulletin->post['threadid'];
echo $vbulletin->threadinfo['threadid'];
echo $vbulletin->thread['threadid'];
echo $vbulletin->options['threadid'];
echo $vbulletin->newpost['threadid'];
echo $threadid;
echo $thread['threadid'];

NONE get results.. I cant fathom why they have made this so complicated..

--------------- Added 1317396932 at 1317396932 ---------------

ok ignore the above.. moved the hook location to 'showthread_start' and $threadid worked a treat. :)

getting close now