1

Topic: Предыдущая и следующая тема для PunBB

Недавно один пользователь на официальном форуме PunBB задал вопрос как сделать навигацию к предыдущей ( старой ) и следующей теме. И я задумался, а почему бы и нет. Оказалось, что решение уже давно найдено. Его реализовал Sempai. Кому интересно можете скачать готовый вариант по ссылке.

Для тех кто любит ковыряться в шаблонах и вживую внедрять код, привожу еще один вариант.


https://punbb.softplaza.net/uploads/images/2016/08/13/screenshot.13-08-2016_01.10.56.png


Вот код, думаю ничего сложного нет.
Где нибудь до подключения header.php вставьте этот кусок:

    $query = array(
        'SELECT'    => 't.id, t.subject',
        'FROM'        => 'topics AS t',
        'WHERE'        => 't.forum_id='.$cur_topic['forum_id']
    );
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    
    $back = array();
    $next = array();
    while($topics = $forum_db->fetch_assoc($result))
    {
        if($topics['id'] < $id)
            $back[$topics['id']] = $topics['subject'];
        else if ($topics['id'] > $id)
            $next[$topics['id']] = $topics['subject'];
    }
    
    $back_id = max(array_keys($back));
    $back_subject = $back[$back_id];
    
    $next_id = min(array_keys($next));
    $next_subject = $next[$next_id];
    
    $tback = !empty($back_id) ? '<a href="'.forum_link($forum_url['topic'], array($back_id, sef_friendly($back_subject))).'" title="Old topic">'.$back_subject.'&nbsp;&#9668;&#9668;&nbsp;</a>' : '';
    
    $tnext = !empty($next_id) ? '<a href="'.forum_link($forum_url['topic'], array($next_id, sef_friendly($next_subject))).'" title="Next topic">&nbsp;&#9658;&#9658;&nbsp;'.$next_subject.'</a>' : '';

далее в нужном месте просто выводите переменные $tback и $tnext

2

Re: Предыдущая и следующая тема для PunBB

PunBB wrote:

далее в нужном месте просто выводите переменные $tback и $tnext

подскажите пожалуйста, в каком файле это нужно вставить и куда именно? Спасибо.

3

Re: Предыдущая и следующая тема для PunBB

Andrey wrote:

в каком файле это нужно вставить и куда именно

файл viewtopic.php

Вставьте где нибудь возле хука

($hook = get_hook('vt_end')) ? eval($hook) : null;