Jump to content

Mulltipal id's required


D12Eminem989

Recommended Posts

Hello,

 

I have an issue with a script. Me being a new at php however I know a few things. I tried everything I know and cannot seem to find the answer.

 

I want this code to allow me to pull information from multipal forum ids but it alone only allows 1. I have about 6 I need it to pull from. Here is the code alone as is.

 

This is the code I use on my page to define the threads. <?php output_News("10,97"); ?>

function output_News($a = 5,$f = ""){
global $db, $Data, $vbulletin;

// Define amount to show
$Amount = ($a)? intval($a) : 5;

// Define Forum To Pull From
$Forum = ($f)? intval($f): '';

	if(!$Forum){
	RunError("No specified forum to pull news from.");
	}

// Load Template
$Template = LoadTemplate("news.html");

// Collect Data
$NewestNews = $db->query("
		select t.*,p.pagetext
		from ".TABLE_PREFIX."thread t
		left join ".TABLE_PREFIX."post p on(p.postid=t.firstpostid)
		where t.forumid = $Forum
		order by dateline desc
		limit 0,$Amount");


$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

	while($News = $db->fetch_array($NewestNews)){
	$Data .= ParseTemplate($Template,
						array(
							'threadid'     => $News['threadid'],
							'threadname'   => $News['title'],
							'postuserid'   => $News['postuserid'],
							'postusername' => $News['postusername'],
							'post'         => $bbcode_parser->parse(unhtmlspecialchars($News['pagetext']), $f),
							'comments'     => vb_number_format($News['replycount']),
						)
		);
	}

doOutput();
}

 

Now I have another code that pulls the recent threads and that allows for multipal ids to be defined. Here is the code for that:

	function output_NewestThreads($a = 5,$f = ""){
global $db, $Data;

// Define amount to show
$Amount = ($a)? intval($a) : 5;

// Define Forum(s) To Pull From
$Forums = ($f)? $f: '';
$SQL    = '';

	if($Forums){
	$SQL = " where forumid in({$Forums})";
	}

// Load Template
$Template = LoadTemplate("newest_threads.html");

// Collect Data
$NewestThreads = $db->query("select * from ".TABLE_PREFIX."thread{$SQL} order by dateline desc limit 0,$Amount");

	while($Thread = $db->fetch_array($NewestThreads)){
	$Data .= ParseTemplate($Template,
						array(
							'threadid'     => $Thread['threadid'],
							'threadname'   => $Thread['title'],
							'postuserid'   => $Thread['postuserid'],
							'postusername' => $Thread['postusername'],
							'replies'      => vb_number_format($Thread['replycount']),
							'views'        => vb_number_format($Thread['views']),
							'lastposter'   => $Thread['lastposter'],
						)
		);
	}

doOutput();
}

The php markup for the above to desplay the threads is: <?php output_Threads(10,"2,17,22,35,96,20,23,18,97"); ?>

 

 

See I want to be able to add as many forum ids as I define like the above but I got no where. Here is the full script:

 

<?php

// ---------------------------------------------------
// Start Set PHP Environment
// ---------------------------------------------------

error_reporting(E_ALL & ~E_NOTICE);

// ---------------------------------------------------
// End Set PHP Environment
// ---------------------------------------------------

// ---------------------------------------------------
// Start Define Important Constants
// ---------------------------------------------------

define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'vBExternal');

// ---------------------------------------------------
// End Define Important Constants
// ---------------------------------------------------

// ---------------------------------------------------
// Start Cache Of Any Needed Templates/Phrase's
// ---------------------------------------------------

$phrasegroups = array();

$specialtemplates = array(
			'options',
);

$actiontemplates = array();

$globaltemplates = array();

// ---------------------------------------------------
// End Cache Of Any Needed Templates/Phrase's
// ---------------------------------------------------

// ---------------------------------------------------
// Start Call DB & Establish Connection
// ---------------------------------------------------

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');
$Data = "";       // Page Output Variable


$datastore_class = (!empty($config['Misc']['datastore'])) ? $config['Misc']['datastore'] : 'vB_Datastore';

if ($datastore_class != 'vB_Datastore')
{
require_once('./includes/class_datastore.php');
}
$vbulletin->datastore =& new $datastore_class($vbulletin, $db);
$vbulletin->datastore->fetch($specialtemplates);

// ---------------------------------------------------
// End Require Globalized Settings
// ---------------------------------------------------

// ---------------------------------------------------
// Start Globalized Function - LoadTemplate
// ---------------------------------------------------

function LoadTemplate($template = ""){

$template = "vBExternal/{$template}";

	if(!file_exists($template)){
	RunError("System was unable to find the template '{$template}'");
	}

	if(!$Handler = fopen($template,'r')){
	RunError("System was unable to open the template '{$template}'");
	}

$template = fread($Handler,filesize($template));
fclose($Handler);

return $template;
}

// ---------------------------------------------------
// End Globalized Function - LoadTemplate
// ---------------------------------------------------

// ---------------------------------------------------
// Start Globalized Function - RunError
// ---------------------------------------------------

function RunError($message = ""){
echo "<font size='1' face='verdana'>There was an error while processing vBExternal:<br />{$message}</font>";
exit;
}

// ---------------------------------------------------
// End Globalized Function - RunError
// ---------------------------------------------------

// ---------------------------------------------------
// Start Globalized Function - ParseTemplate
// ---------------------------------------------------

function ParseTemplate($template, $parser = array(), $doGlobals = 0){
global $vbulletin;

	if(is_array($parser)){
		foreach($parser as $find => $replace){
		$template = str_replace("{".$find."}", $replace, $template);
		}
	} else if($doGlobals){
	$RepGlobals = array(
				'url' => $vbulletin->options['bburl'],
			);

		foreach($RepGlobals as $find => $replace){
		$template = str_replace("{".$find."}", $replace, $template);
		}

	}

return $template;
}

// ---------------------------------------------------
// End Globalized Function - ParseTemplate
// ---------------------------------------------------

// ---------------------------------------------------
// FUNCTION: output_NewestMembers
// DETAIL:   Outputs newest X members in order of
        //           newest registered first. $a
//           specifies amount to show (Default 5)
// ---------------------------------------------------

function output_NewestMembers($a = 5){
global $db, $Data;

// Define amount to show
$Amount = ($a)? intval($a) : 5;

// Load Template
$Template = LoadTemplate("newest_members.html");

// Collect Data
$NewestMem = $db->query("select username,posts,userid from ".TABLE_PREFIX."user order by joindate desc limit 0,$Amount");

	while($Member = $db->fetch_array($NewestMem)){
	$Data .= ParseTemplate($Template,
						array(
							'username' => $Member['username'],
							'posts'    => vb_number_format($Member['posts']),
							'userid'   => $Member['userid'],
						)
		);
	}

doOutput();
}

// ---------------------------------------------------
// FUNCTION: output_TopPosters
// DETAIL:   Outputs Top X posts in order of
        //           highest post count descending. $a
//           specifies amount to show (Default 5)
// ---------------------------------------------------

function output_TopPosters($a = 5){
global $db, $Data;

// Define amount to show
$Amount = ($a)? intval($a) : 5;

// Load Template
$Template = LoadTemplate("newest_members.html");

// Collect Data
$TopPosters = $db->query("select username,posts,userid from ".TABLE_PREFIX."user order by posts desc limit 0,$Amount");

	while($Member = $db->fetch_array($TopPosters)){
	$Data .= ParseTemplate($Template,
						array(
							'username' => $Member['username'],
							'posts'    => vb_number_format($Member['posts']),
							'userid'   => $Member['userid'],
						)
		);
	}

doOutput();
}

// ---------------------------------------------------
// FUNCTION: output_NewestThreads
// DETAIL:   Outputs X newest threads ordered by
        //           start date descending. $a
//           specifies amount to show (Default 5)
        //           and $f can specify certain forums
//           to grab from (1,3,4), by default it pulls
        //           from all forums.
// ---------------------------------------------------

function output_NewestThreads($a = 5,$f = ""){
global $db, $Data;

// Define amount to show
$Amount = ($a)? intval($a) : 5;

// Define Forum(s) To Pull From
$Forums = ($f)? $f: '';
$SQL    = '';

	if($Forums){
	$SQL = " where forumid in({$Forums})";
	}

// Load Template
$Template = LoadTemplate("newest_threads.html");

// Collect Data
$NewestThreads = $db->query("select * from ".TABLE_PREFIX."thread{$SQL} order by dateline desc limit 0,$Amount");

	while($Thread = $db->fetch_array($NewestThreads)){
	$Data .= ParseTemplate($Template,
						array(
							'threadid'     => $Thread['threadid'],
							'threadname'   => $Thread['title'],
							'postuserid'   => $Thread['postuserid'],
							'postusername' => $Thread['postusername'],
							'replies'      => vb_number_format($Thread['replycount']),
							'views'        => vb_number_format($Thread['views']),
							'lastposter'   => $Thread['lastposter'],
						)
		);
	}

doOutput();
}

