PDA

View Full Version : Here is some code for adding recent threads on website front page


fungku
12-29-2012, 04:54 AM
THIS (https://vborg.vbsupport.ru/showthread.php?t=236404&highlight=recent+threads) widget thread by cory_booth (https://vborg.vbsupport.ru/member.php?u=154316) helped get me started, but isn't what I needed, so this is a heavily modified version.

Here is the php for displaying recent threads on your front page (or any page), not as VB CMS.

$mysqli = new mysqli(VB_HOST, VB_USER, VB_PASSWORD, VB_NAME);

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "
SELECT thread.threadid, thread.title, thread.dateline, thread.lastpost, thread.lastposter, thread.lastposterid, thread.visible, thread.open, thread.postusername, thread.postuserid, thread.replycount, thread.views, forum.forumid, forum.title as forumtitle
FROM thread AS thread
LEFT JOIN forum AS forum ON ( forum.forumid = thread.forumid )
WHERE NOT ISNULL(threadid) AND forum.forumid NOT IN (3,10,11,12,13,14,15,16,19) AND visible = '1' AND open!='10'
ORDER BY lastpost DESC
LIMIT 0, 10
";

if ($result = $mysqli->query($query)) {

while ($row = $result->fetch_object())
{
$row->lastpostdate = date('M jS', $row->lastpost);
$row->lastposttime = date('g:i a', $row->lastpost);

echo
<<<END
<div class="recent-thread">
<p class="thread-title">
<a href="forum/showthread.php?t={$row->threadid}&goto=newpost">{$row->title}</a>
</p>
<p class="thread-details">
Last Post By: <a href="forum/member.php?u={$row->lastposterid}">{$row->lastposter}</a>
</p>
<p class="thread-details">
Forum: <a href="forum/forumdisplay.php?f={$row->forumid}">{$row->forumtitle}</a> | Replies: {$row->replycount}
</p>
<p class="thread-details">
Posted: {$row->lastpostdate} at: {$row->lastposttime}
</p>
</div>
END;

}

// free result set
$result->close();
}

// close connection
$mysqli->close();


:up:

The line with:
WHERE NOT ISNULL(threadid) AND forum.forumid NOT IN (3,10,11,12,13,14,15,16,19) AND visible = '1' AND open!='10'
Is where you would put the forumids of the forums you want to exclude from showing up.

Hope this is useful for somebody.

Since I found the original thread useful and this is a modified version of that, I thought I'd share as well.

add your own CSS, and edit the HTML, to syle it however you want.

Cheers,

--------------- Added 1356761517 at 1356761517 ---------------

I tried to edit the above php code block to stop the word-wrap making it messy to read, but I've given up.

You can figure it all out easy enough it is short and sweet.

If this has helped you at all, if you have any questions, or if you see ways to improve it, please let me know.

Muhammad Rahman
01-02-2013, 02:14 PM
Can cut off the day when the thread is displayed?
like a CMS Widget ..

fungku
01-02-2013, 06:05 PM
You could probably modify the SQL statement in this line:
WHERE NOT ISNULL(threadid) AND forum.forumid NOT IN (3,10,11,12,13,14,15,16,19) AND visible = '1' AND open!='10'
to also exclude posts older than a certain date.

bing11
04-12-2013, 02:52 AM
You could probably modify the SQL statement in this line:
WHERE NOT ISNULL(threadid) AND forum.forumid NOT IN (3,10,11,12,13,14,15,16,19) AND visible = '1' AND open!='10'
to also exclude posts older than a certain date.
hello
Could limit 1 forum only can show 1 thread?

like we have 10 recent threads here . but must from 10 different forums.