I have tested this script on phpbb2 and phpbb3 and it works like a charm. If you have one, make sure you exclude your private section (for example t.forum_id != 4, where 4 is your private forum’s number). You can include this in your blog’s sidebar, a portal or a website. You can apply different filters by playing with the WHERE condition. Basically this script generates a table which is populated from the phpbb’s database according to the conditions which are imposed.
Of course you can customize it’s output by modifying the $query variable. If you are a newbie and need a quick php Where clause reference as you want to get a hang of the operators, check this one out: PHP MySQL Where Clause
Finally here’s the script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?php // How Many Topics you want to display? $topicnumber = 5; // Scrolling towards up or down? $scroll = "up"; // Change this to your phpBB path $urlPath = "/forum"; // Database Configuration (Where your phpBB config.php file is located) include 'forum/config.php'; $table_topics = $table_prefix. "topics"; $table_forums = $table_prefix. "forums"; $table_posts = $table_prefix. "posts"; $table_users = $table_prefix. "users"; $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("Could not connect"); mysql_select_db("$dbname") or die("Could not select database"); $query = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username FROM $table_topics t, $table_forums f, $table_posts p, $table_users u WHERE t.topic_id = p.topic_id AND f.forum_id = t.forum_id AND t.forum_id != 4 AND t.topic_status <> 2 AND p.post_id = t.topic_last_post_id AND p.poster_id = u.user_id ORDER BY p.post_id DESC LIMIT $topicnumber"; $result = mysql_query($query) or die("Query failed"); print "<marquee id=\"recent_topics\" behavior=\"scroll\" direction=\"$scroll\" height=\"170\" scrolldelay=\"100\" scrollamount=\"2\" onMouseOver=\"document.all.recent_topics.stop()\" onMouseOut=\"document.all.recent_topics.start()\"> <table cellpadding='3' cellSpacing='2' width='350'>"; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "<tr valign='top'><td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#FFCC00\"><b><a href=\"$urlPath/viewtopic.php?f=$row[forum_id]&t=$row[topic_id]&p=$row[post_id]#p$row[post_id]\" TARGET=\"_blank\">" . $row["topic_title"] . "</a></td></font></b><td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#C0C0C0\"> by: <a href=\"$urlPath/memberlist.php?mode=viewprofile&u=$row[user_id]\" TARGET=\"_blank\">" . $row["username"] . "</td><td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><font color=\"#C0C0C0\">" . date('F j, Y, g:i a', $row["post_time"]) . "</td></tr></font>"; } print "</table></marquee>"; mysql_free_result($result); mysql_close($link); ?> |
Feel free to use it as you want. If you have any questions just drop a comment.
Subscribe to my feed.
Stumble It! • Digg This! • Save to del.icio.us • Add to Mixx! • Sphinn It! • Email this




Pure excellence! Thanks!