PDA

View Full Version : Adding Variables, Globals, etc.


binjured
07-04-2005, 09:00 PM
Okay, I have come with another question. I am trying to understand how vB is structured so that I can more easily modify it. Take modifying a Postbit, for example. To my knowledge, there are two parts to this:

1) class_postbit.php -- contains the class and various functions used with it to create postbit objects.

2) postbit[_legacy] -- template that uses the variables that are created to draw the page.

So, I tried modifying the postbit to include the word "TEST" before anything else...

Step 1) Opened class_postbit.php, found a spot I thought would be decent for inclusion, and tried to create another variable.
function prep_post_end()
{
$this->post['a_test'] = 'TEST';
}

Step 2) Opened postbit_legacy template (the one I'm using), and added at the top:
<div>$post[a_test]</div>
This did not work, what am I doing wrong?


If I wanted to include, say, $vbulletin->$user[userid] somewhere, what would I have to do? add something like:
global $vbulletin;
$variable = $user[userid];
I know that doesn't work, but what would?

Sorry about all the questions, I am just trying to understand vB's structure so I can ask a lot fewer questions later. I would consult the manual or something, but that doesn't seem to provide any kind of information like this.

Thanks!

Andreas
07-04-2005, 10:00 PM
As you can see in the Code, the Class has a Property registry.
This is a reference to the global vB_Registry Object (aka $vbulletin).
So as the P?ostbits are being processed within the Class, you can use $this->registry->userinfo['userid'] to get the Userid.
Or in Templates you can (still?) use $bbuserinfo['userid']

If you set $this->post['foobar'], you must also use $this->post in the Template - just $post is smth. different :)

merk
07-04-2005, 11:07 PM
Yeh, if you look at the templates in the template table, $vboptions is translated to $vbulletin->options and same with bbuserinfo.

binjured
07-05-2005, 05:42 PM
Problem Solved.