Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #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
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:18 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.09640 seconds
  • Memory Usage 2,335KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadedmode.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete