PDA

View Full Version : [SOLVED]vb4 phrases in custom php. how to?


nirvana43
12-22-2009, 04:53 AM
Hello
I have created 1 phrase with following settings :

Product : testAbc
Varname : testXxx
Text : This is a test message.


Now, when i try to access above phrase in my php file with following syntax, it doesn't give me any output (blank) :

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

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT', 'test');
define('CSRF_PROTECTION', true);
// change this depending on your filename

// ################### 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('custom_test',
);

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

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
vB_Template::preRegister('custom_test', array('contents' => $contents));
// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################

$navbits = construct_navbits(array('' => 'Test'));
$navbar = render_navbar_template($navbits);
$aa=$vbphrase['testXxx'];
// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'This is a test page';

// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######
//vB_Template::preRegister('header',array('contents' => $contents));
$templater = vB_Template::create('custom_test');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());
?>


When i directly write following in my custom_test template, it does give me output.
{vb:phrase testXxx}
or
{vb:rawphrase testXxx}

Somebody please help me.
How do i access phrase text in php file?

Vaupell
12-22-2009, 06:45 AM
are your phrases in global or in a group, if in a group you need to register them

// get special phrase groups
$phrasegroups = array();

And i call phrases in templates like this {vb:raw vbphrase:phrasename}

nirvana43
12-22-2009, 09:10 AM
are your phrases in global or in a group, if in a group you need to register them

// get special phrase groups
$phrasegroups = array();

And i call phrases in templates like this {vb:raw vbphrase:phrasename}

Yap they are global.
And no i dont want to call them in template. It works when i call 'em in template.
But here is the situation :

test/test.php contains :
<?php
$ab="I'm in php file.";
?>

i have registered above variable $ab in /test.php file outside "test" folder.
It also includes call for include("test/test.php")

In template "custom_test" i'm rendering data as :
{vb:raw ab}

Now what i want is :
<?php
$tmpaa=$vbphrase['testXxx'];
$ab="I'm in php file.";
$ab.="Phrase contents=".$tmpaa;
?>

I dont understand understand how do i capture phrase data in custom php file (outside vbulletin template) and yeah file does have include(global.php);

--------------- Added 1261483354 at 1261483354 ---------------

somebody please help :(

--------------- Added 1261484666 at 1261484666 ---------------

I just got it sorted out..
Posting solution for future troubles :
<?php
include(./global.php);
$aa=sprintf($vbphrase['my_phrase_name']);
echo $aa;
?>


Now you can directly use phrase contents outside vbulletin's template. :)