99SIVTEC
10-21-2005, 09:03 PM
This should be simple for someone who knows what they are doing. Basically i'm trying to show "active topics" from several vbulletin sites on a single page. I decided to use the sites rss feeds instead of making a search query on each database (7 sites, so server load would be high). I'm using magpie and have setup a file called scractivetopics.php. It contains everything necessary to show the rss feeds on screen. It's after this step that I am having problems. I've never created a mod for vbulletin much less 3.5 so I don't know the best way to proceed. I tried creating another php file (netactive.php) with all of the necessary vbulletin files included so I could just call a template, but i'm having issues there. Let me show you some of these files so you have an idea.
netactive.php - Vbulletin file used to call the templates
<?php
// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// ##################### DEFINE IMPORTANT CONSTANTS #######################
// change the line below to the actual filename without ".php" extention.
// the reason for using actual filename without extention as a value of this constant is to ensure uniqueness of the value throughout every PHP file of any given vBulletin installation.
define('THIS_SCRIPT', 'netactive');
// #################### 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(
// change the lines below to the list of actual templates used in the script
'netactive',
);
// pre-cache templates used by specific actions
$actiontemplates = array();
// ########################## REQUIRE BACK-END ############################
require_once('./global.php');
// #################### HARD CODE JAVASCRIPT PATHS ########################
$headinclude = str_replace('"clientscript', '"' . $vbulletin->options['bburl'] . '/clientscript', $headinclude);
// ################################################## ######################
// ######################### START MAIN SCRIPT ############################
// ################################################## ######################
$navbits = array();
// change the line below to contain whatever you want to show in the navbar (title of your custom page)
$navbits[$parent] = 'SCR Network Active Topics';
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
// change the line below to contain the name of the actual main output template used in your script
eval('print_output("' . fetch_template('netactive') . '");');
?>
scractivetopics.php - magpie file used to read the rss feeds - I have html in here and would rather have it in a vbulletin template, but have no idea how to go about that
<?php
define("MAGPIE_CACHE_AGE", "300");
define('MAGPIE_DIR', 'magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');
?>
<?php
$rss = fetch_rss('http://www.xxx.net/vbulletin/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
netactive template from vbulletin itself
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude
<title>$vboptions[bbtitle]</title>
</head>
<body>
$header
$navbar
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center" id="threadslist">
<tr>
<td class="tcat" colspan="$threadcolspan" style="font-weight:normal">
<span class="smallfont">Network Active Topics
</span>
</td>
$scrnetactive
</tr>
</table>
$footer
</body>
</html>
I had this setup so scractivetopics.php was a plugin and could be called in a template using $scrnetactive (an include in vbulletin). I setup a custom template called netactive and inside called $scrnetactive. This worked, but my server load went through the roof because of the way I used the plugin. I had the plugin set to "global_start" so it was being called with every page. I can't think of another way to do this.
Someone please help. I'm sure it is a simple mistake, but I can't find the answers I am looking for.
netactive.php - Vbulletin file used to call the templates
<?php
// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// ##################### DEFINE IMPORTANT CONSTANTS #######################
// change the line below to the actual filename without ".php" extention.
// the reason for using actual filename without extention as a value of this constant is to ensure uniqueness of the value throughout every PHP file of any given vBulletin installation.
define('THIS_SCRIPT', 'netactive');
// #################### 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(
// change the lines below to the list of actual templates used in the script
'netactive',
);
// pre-cache templates used by specific actions
$actiontemplates = array();
// ########################## REQUIRE BACK-END ############################
require_once('./global.php');
// #################### HARD CODE JAVASCRIPT PATHS ########################
$headinclude = str_replace('"clientscript', '"' . $vbulletin->options['bburl'] . '/clientscript', $headinclude);
// ################################################## ######################
// ######################### START MAIN SCRIPT ############################
// ################################################## ######################
$navbits = array();
// change the line below to contain whatever you want to show in the navbar (title of your custom page)
$navbits[$parent] = 'SCR Network Active Topics';
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
// change the line below to contain the name of the actual main output template used in your script
eval('print_output("' . fetch_template('netactive') . '");');
?>
scractivetopics.php - magpie file used to read the rss feeds - I have html in here and would rather have it in a vbulletin template, but have no idea how to go about that
<?php
define("MAGPIE_CACHE_AGE", "300");
define('MAGPIE_DIR', 'magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');
?>
<?php
$rss = fetch_rss('http://www.xxx.net/vbulletin/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
<?php
$rss = fetch_rss('http://www.xxx.com/forums/external.php?type=RSS2&items=active');
echo '<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><tr><td class="thead">' . $rss->channel['title'] . '</td></tr>';
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
echo '<table cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"><td width="16" class="alt1"><img src="http://www.xxx.net/vbulletin/images/statusicon/thread_new.gif"></td><td width="15" class="alt2"></td><td class="alt1"><a href="'.$item['link'].'">'.$item['title'].'</a></td></table></table>';
}
?>
netactive template from vbulletin itself
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude
<title>$vboptions[bbtitle]</title>
</head>
<body>
$header
$navbar
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center" id="threadslist">
<tr>
<td class="tcat" colspan="$threadcolspan" style="font-weight:normal">
<span class="smallfont">Network Active Topics
</span>
</td>
$scrnetactive
</tr>
</table>
$footer
</body>
</html>
I had this setup so scractivetopics.php was a plugin and could be called in a template using $scrnetactive (an include in vbulletin). I setup a custom template called netactive and inside called $scrnetactive. This worked, but my server load went through the roof because of the way I used the plugin. I had the plugin set to "global_start" so it was being called with every page. I can't think of another way to do this.
Someone please help. I'm sure it is a simple mistake, but I can't find the answers I am looking for.