Hi,
I'm trying to create a page inside my forums that simply displays a single RSS feed (title & body). I'm running into trouble trying to figure out how to use some of vBulletin's existing classes on my custom page. I'm pretty much a n00b to the vBulletin architecture (and mostly to php as well) so I'm guessing the issue is something very fundamental. I've learned as much as I have from Lynne's awesome tutorial on building my own page and template and then hacking at vBulletin's CMS RSS Feed Widget.
Here's my page:
PHP Code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'trblog');
define('CSRF_PROTECTION', true);
// change this depending on your filename
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();
$rss = array();
// get special data templates from the datastore
$specialtemplates = array();
// pre-cache templates used by all actions
$globaltemplates = array('trblog',
);
// pre-cache templates used by specific actions
$actiontemplates = array();
// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
// chdir ('/path/to/your/forums');
require_once('./global.php');
require_once('./includes/class_rss_poster.php');
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
$feed = new vB_RSS_Poster($vbulletin);
$feed->fetch_xml('http://feeds.trossenrobotics.com/TrossenRoboticsBlog');
// TODO: Add config values for encoding behaviour
$feed->parse_xml(false, true, false, true);
// get rss elements
if ($rss['items'] = $feed->fetch_normalised_items())
{
$rss['title'] = $feed->xml_array['channel']['title'];
$rss['description'] = $feed->xml_array['channel']['description'];
$rss['link'] = $feed->xml_array['channel']['link'];
// check quantity
if (sizeof($rss['items']) > $config['max_items'])
{
$rss['more'] = true;
$rss['items'] = array_slice($rss['items'], 0, $config['max_items']);
}
//$rss['url'] = vB::$vbulletin->input->xss_clean_url($config['url']);
}
$navbits = construct_navbits(array('' => 'TR Blog'));
$navbar = render_navbar_template($navbits);
// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'TR Blog';
// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######
$templater = vB_Template::create('trblog');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());
?>
and my template:
PHP Code:
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
<head>
<title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
{vb:raw headinclude}
{vb:raw headinclude_bottom}
</head>
<body>
{vb:raw header}
{vb:raw navbar}
<div id="pagetitle">
<h1>{vb:raw pagetitle}</h1>
</div>
<h2 class="blockhead">Title</h2>
<div class="blockbody">
<div class="blockrow">
Text
<!-- {vb:raw rss_description} -->
<vb:each from="rss_items" key="id" value="item">
<h4 ><a href="{vb:raw item.link}" target="_blank">{vb:raw item.title}</a></h4>
</vb:each>
</div>
</div>
{vb:raw footer}
</body>
</html>
BTW, the error that I'm getting at the moment is: Fatal error: Class 'vB' not found in /home/sandboxt/public_html/includes/class_rss_poster.php on line 421