Page 1 of 1

Re: PHPBB forum posts on homepage

Posted: Thu Feb 10, 2011 5:05 pm
by kazimierz
You just need new UDT with a bit of php:

Code: Select all

    // How Many Topics you want to display?
    $topicnumber = 6;
    // 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");
    mysql_set_charset('utf8',$link);
    $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

    //Which forums should be ommited
    //ID may be found in forum URL
    t.forum_id != 13 AND 
    t.forum_id != 41 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 "<div style=\"margin:auto;\">\n";
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo  "<div>";

    //prints forum name before topic
    //may be removed
    if ($row[forum_id] == 1) echo "ForumName:";

    //substr below cuts topic name after 40th char
    echo "\n<a href=\"$urlPath/viewtopic.php?f=$row[forum_id]&t=$row[topic_id]&p=$row[post_id]#p$row[post_id]\">" .
    substr($row["topic_title"],0,40) .
    "</a>\n<div style=\"float:right;font-size:0.8em;\"><a href=\"$urlPath/memberlist.php?mode=viewprofile&u=$row[user_id]\">" .
    $row["username"] .
    "</a>\n" .
    date('d.m, H:i ', $row["post_time"]) .
    "</div>\n</div>";
    }
    print "</div>";
    mysql_free_result($result);

Re: PHPBB forum posts on homepage

Posted: Wed Nov 09, 2011 1:30 pm
by Jude
That looks cool, but can you explain me this bit more precisley – I really don't understand what I should do next.

TIA

Re: PHPBB forum posts on homepage

Posted: Wed Nov 09, 2011 3:54 pm
by Wishbone
Create a UDT (User defined tag) called phpBB. Somewhere in your home page template, call {phpBB}... That's it. Might have to change some of the variables at the beginning of the UDT to match your application.

Re: PHPBB forum posts on homepage

Posted: Wed Nov 09, 2011 6:36 pm
by Jude
Thanks Wishbone,

this helped me already somewhere – atleast up to the line

Code: Select all

mysql_select_db("$dbname") or die("Could not select database");
is running OK, but after that something goes wrong, because I get reply "Query failed".

If I'm understanding everything right, I should check the from number from the URL and I have for ex. a forum "viewforum.php?f=1" and subforum "viewforum.php?f=4", so I should change lines in following way:

Code: Select all

//Which forums should be ommited
    //ID may be found in forum URL
    t.forum_id != 1 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");
There must be something wrong, but I can't figure out what, but the result is "Query failed". If someone can tell me where I'm doing wrong I would appreciate it a lot.

TIA

-jude

Re: PHPBB forum posts on homepage

Posted: Wed Nov 09, 2011 6:59 pm
by Wishbone
Remember that those two forums is on the omit list, not the forums you want.. Change the != to = if you want it to check those ones.

Execute:

echo $query

before the mysql_query line to see the query created before it fails..... Run that query in phpmyadmin to see what the error message is... Do you know mysql syntax? It would help for debugging.