risestar
01-17-2011, 11:53 PM
I had a script that would call contents of posts from the db and display it on a regular php page sort of like a content mgmt script, however it broke with the introduction of Vbulletin 3.5+. I had a work around that worked by just using the old vbulletin files that it required however when I upgraded to php5 that broke also due to the old files not being compatible with php5.
I need to port this script to work with Vbulletin 3.8 / 4
I tried to modify it to update the way vbparse changed but just get a blank page
---------------------------------------------
<?php
// See bottom for more instructions.
// We need vB global for bbcode parsing.
// This scripts needs to be in the forums directory or you need to uncomment the chdir
// lines (and edit them).
chdir("/path/to/your/forums/");
require_once("./global.php");
chdir("/path/to/your/forums");
// VARIABLES TO SET
// hostname or ip of server
$servername="localhost";
// username and password to log onto db server
$dbusername="dbusername";
$dbpassword="dbpassword";
// name of database
$dbname="forums";
//path to your forums
$forumspath = "http://forums.someforum.com";
function writenews($cats, $filetw, $newsitems=7){
global $servername;
global $dbusername;
global $dbpassword;
global $dbname;
global $forumspath;
//Connect to the database
$connection = mysql_connect("$servername","$dbusername","$dbpassword") or die ("Cannot connect to server.");
$db = mysql_select_db("$dbname", $connection) or die ("Could not select database.");
//Create SQL statement this gets the title poster and other bits
$sql = "SELECT threadid, title, forumid, attach, replycount, postusername, postuserid, lastposter, dateline, iconid FROM thread WHERE forumid IN ($cats) AND sticky = '0' ORDER BY threadid DESC LIMIT $newsitems";
//execute sql query
$sql_result = mysql_query($sql, $connection) or die ("Could not execute query.");
if (!$sql_result) {
echo "Could not get news.";
}
$attachment=0;
while ($row = mysql_fetch_array($sql_result)) {
$threadid = $row["threadid"];
$title = $row["title"];
$forumid = $row["forumid"];
$attachment = $row["attach"];
$replycount = $row["replycount"];
$postusername = $row["postusername"];
$postuserid = $row["postuserid"];
$lastposter = $row["lastposter"];
$iconid = $row["iconid"];
$dateline = $row["dateline"];
//create the second SQL statement to pull the post from the thread it resides in
$sql2 = "SELECT postid, threadid, username, userid, title, dateline, pagetext, iconid FROM post WHERE threadid = \"$threadid\" ORDER BY postid ASC LIMIT 1";
//This gets the text of the post
$sql_result2 = mysql_query($sql2, $connection) or die ("Could not execute query in second sql statement.");
if (!$sql_result2) {
echo "Could not get news.";
}
while ($row2 = mysql_fetch_array($sql_result2)) {
$ptext = $row2["pagetext"];
$atlink= $row2["postid"];
//create a third conditional SQL statement to pull the image attachment from the thread
$sql3="";
$attachmentshow="";
if ($attachment == "1")
{
$sql3 = mysql_query("SELECT attachmentid, dateline, filename FROM attachment WHERE postid=$atlink");
while($attachments_get=mysql_fetch_array($sql3))
{
$attachmentid = $attachments_get['attachmentid'];
}
$attachmentshow = ("<img src=\"$forumspath/attachment.php?attachmentid=$attachmentid\" width=\"100\" height=\"100\" align=\"left\" hspace=\"15\" vspace=\"0\"/>");
}
else
{echo "";
}
//Convert time
$dateposted = date("D j M Y, g:i A",$dateline);
//Comments or comment depending on number of replies
if ($replycount==1) {
$commenttext = "Comment";
}
else {
$commenttext = "Comments";
}
// This parses the bbcode
require_once("./includes/functions_bbcodeparse.php");
$outxt=parse_bbcode2($ptext,"1","1","1","1","1");
// Uncomment next 4 lines if you want to limit the amount of text displayed to the first paragraph.
// $trimmed = explode("<br />", $outxt);
//$outxt=$trimmed[0];
//$trimmed = explode("</p>", $outxt);
//$outxt=$trimmed[0];
//$outxt=substr($outxt,0,1000);
// This is optional. It strips out unecessary tags if you wish and leaves those specified behind
$outxt = strip_tags($outxt, '<a>,<b>,<strong>,<i>,<em>,<br />,<br>,<p>');
// This sql gets the title of the forum
$sql3 = "SELECT title FROM forum WHERE forumid = \"$forumid\" LIMIT 1";
$sql_result3 = mysql_query($sql3, $connection) or die ("Could not execute query in second sql statement.");
$row3 = mysql_fetch_array($sql_result3);
$forumname = $row3["title"];
//EDIT the HTML OUTPUT HERE
$towrite .= "
<table border=0 width=600 cellpadding=0 class=tborder1>
<tr>
<td>
<!-- Overall Table -->
<table border=0 width=100% cellpadding=8>
<tr>
<td align=\"right\" class=\"smallfrontpagefont\">
$forumname
</td>
<tr>
<td>
<a class=\"contentheading\" href=\"$forumspath/showthread.php?s=&threadid=$threadid\">$title</a><P>
</td></tr>
<td align=\"left\" class=\"tablefont\">
Posted by : $postusername , Lounge0101 Administrator<P><br>
</td>
<tr>
<td class=\"tablefont\" valign=\"top\">
$attachmentshow $outxt <b>...</b>
</td><tr>
<td align=\"right\">
<a class=\"tablefont\" href=\"$forumspath/showthread.php?s=&threadid=$threadid\">[ Read More ]</a><P>
</td>
</tr>
<td>
<table border=0 width=\"100%\">
<tr>
<td align=\"left\" class=\"tablefont\">
<img src=\"$forumspath/images/icons/icon1.gif\"> Posted on <i><font color=#333333>$dateposted</i></font>
</td>
<td align=\"right\">
<a href=\"$forumspath/newreply.php?do=newreply&t=$threadid\"><img src=\"$forumspath/images/reply_small.gif\" title=\"Post a reply to this article\" border=\"0\"></a>
</td>
</tr>
</tr></table>
</tr></table>
<center><hr></center>
<!-- /overall table -->
</td></tr></table>
<P>
";
// END HTML EDIT
}
}
//disconnect
//mysql_free_result($sql_result);
//mysql_close($connection);
// If you want to wite out to a file - good idea to reduce db load
// Then uncomment this section and edit appropriately. You need
// to have a folder to stores the output file and they need to writeable (chmod 666)
// $filetw is name of output file.
// You may then want to call this file by cron so thing update reguarly.
//$tmpfile = fopen("/path/to/storafe/folder/".$filetw."","w+");
//$fp = fwrite($tmpfile,$towrite);
//fclose($tmpfile);
//flush ();
// If you are writing to a file comment the line below out.
echo $towrite;
}
// This calls the writenews function. Done as a function so can be called multiple times.
// First variable is forum id to get news from. One forum is like 1 and multiple forums
// like 1,2,3. Output file onyl applies if you are outputting a file (see just above)
// The last variable is the number of news itmes to grab / display. Deafults to 10.
@writenews("237,238,239,240,241,260", "outputfile.txt","7");
// Want another write out (useful for files etc?) just call function again as below
// @writenews("16,17", "outputfile.txt","10");
?>
---------------------------------------------
I need to port this script to work with Vbulletin 3.8 / 4
I tried to modify it to update the way vbparse changed but just get a blank page
---------------------------------------------
<?php
// See bottom for more instructions.
// We need vB global for bbcode parsing.
// This scripts needs to be in the forums directory or you need to uncomment the chdir
// lines (and edit them).
chdir("/path/to/your/forums/");
require_once("./global.php");
chdir("/path/to/your/forums");
// VARIABLES TO SET
// hostname or ip of server
$servername="localhost";
// username and password to log onto db server
$dbusername="dbusername";
$dbpassword="dbpassword";
// name of database
$dbname="forums";
//path to your forums
$forumspath = "http://forums.someforum.com";
function writenews($cats, $filetw, $newsitems=7){
global $servername;
global $dbusername;
global $dbpassword;
global $dbname;
global $forumspath;
//Connect to the database
$connection = mysql_connect("$servername","$dbusername","$dbpassword") or die ("Cannot connect to server.");
$db = mysql_select_db("$dbname", $connection) or die ("Could not select database.");
//Create SQL statement this gets the title poster and other bits
$sql = "SELECT threadid, title, forumid, attach, replycount, postusername, postuserid, lastposter, dateline, iconid FROM thread WHERE forumid IN ($cats) AND sticky = '0' ORDER BY threadid DESC LIMIT $newsitems";
//execute sql query
$sql_result = mysql_query($sql, $connection) or die ("Could not execute query.");
if (!$sql_result) {
echo "Could not get news.";
}
$attachment=0;
while ($row = mysql_fetch_array($sql_result)) {
$threadid = $row["threadid"];
$title = $row["title"];
$forumid = $row["forumid"];
$attachment = $row["attach"];
$replycount = $row["replycount"];
$postusername = $row["postusername"];
$postuserid = $row["postuserid"];
$lastposter = $row["lastposter"];
$iconid = $row["iconid"];
$dateline = $row["dateline"];
//create the second SQL statement to pull the post from the thread it resides in
$sql2 = "SELECT postid, threadid, username, userid, title, dateline, pagetext, iconid FROM post WHERE threadid = \"$threadid\" ORDER BY postid ASC LIMIT 1";
//This gets the text of the post
$sql_result2 = mysql_query($sql2, $connection) or die ("Could not execute query in second sql statement.");
if (!$sql_result2) {
echo "Could not get news.";
}
while ($row2 = mysql_fetch_array($sql_result2)) {
$ptext = $row2["pagetext"];
$atlink= $row2["postid"];
//create a third conditional SQL statement to pull the image attachment from the thread
$sql3="";
$attachmentshow="";
if ($attachment == "1")
{
$sql3 = mysql_query("SELECT attachmentid, dateline, filename FROM attachment WHERE postid=$atlink");
while($attachments_get=mysql_fetch_array($sql3))
{
$attachmentid = $attachments_get['attachmentid'];
}
$attachmentshow = ("<img src=\"$forumspath/attachment.php?attachmentid=$attachmentid\" width=\"100\" height=\"100\" align=\"left\" hspace=\"15\" vspace=\"0\"/>");
}
else
{echo "";
}
//Convert time
$dateposted = date("D j M Y, g:i A",$dateline);
//Comments or comment depending on number of replies
if ($replycount==1) {
$commenttext = "Comment";
}
else {
$commenttext = "Comments";
}
// This parses the bbcode
require_once("./includes/functions_bbcodeparse.php");
$outxt=parse_bbcode2($ptext,"1","1","1","1","1");
// Uncomment next 4 lines if you want to limit the amount of text displayed to the first paragraph.
// $trimmed = explode("<br />", $outxt);
//$outxt=$trimmed[0];
//$trimmed = explode("</p>", $outxt);
//$outxt=$trimmed[0];
//$outxt=substr($outxt,0,1000);
// This is optional. It strips out unecessary tags if you wish and leaves those specified behind
$outxt = strip_tags($outxt, '<a>,<b>,<strong>,<i>,<em>,<br />,<br>,<p>');
// This sql gets the title of the forum
$sql3 = "SELECT title FROM forum WHERE forumid = \"$forumid\" LIMIT 1";
$sql_result3 = mysql_query($sql3, $connection) or die ("Could not execute query in second sql statement.");
$row3 = mysql_fetch_array($sql_result3);
$forumname = $row3["title"];
//EDIT the HTML OUTPUT HERE
$towrite .= "
<table border=0 width=600 cellpadding=0 class=tborder1>
<tr>
<td>
<!-- Overall Table -->
<table border=0 width=100% cellpadding=8>
<tr>
<td align=\"right\" class=\"smallfrontpagefont\">
$forumname
</td>
<tr>
<td>
<a class=\"contentheading\" href=\"$forumspath/showthread.php?s=&threadid=$threadid\">$title</a><P>
</td></tr>
<td align=\"left\" class=\"tablefont\">
Posted by : $postusername , Lounge0101 Administrator<P><br>
</td>
<tr>
<td class=\"tablefont\" valign=\"top\">
$attachmentshow $outxt <b>...</b>
</td><tr>
<td align=\"right\">
<a class=\"tablefont\" href=\"$forumspath/showthread.php?s=&threadid=$threadid\">[ Read More ]</a><P>
</td>
</tr>
<td>
<table border=0 width=\"100%\">
<tr>
<td align=\"left\" class=\"tablefont\">
<img src=\"$forumspath/images/icons/icon1.gif\"> Posted on <i><font color=#333333>$dateposted</i></font>
</td>
<td align=\"right\">
<a href=\"$forumspath/newreply.php?do=newreply&t=$threadid\"><img src=\"$forumspath/images/reply_small.gif\" title=\"Post a reply to this article\" border=\"0\"></a>
</td>
</tr>
</tr></table>
</tr></table>
<center><hr></center>
<!-- /overall table -->
</td></tr></table>
<P>
";
// END HTML EDIT
}
}
//disconnect
//mysql_free_result($sql_result);
//mysql_close($connection);
// If you want to wite out to a file - good idea to reduce db load
// Then uncomment this section and edit appropriately. You need
// to have a folder to stores the output file and they need to writeable (chmod 666)
// $filetw is name of output file.
// You may then want to call this file by cron so thing update reguarly.
//$tmpfile = fopen("/path/to/storafe/folder/".$filetw."","w+");
//$fp = fwrite($tmpfile,$towrite);
//fclose($tmpfile);
//flush ();
// If you are writing to a file comment the line below out.
echo $towrite;
}
// This calls the writenews function. Done as a function so can be called multiple times.
// First variable is forum id to get news from. One forum is like 1 and multiple forums
// like 1,2,3. Output file onyl applies if you are outputting a file (see just above)
// The last variable is the number of news itmes to grab / display. Deafults to 10.
@writenews("237,238,239,240,241,260", "outputfile.txt","7");
// Want another write out (useful for files etc?) just call function again as below
// @writenews("16,17", "outputfile.txt","10");
?>
---------------------------------------------