sweeps78 |
12-03-2011 09:13 PM |
help with creating an rss feed aggregator page
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
|