Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 01-01-2010, 11:43 AM
saajjj saajjj is offline
 
Join Date: Nov 2009
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Using $vbulletin or $db in non-vb powered php file?

Hello,
This post seems to have grown. I wanted to explain exactly what I was doing so that someone might point me in the right direction.

I've made a custom template inside which I want to output from a PHP file.
This customTemplate is itself used inside the header template. The plugin for this customTemplate looks like:
(hook: parse_templates)
Code:
$templater = vB_Template::create('customTemplate');
$templatevalues['customTemplate_show'] = $templater->render();
vB_Template::preRegister('header', $templatevalues);
The plugin I'm using to enable me to write from the PHP file is:
(hook: parse_templates)
Code:
ob_start();
	include("http://www.myforum.com/myPHPfile.php");
	$contents = ob_get_contents();
ob_end_clean();
$preRegister['phpFile_output'] = $contents;
vB_Template::preRegister('customTemplate', $preRegister);
So, the forum header has {vb:raw customTemplate_show} and customTemplate has {vb:raw phpFile_output}

The PHP file is simply:
Code:
<?php
	echo("hello world");
?>
The above works as expected. i.e in the header I can see 'hello world'.

My problem starts when I want to start using vB specific globals in myPHPFile.php like $vbulletin or $db. I get a:
Fatal error: Call to a member function query_read() on a non-object in /home/xxxx/public_html/myPHPFile.php on line 9

where line 9 is:
Code:
$result = $db->query_read("Select * from ".TABLE_PREFIX."myTable");
My understanding is that this error means that $db is not an object that PHP recognizes. This led me to try out various things, none of which worked. I tried adding the following to the start of myPHPfile.php:
1. require_once("./global.php"); <--- this starts an infinite loop, and eventually crashes the browser
2. global $vbulletin
3. global $db

I'd like to point out that, thanks to articles posted here, I have been able to use $vbulletin and $db in a regular vb powered custom page without any issues.

Any help appreciated.
Reply With Quote
  #2  
Old 01-01-2010, 02:18 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

$db->query_read is defined by vbulletin. If you don't include global.php (or init.php), then it isn't defined. You would have to use standard mysql if you aren't going to include the vbulletin files that allows you to use query_read.
Reply With Quote
  #3  
Old 01-01-2010, 02:35 PM
saajjj saajjj is offline
 
Join Date: Nov 2009
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks a lot Lynne, init.php did the trick for me.

The posts I read mostly said to add global.php but in my case that introduced a recursive call to the header template. (which eventually crashed the browser).

Incase anyone is reading, I needed to add the following right at the top of myPHPfile.php to get things working:
Code:
define('VB_AREA', 'Forum'); 
define('THIS_SCRIPT', 'myPHPfile');

require_once("./includes/init.php");
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:09 PM.


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.07147 seconds
  • Memory Usage 2,179KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (5)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete