Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Display Last X Posts on front page Details »»
Display Last X Posts on front page
Version: 1.20, by RonHiler RonHiler is offline
Developer Last Online: Aug 2013 Show Printable Version Email this Page

Version: 2.3.x Rating:
Released: 04-01-2005 Last Update: Never Installs: 3
 
No support by the author.

Hey all,

This MUST have been done, I see it was requested something like a million times by various people, and it's probably the single most common hack ever done, heh. But surprisingly, I could not for the life of me find a mod that did what I wanted.

What I wanted is very simple. Display the last 10 postings on my front page. Not by thread. Not the last 10 posts of the last 10 threads, but the LAST 10 POSTS, even when they happen to be in the same thread.

I achieved this by modifying a mod that already existed (I actually installed it thinking it did what I wanted, but in fact it only displayed the last 10 posts that were in different threads). It's not my intent to take full credit for this mod, the groundwork was already laid by someone else (I'd provide a link to the original, but I can't seem to find it now, grrr, perhaps somebody knows it and can provide the link).

So, here is my version. It provides the time, thread name, and poster name, with links to the post and to the user profile. You can see an example of it working on my front page (www.rjcyberware.com). The only thing I don't like is that it uses server time in the display. I'd like to change that to the user local time, but I'll have to look over the php time commands to see if it's possible to do.

Here is the code
Code:
<?php
/* This script shows the last X numbers of posts (titles) posted last on a non-VB page. You may customize it in any way you wish. */

## CUSTOMIZE SETTINGS FOR YOUR SITE ##
$db_host = "localhost"; // Change this if your MySQL database host is different.
$db_name = "DATABASE"; // Change this to the name of your database.
$db_user = "USER"; // Change this to your database username.
$db_pw = "PASSWORD"; // Change this to your database password.
$db_prefix="PREFIX";  //Change this to your database prefix, if any.  Leave blank if you don't use a prefix.

$forum_url = "http://www.YOURSITE.com/forums"; // Change this to reflect to your forum's URL.
$limit = "10"; // Number of posts displayed.
$titlecolor = "#000000"; // This is the color of the title (first line)
$linkcolor = "#404040"; // This is the color of the linked text (second and third line)
$backgroundcolor = "#ffffff"; // Set this if you want a different background color than the default, otherwise leave empty
$txtlimit = "100"; // This is the character limit.
#######################################

// Connecting to your database
mysql_connect($db_host, $db_user, $db_pw)
OR die ("Cannot connect to your database");
mysql_select_db($db_name) OR die("Cannot connect to your database");

$table_post = $db_prefix."post";
$table_thread = $db_prefix."thread";
$result = mysql_query("SELECT postid FROM $table_post WHERE visible=1");
$num_rows = mysql_num_rows($result);
echo "<CENTER><U><B>Latest Forum Activity</U><BR>";
echo "Total Posts: $num_rows</CENTER></B><BR><BR>";

// Below is the beginning of a table. If you feel you don't need it, you may remove it. ?>
<table border="1" cellspacing="0" bordercolordark="white" bordercolorlight="black" width="100%">

<?php
if ($limit) {
	$limited = "LIMIT $limit";
}
$post_sql = mysql_query("SELECT postid,threadid,username,userid,dateline FROM $table_post WHERE visible=1 ORDER BY postid DESC $limited");

while($post_get=mysql_fetch_array($post_sql))
{
$dateline= $post_get['dateline'];
$date2 = date ("d M Y h:i a" ,$dateline);
$tid = $post_get['threadid'];
$thread_sql = mysql_query("SELECT title FROM $table_thread WHERE threadid=$tid");
$thread_get = mysql_fetch_array($thread_sql);
$title = $thread_get['title'];
$title = substr($title,0,$txtlimit);
$pid=$post_get['postid'];
$poster = $post_get['username'];
$userid = $post_get['userid'];
//the output line
echo "<tr'><td BGCOLOR=\"$backgroundcolor\">
<font size='2' COLOR=\"$titlecolor\">$date2<BR></font>
<a href=\"$forum_url/showthread.php?p=$pid#post$pid\"><font size='2' LINK=\"$linkcolor\" VLINK=\"$linkcolor\">$title</font></a><BR>
<a href=\"$forum_url/member.php?userid=$userid\"><font size='2' LINK=\"$linkcolor\" VLINK=\"$linkcolor\"><i>$poster</i></font></a>
</td></tr>";
}
echo "</table>";

?>
To use it, save it as a file (as say "DisplayPosts.php", and where you want to display the posts, just add in the line:
<?php include ("/YOURPATH/DisplayPosts.php"); ?>

If anyone has any suggestions for improvements, feel free.

Ron

[EDIT v1.1: Changed code to make the database prefix a modifiable field which gets propigated into the database queries]
[EDIT v1.2: Changed code such that the modifiable fields "$titlecolor" and "$linkcolor" actually do something useful, and added in "$backgroundcolor" to change the table entry backgrounds. Broke up the output line to make it a little easier to read]

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #12  
Old 04-02-2005, 11:01 PM
TCattitude's Avatar
TCattitude TCattitude is offline
 
Join Date: Oct 2004
Location: Chile
Posts: 195
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I saw this hack-mod once.
Is for a non-VB page, that's why it get all that data directly from DB.
And that's why it wont work if you put it direct into a vb-page (in a template for example)
Reply With Quote
  #13  
Old 04-02-2005, 11:28 PM
RonHiler RonHiler is offline
 
Join Date: Mar 2005
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ah, sorry 'bout that. I forgot to mention about prefixes. Tnguy3n is correct, you have to substitute your own database prefix (if any). My prefix for my database tables is "vb_". If you don't use a prefix, change these lines as follows:
$result = mysql_query("SELECT postid FROM vb_post WHERE visible=1");
to
$result = mysql_query("SELECT postid FROM post WHERE visible=1");

$post_sql = mysql_query("SELECT postid,threadid,username,userid,dateline FROM vb_post WHERE visible=1 ORDER BY postid DESC $limited");
to
$post_sql = mysql_query("SELECT postid,threadid,username,userid,dateline FROM post WHERE visible=1 ORDER BY postid DESC $limited");

and

$thread_sql = mysql_query("SELECT title FROM vb_thread WHERE threadid=$tid");
to
$thread_sql = mysql_query("SELECT title FROM thread WHERE threadid=$tid");

(pretty much just what tn said).

Quote:
will this show posts of "secret board" ?
I don't *think* so (the "WHERE visible=1" should prevent non-public posts from showing up, if I understand that database entry correctly), but I haven't actually tested it. Let me know if it doesn't work as intended, and I'll see what I can do. I'll work on the code as well so there's an entry in the "modifiables" section for the database prefix so it's more obvious.

Ron
Reply With Quote
  #14  
Old 04-02-2005, 11:50 PM
Selene Selene is offline
 
Join Date: Feb 2005
Posts: 166
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

ok thxn its working now, how can i change bg color and stuff?
Reply With Quote
  #15  
Old 04-03-2005, 01:06 AM
Selene Selene is offline
 
Join Date: Feb 2005
Posts: 166
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i have tried to use it as a postnuke block, so the block on right side displays the latest forums posts.
but it gives error. the page is working fine from direct url, but when i use it as block it doesnt work. Any suggetions
Reply With Quote
  #16  
Old 04-03-2005, 01:51 AM
RonHiler RonHiler is offline
 
Join Date: Mar 2005
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Updated the code to make the database prefix issue more user friendly.

Selene: What error are you getting with postnuke?

To answer your question about the table color, there's a few ways you can change it. To change the background color, put an entry in the tr field. For the font color, unfortunately, because we are dealing with static text, links, and (possibly) visited links, it's a bit more complex. Also, I've set it up so that you can control the fonts for each field individually, so we have three different fields to deal with (because I have < font > in three seperate places, I don't think you can set the three entries globally, as the < /font > would kill them, so you have to do them one at a time, if I'm not mistaken).

So let's say you wanted black background with white text, the resulting output line would look like this:

echo "<tr bgcolor='black'><td><font size='2' color='white' link='white' vlink='white'>$date2<BR></font><font size='2' color='white' link='white' vlink='white'><a href=\"$forum_url/showthread.php?p=$pid#post$pid\">$title</a></font><font size='2' color='white' link='white' vlink='white'><i><BR><a href=\"$forum_url/member.php?userid=$userid\">$poster</a></i></font></td></tr>";

Ugly, I know. But it should work I haven't tested it though, so I make no promises. You could shorten it a little bit by being more specific for particular lines (for instance, we know the first line (the date) is static text, so there's really no need to set the link or vlink colors there, I'm doing it just for consistency sake).

Hope that helps.

Ron
Reply With Quote
  #17  
Old 04-03-2005, 01:54 AM
Selene Selene is offline
 
Join Date: Feb 2005
Posts: 166
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi Ron, gr8 ! i will try that out so thats sorted! well its just when i try to make the latest forums page open as block using php in postnuke i get error:

u can check http://67.19.62.198/post/

i also opened a thread on postnuke site : http://forums.postnuke.com/index.php...topic&p=154711


Otherwise gr8 and useful hack! and good work
Reply With Quote
  #18  
Old 04-03-2005, 09:12 AM
hendri's Avatar
hendri hendri is offline
 
Join Date: Dec 2004
Location: Jakarta, Indonesia
Posts: 84
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Selene
Hi Ron, gr8 ! i will try that out so thats sorted! well its just when i try to make the latest forums page open as block using php in postnuke i get error:

u can check http://67.19.62.198/post/

i also opened a thread on postnuke site : http://forums.postnuke.com/index.php...topic&p=154711


Otherwise gr8 and useful hack! and good work
done no problem already !
Reply With Quote
  #19  
Old 04-03-2005, 10:05 AM
hendri's Avatar
hendri hendri is offline
 
Join Date: Dec 2004
Location: Jakarta, Indonesia
Posts: 84
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by hendri
done no problem already !
www.aroclubindonesia.com

arowana club indonesia !
Reply With Quote
  #20  
Old 04-03-2005, 11:43 AM
Selene Selene is offline
 
Join Date: Feb 2005
Posts: 166
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hendri i still cant get it to work with postnuke as block. can u see the url in my previous post and check the error. wud be nice if I can get it to work in postnuke
Reply With Quote
  #21  
Old 04-03-2005, 06:31 PM
jugo jugo is offline
 
Join Date: Feb 2004
Location: Reading your emails.
Posts: 573
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've had something like this on my site for a while: http://www.s3squad.com

Check these links out:
https://vborg.vbsupport.ru/showthread.php?t=62823
https://vborg.vbsupport.ru/showthread.php?t=62624


But noine that use the built in vB functions. Would be nice.
Reply With Quote
Reply


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 02:18 AM.


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.04583 seconds
  • Memory Usage 2,315KB
  • Queries Executed 25 (?)
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
  • (1)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (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_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • 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
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete