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
https://forums.phpfreaks.com/topic/98778-mulltipal-ids-required/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.