Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2011-08-29 18:17:35

alexkotov
Участник
Зарегистрирован: 2011-08-23
Сообщений: 11

Следующая и предыдущая тема

Во всех движках есть модуль Следующий и предыдущий топик, + полезно для перелинковки??? Кто подскажет как воплотить. Все спасибо за ответы

Offline

#2 2011-08-29 18:46:11

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Следующая и предыдущая тема

@alexkotov, как определяются предыдущая и следующая темы?
По номеру темы, по номеру темы этого форума, по последнему сообщению и как-то иначе.

Offline

#3 2011-08-29 18:53:30

alexkotov
Участник
Зарегистрирован: 2011-08-23
Сообщений: 11

Re: Следующая и предыдущая тема

По номеру  в котором находиться юзер??? Что-бы тематичность более менее соблюдалась

Offline

#4 2011-08-30 07:42:37

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Следующая и предыдущая тема

По номеру  в котором находиться юзер???

Номер темы, которая открыта. Тогда берутся ближние по номерам темы, которые существуют.

Что-бы тематичность более менее соблюдалась

Аналогично первому, но темы берутся только из того же раздела.

Offline

#5 2011-08-30 08:03:17

Luca
Участник
Зарегистрирован: 2009-10-08
Сообщений: 164

Re: Следующая и предыдущая тема

Лучше перелинковку IMHO сделать так. Плагин ищет совпадения с названием другого топика, и если совпадает, то вставляет ссылку в эту тему.

Offline

#6 2011-08-30 12:14:49

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Следующая и предыдущая тема

@Luca, нагрузка на сервер будет бешеная.
Если делать просто предыдущая и следующая темы, то можно на странице две ссылки без расчетов помещать, которые ведут на отдельный файл, а файл уже ищет нужную тему.

Offline

#7 2011-08-30 13:12:56

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Следующая и предыдущая тема

Вот файл go.php

<?php

/**
 * Copyright (C) 2011 Visman ([email protected])
 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 */

define('PUN_QUIET_VISIT', 1);

define('PUN_ROOT', dirname(__FILE__).'/');
require PUN_ROOT.'include/common.php';

if ($pun_user['g_read_board'] == '0')
    message($lang_common['No view']);

$tid = isset($_GET['tid']) ? intval($_GET['tid']) : 0;
$go = isset($_GET['go']) ? $_GET['go'] : '';
if ($tid < 1 || ($go != 'next' && $go != 'prev'))
    message($lang_common['Bad request']);

$result = $db->query('SELECT t.forum_id FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$tid.' AND t.moved_to IS NULL') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());

if (!$db->num_rows($result))
    message($lang_common['Bad request']);

$fid = $db->result($result);

if ($go == 'next')
{
    $result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t WHERE t.id>'.$tid.' AND t.forum_id='.$fid.' LIMIT 1') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
    if (!$db->num_rows($result))
        $result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t WHERE t.forum_id='.$fid.' LIMIT 1') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
}
else
{
    $result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t WHERE t.id<'.$tid.' AND t.forum_id='.$fid.' ORDER BY id DESC LIMIT 1') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
    if (!$db->num_rows($result))
        $result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t WHERE t.forum_id='.$fid.' ORDER BY id DESC LIMIT 1') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
}

$tid2 = $db->result($result);
header('Location: viewtopic.php?id='.$tid2);
exit;

Позволяет сделать перебор в пределах раздела.
На странице темы должно быть две ссылки.
Для предыдущей темы - go.php?tid=НОМЕР ТЕКУЩЕЙ ТЕМЫ&go=prev
Для следующей темы - go.php?tid=НОМЕР ТЕКУЩЕЙ ТЕМЫ&go=next

Offline

#8 2011-08-30 14:39:54

alexkotov
Участник
Зарегистрирован: 2011-08-23
Сообщений: 11

Re: Следующая и предыдущая тема

Спасибо , а как сделать ссылки на следующую и предыдущую в viewtopic.php на go.pho <a href=??????, как настроить вывод спасибо

Offline

#9 2011-08-30 15:08:42

alexkotov
Участник
Зарегистрирован: 2011-08-23
Сообщений: 11

Re: Следующая и предыдущая тема

Вот так выводяться ссылки Всем спасибо огромное АДМИНУ РЕСПЕКТ
<a href="/go.php?tid=<?php echo $id;?>&go=next">Следующая </a>
<a href="/go.php?tid=<?php echo $id;?>&go=prev">Предыдущая</a>

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens