vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   3rd party site including vbulletin framework can't display templates (https://vborg.vbsupport.ru/showthread.php?t=274455)

Disasterpiece 11-22-2011 01:19 PM

3rd party site including vbulletin framework can't display templates
 
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:

PHP Code:

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:

PHP Code:

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:

PHP Code:

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:

HTML Code:

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?

kh99 11-22-2011 02:01 PM

You need to add "global $bootstrap" where you are including global.php.

kh99 11-22-2011 02:04 PM

Sent you a PM - for some reason when I try to post my response the post is being moderated.

Disasterpiece 11-22-2011 02:28 PM

1 Attachment(s)
Here kh's post:
Quote:

I think the problem is that you need global \$ bootstrap in the function befor eyou include global\ . php. Tried to post this in the thread but for some reason my posts are being moderated.
Wow... it works.

BUT... now I seem to have the template, but the template parse function does some really weird stuff i only can explian via screenshot. Look at this...

Attachment 134626

This happens as soon as I include the $templater->parse() call, no matter if it actually outputs something or not.

My code now is like this:

PHP Code:

global $vbulletin;

$templater vB_Template::create('cms_toplinks');
$templater->register_page_templates();
$str $templater->render(true);

//print $str; 

With print $str being active, I get the exact same result, only with the toplinks bar rendered at the correct position (as it should be) with this code mess on the site still...

I have no idea where this could come from. maybe an issue with output buffering? But why dump all the php code un-rendered? Is this maybe a vbulletin-related bug?

Lynne 11-22-2011 05:58 PM

Approved posts. I'm not sure what was catching those posts. :/


All times are GMT. The time now is 10:00 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01686 seconds
  • Memory Usage 1,747KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_html_printable
  • (4)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete