Disasterpiece
11-22-2011, 01:19 PM
Hey
I'm trying to create my own page with vbulletin vars being available according to this guide:
https://vborg.vbsupport.ru/showthread.php?t=228112
I'm using a cms on the domain root http://example.tld/ and the forum being at http://example.tld/forum
I created a "bridge class" which gets included to initialize the vB bridge:
class vBBridge
{
static private $vb_name = 'xxx';
static private $vb_user = 'xxx';
static private $vb_pass = 'xxx';
static private $vb_table = 'vb3_session';
static private $vb_usertable = 'vb3_user';
static private $vb_cookie = 'bb_sessionhash';
static private $vb_db = null;
static private $vb_sessioninfo = null;
static private $vb_userinfo = null;
static public $precache_tpl = array();
static public $precache_phrase = array();
static public $precache_datastore = array();
static public $precache_tpl_special = array();
static public function init_vB() {
define('THIS_SCRIPT', 'portal');
define('CSRF_PROTECTION', true);
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = self::$precache_phrase;
// get special data templates from the datastore
$specialtemplates = self::$precache_datastore;
// pre-cache templates used by all actions
$globaltemplates = self::$precache_tpl;
// pre-cache templates used by specific actions
$actiontemplates = self::$precache_tpl_special;
// change this depending on your filename
chdir ('./forum');
require_once('./global.php');
chdir ('../');
}
}
So far so good.
the init_vB() function gets called somewhere down the road, inside the cms like this:
include_once('./lib/vbbridge.class.php');
vBBridge::$precache_tpl = array('cms_toplinks');
vBBridge::init_vB();
after this call, I can use the $vbulletin var everywhere, so this works.
BUT:
now I'm trying to get a simple vbulletin template, "cms_toplinks".
To accomplish this, my test code looks like this:
global $vbulletin;
$templater = vB_Template::create('cms_toplinks');
$templater->register_page_templates();
$str = $templater->render();
var_dump($str);
[using print_output($templater->render()) as suggested in the guide gives me an error]
The output in the CMS is this:
string(74) "<!-- BEGIN TEMPLATE: cms_toplinks -->
<!-- END TEMPLATE: cms_toplinks -->"
So the vb framework is loaded, but it doesn't find my template. Why?
I created the template with the same name (yes, case-sensitive) as a child template to the MASTER-STYLE as suggested in the guide, but still. Doesn't find the template.
Any ideas?
I'm trying to create my own page with vbulletin vars being available according to this guide:
https://vborg.vbsupport.ru/showthread.php?t=228112
I'm using a cms on the domain root http://example.tld/ and the forum being at http://example.tld/forum
I created a "bridge class" which gets included to initialize the vB bridge:
class vBBridge
{
static private $vb_name = 'xxx';
static private $vb_user = 'xxx';
static private $vb_pass = 'xxx';
static private $vb_table = 'vb3_session';
static private $vb_usertable = 'vb3_user';
static private $vb_cookie = 'bb_sessionhash';
static private $vb_db = null;
static private $vb_sessioninfo = null;
static private $vb_userinfo = null;
static public $precache_tpl = array();
static public $precache_phrase = array();
static public $precache_datastore = array();
static public $precache_tpl_special = array();
static public function init_vB() {
define('THIS_SCRIPT', 'portal');
define('CSRF_PROTECTION', true);
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = self::$precache_phrase;
// get special data templates from the datastore
$specialtemplates = self::$precache_datastore;
// pre-cache templates used by all actions
$globaltemplates = self::$precache_tpl;
// pre-cache templates used by specific actions
$actiontemplates = self::$precache_tpl_special;
// change this depending on your filename
chdir ('./forum');
require_once('./global.php');
chdir ('../');
}
}
So far so good.
the init_vB() function gets called somewhere down the road, inside the cms like this:
include_once('./lib/vbbridge.class.php');
vBBridge::$precache_tpl = array('cms_toplinks');
vBBridge::init_vB();
after this call, I can use the $vbulletin var everywhere, so this works.
BUT:
now I'm trying to get a simple vbulletin template, "cms_toplinks".
To accomplish this, my test code looks like this:
global $vbulletin;
$templater = vB_Template::create('cms_toplinks');
$templater->register_page_templates();
$str = $templater->render();
var_dump($str);
[using print_output($templater->render()) as suggested in the guide gives me an error]
The output in the CMS is this:
string(74) "<!-- BEGIN TEMPLATE: cms_toplinks -->
<!-- END TEMPLATE: cms_toplinks -->"
So the vb framework is loaded, but it doesn't find my template. Why?
I created the template with the same name (yes, case-sensitive) as a child template to the MASTER-STYLE as suggested in the guide, but still. Doesn't find the template.
Any ideas?