// ---------------------------------------------------
// FUNCTION: output_NewestReplies
// DETAIL:   Outputs X newest threads ordered by
        //           last post descending. $a
//           specifies amount to show (Default 5)
        //           and $f can specify certain forums
//           to grab from (1,3,4), by default it pulls
        //           from all forums.
// ---------------------------------------------------

function output_NewestReplies($a = 5,$f = ""){
global $db, $Data;

// Define amount to show
$Amount = ($a)? intval($a) : 5;

// Define Forum(s) To Pull From
$Forums = ($f)? $f: '';
$SQL    = '';

	if($Forums){
	$SQL = " where forumid in({$Forums})";
	}

// Load Template
$Template = LoadTemplate("newest_threads.html");

// Collect Data
$NewestReplies = $db->query("select * from ".TABLE_PREFIX."thread{$SQL} order by lastpost desc limit 0,$Amount");

	while($Thread = $db->fetch_array($NewestReplies)){
	$Data .= ParseTemplate($Template,
						array(
							'threadid'     => $Thread['threadid'],
							'threadname'   => $Thread['title'],
							'postuserid'   => $Thread['postuserid'],
							'postusername' => $Thread['postusername'],
							'replies'      => vb_number_format($Thread['replycount']),
							'views'        => vb_number_format($Thread['views']),
							'lastposter'   => $Thread['lastposter'],
						)
		);
	}

doOutput();
}


// ---------------------------------------------------
// FUNCTION: output_News
// DETAIL:   Outputs the first post from X threads
        //           from a specific forum (ordered by newest
        //           first)
// ---------------------------------------------------

function output_News($a = 5,$f = ""){
global $db, $Data, $vbulletin;

// Define amount to show
$Amount = ($a)? intval($a) : 5;

// Define Forum To Pull From
$Forum = ($f)? intval($f): '';

	if(!$Forum){
	RunError("No specified forum to pull news from.");
	}

// Load Template
$Template = LoadTemplate("news.html");

// Collect Data
$NewestNews = $db->query("
		select t.*,p.pagetext
		from ".TABLE_PREFIX."thread t
		left join ".TABLE_PREFIX."post p on(p.postid=t.firstpostid)
		where t.forumid = $Forum
		order by dateline desc
		limit 0,$Amount");


$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

	while($News = $db->fetch_array($NewestNews)){
	$Data .= ParseTemplate($Template,
						array(
							'threadid'     => $News['threadid'],
							'threadname'   => $News['title'],
							'postuserid'   => $News['postuserid'],
							'postusername' => $News['postusername'],
							'post'         => $bbcode_parser->parse(unhtmlspecialchars($News['pagetext']), $f),
							'comments'     => vb_number_format($News['replycount']),
						)
		);
	}

doOutput();
}


// ---------------------------------------------------
// FUNCTION: output_UsersOnline
// DETAIL:   Outputs All Users Online In The Forum
// ---------------------------------------------------

function output_UsersOnline(){
global $db, $Data, $vbulletin;

// Load Template
$Template = LoadTemplate("users_online.html");

$cache = array();

// Collect Data
$datecut      = TIMENOW - $vbulletin->options['cookietimeout'];
$UsersOnline = $db->query("
	SELECT
		user.username, (user.options) AS invisible, user.usergroupid,
		session.userid,
		IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
	FROM " . TABLE_PREFIX . "session AS session
	LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
	WHERE session.lastactivity > $datecut and user.userid > 0
	" . iif($vbulletin->options['displayloggedin'] == 1, "ORDER BY username ASC") . "
");

	while($User = $db->fetch_array($UsersOnline)){
		if(!$cache[$User['userid']]){
		$cache[$User['userid']] = $User['userid'];

		$Data .= ParseTemplate($Template,
							array(
								'userid'     => $User['userid'],
								'username'   => $User['username'],
							)
			);
		}
	}

unset($cache);
doOutput();
}

function doOutput(){
global $Data, $vbulletin;

echo ParseTemplate($Data,"",1);
$Data = "";
}
?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.