PDA

View Full Version : Trouble using the vB bbcode parser


t325
04-08-2007, 03:59 AM
I'm using a combination of the vB code parser tutorial on this forum and some bits of code from vBExternal (don't worry, it's for personal use, I'm not releasing it so no copyright issues or anything) to make something that grabs posts from a certain forum and displays them. But I can't seem to get the parser working.

Here's my code:


<?php
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'vBExternal');
chdir('/home/lpassoc/www/forums');

if( !file_exists('./includes/config.php'))
{
echo "includes/config.php does not exist. Cannot continue.";
exit;
}

require_once('./includes/class_core.php');
require('./includes/config.php');

DEFINE('DIR','.');
DEFINE('TABLE_PREFIX',$config['Database']['tableprefix']);

$vbulletin =& new vB_Registry(); // Fake an OOP Object

switch (strtolower($config['Database']['dbtype']))
{
// load standard MySQL class
case 'mysql':
case '':
{
$db =& new vB_Database($vbulletin);
break;
}

// load MySQLi class
case 'mysqli':
{
$db =& new vB_Database_MySQLi($vbulletin);
break;
}

// load extended, non MySQL class
default:
{
die('Fatal error: Database class not found');
}
}

require_once('./includes/functions.php');


// make database connection
$db->connect(
$config['Database']['dbname'],
$config['MasterServer']['servername'],
$config['MasterServer']['port'],
$config['MasterServer']['username'],
$config['MasterServer']['password'],
$config['MasterServer']['usepconnect'],
$config['SlaveServer']['servername'],
$config['SlaveServer']['port'],
$config['SlaveServer']['username'],
$config['SlaveServer']['password'],
$config['SlaveServer']['usepconnect'],
$config['Mysqli']['ini_file']
);

$vbulletin->db =& $db;

// ---------------------------------------------------
// End Call DB & Establish Connection
// ---------------------------------------------------

// ---------------------------------------------------
// Start Require Globalized Settings
// ---------------------------------------------------

class vBulletinHook { function fetch_hook() { return false; } }

define('TIMENOW', time());
require_once('./includes/class_bbcode.php');

$result = $db->query('SELECT t.title, p.pagetext FROM vbthread AS t LEFT JOIN vbpost AS p ON (t.firstpostid = p.postid) WHERE t.forumid = '.$f.' ORDER BY t.title ASC');


$parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
while ($r = mysql_fetch_array($result)) {
?>

<div style=" background-color: #271c16; padding-top: 5px; padding-bottom: 5px; padding-left: 20px; padding-right: 20px;">
<img src="<?=base_url?>/themes/lpa/images/arrow.gif" />&nbsp;<span class="lyrtitle">
<?php
echo $r['title'];
?>
</div>
<div style="padding: 16px;">
<?=$parser->do_parse($r['pagetext'], false, true, true, true, true, false)?>
</div>
<?php
}
?>

Probably not the neatest code out there, but it's working, except for the parser. It does do the newline to linebreak conversion, so I know that the parser's taking input, messing with it, and returning it back. But it won't convert bbtags such as url and all of the text formatting ones. There aren't any error messages either (I enabled error_reporting of all messages to check) Any ideas? I'm using vB 3.6.5. Thanks

LionHeart008
04-26-2007, 10:40 AM
I have had the same issue with a similar vb news export script I have been making. I cannot get the bbcode_parser to work outside of vbulletin. I would really appreciate any advice on this. It seems the class is tightly coupled to other core VB functionality so it is not easily reused.