D12Eminem989 Posted March 31, 2008 Share Posted March 31, 2008 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 = ""; } ?> Quote Link to comment Share on other sites More sharing options...
D12Eminem989 Posted March 31, 2008 Author Share Posted March 31, 2008 I fixed it thanks to our god ToonMariner. Thanks bud! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.