Page 1 of 2

Forum Link to Topic Title

Posted: 14 Apr 2012, 09:36
by Stoker
Forum Link to Topic Title
Written by BartVB and 4_seven

This is one of the forgotten snippets.
It changes internal links to topic title.

Internal forum link example: Top Stats
Internal forum topic example: viewtopic.php?f=37&t=1346
Internal forum post example: General Error (Post by KreatorTeam #8664)

Open: includes/functions_content.php
Find:

Code: Select all

$text            = $relative_url; 
Replace with:

Code: Select all

$text            = fetch_forumtitle($url);
Find:

Code: Select all

$text    = htmlspecialchars($text);
Replace with:

Code: Select all

$text    = str_replace('&', '&', $text);
Find:

Code: Select all

/**
 * make_clickable function
Add before:

Code: Select all

 /**
    *  BartVB  Show actual forumname or topic title instead of link to forum URLs
    */
    function fetch_forumtitle($url)
    {
        global $db, $auth;

        // Search for relevant URL parameters (preceded by '?' or 'amp;'
        if(preg_match_all('/(?:\?|&)([ptf])=(\d+)/', $url, $matches))
        {
            $post_id = $topic_id = $forum_id = 0;
            foreach($matches[1] as $set => $param)
            {
                switch ($param)
                {
                    case 'p':
                        $post_id = $matches[2][$set];
                        break;
                    case 't':
                        $topic_id = $matches[2][$set];
                        break;
                    case 'f':
                        $forum_id = $matches[2][$set];
                        break;
                }
            }

            if ($forum_id != 0 && !$auth->acl_get('f_read', $forum_id))
            {
                return $url;
            }

            if ($topic_id != 0 || $post_id != 0)
            {
                $sql = "SELECT
                        t.forum_id, topic_title, forum_name " . ($post_id != 0 ? ", username" : "") . "
                    FROM " .
                        ($post_id != 0 ? POSTS_TABLE . " p, " . USERS_TABLE . " u, " : "") .
                        TOPICS_TABLE . " t
                        LEFT JOIN " . FORUMS_TABLE . " f ON (t.forum_id = f.forum_id)
                    WHERE " .
                        ($post_id != 0 ? "post_id = $post_id AND p.topic_id = t.topic_id AND p.poster_id = u.user_id " : "topic_id = " . $topic_id);
                $result = $db->sql_query($sql);
                if($row = $db->sql_fetchrow($result))
                {
                    if (!$auth->acl_get('f_read', $row['forum_id']))
                    {
                        return $url;
                    }

                    $username = ($post_id != 0) ? $row['username'] . " @ " : '';
                    $forum_abbr = (preg_match('/^(\[.+\])/', $row['forum_name'], $matches)) ? $matches[1] . ' ' : '';
                    return $username . $forum_abbr . $row['topic_title'];
                }
            }
            elseif ($forum_id != 0)
            {
                $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = " . $forum_id;
                $result = $db->sql_query($sql);
                if ($row = $db->sql_fetchrow($result))
                {
                    return $row['forum_name'];
                }
            }
        }

        return $url;
    } 

Forum Link to Topic Title

Posted: 14 Apr 2012, 12:03
by martin123456
This should be default in phpbb but it's not.
:D

Forum Link to Topic Title

Posted: 14 Apr 2012, 23:03
by kevinviet
Thanks Stoker :thumb:

Forum Link to Topic Title

Posted: 18 May 2012, 07:34
by kevinviet
After the edited, on my board the link with www is work great but the link without www doesn't work. Any idea fixing it Stoker ?

Forum Link to Topic Title

Posted: 18 May 2012, 08:05
by Stoker
Nope, but you can ask the author here: http://www.phpbb.com/community/viewtopi ... &t=2092969

Forum Link to Topic Title

Posted: 18 May 2012, 08:13
by kevinviet
Thanks Stoker, will go there :D

Forum Link to Topic Title

Posted: 21 Jun 2012, 23:15
by Solidjeuh
Is this also possible for the phpbb arcade?
For the announcements in Mchat when new games are added..
Cause those announcements still shows the link, And not the topic tittle

Forum Link to Topic Title

Posted: 22 Jun 2012, 06:46
by Stoker
Try ask the arcade author. He might have the solution.

Forum Link to Topic Title

Posted: 22 Jun 2012, 07:51
by Nully
I like it. Thanks Stoker :D

Forum Link to Topic Title

Posted: 14 Aug 2013, 06:52
by Rhyno
This still work on 3.0.11 ?