View Single Post
  #1  
Old 01-17-2011, 11:53 PM
risestar risestar is offline
 
Join Date: Oct 2001
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default latest posts and content on non-vb page help

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","$dbpass word") 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=&amp;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=&amp;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\">&nbsp;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");
?>

---------------------------------------------
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01291 seconds
  • Memory Usage 1,801KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete