Log in

View Full Version : Why won't this variable work


RoutineX
02-17-2007, 06:55 PM
I just started reading up on the vB api, and had some basic questions.

1) Isn't this the right way to assign a variable in a new template?

- test.php
<?php

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// ##################### DEFINE IMPORTANT CONSTANTS #######################
// change the line below to the actual filename without ".php" extention.
// the reason for using actual filename without extention as a value of this constant is to ensure uniqueness of the value throughout every PHP file of any given vBulletin installation.

define('THIS_SCRIPT', 'test');

// #################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array(
// change the lines below to the list of actual templates used in the script
'xb_test');

// pre-cache templates used by specific actions
$actiontemplates = array();

// ########################## REQUIRE BACK-END ############################
require_once('./global.php');

// #################### HARD CODE JAVASCRIPT PATHS ########################
$headinclude = str_replace('clientscript', $vbulletin->options['bburl'] . '/clientscript', $headinclude);

// ################################################## ######################
// ######################### START MAIN SCRIPT ############################
// ################################################## ######################

$navbits = array();
// change the line below to contain whatever you want to show in the navbar (title of your custom page)
$navbits[$parent] = 'Test page';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');

// change the line below to contain the name of the actual main output template used in your script
eval('print_output("' . fetch_template('xb_test') . '");');

?>

- A plugin (global_start hook) with
<?php
$abc = "test2";
?>

- The template xb_test with:
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude
<title>$vboptions[bbtitle]</title>
</head>
<body>

$header
$navbar

test1
$abc
test3

$footer
</body>
</html>


When i go to test.php it only shows "test1 test3". Why won't the variable work?

2) Which hook should I assign custom plugins to? They will only be used on custom pages/templates. I just I don't want vB to call functions when it's not necessary.

Thank you =)

Paul M
02-17-2007, 08:45 PM
You don't need the php tags in plugins - that's what is breaking it - you only need the actual php code (one line in this case) ;

$abc = "test2";