Как убрать из урл топика "f=XX" (сделать как тут)?

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 ZeldoR » 19.03.2015, 04:20

Всем привет!

Искал, но не нашел такого мода/инструкции на Вашем ресурсе. Собственно вопрос, как реализовать такое же формирование урл топика как на этом форуме (без указания раздела)?
ZeldoR
Автор темы
Репутация: 0
С нами: 9 лет 6 месяцев

Сообщение #2 VEG » 19.03.2015, 23:09

Тут используется нехороший хак для этого, поэтому в phpBBex и не включено.

Если хотите себе такое же, в includes.php нужно найти:
Код: Выделить всё
function append_sid($url, $params = false, $is_amp = true, $session_id = false)

Заменить на:
Код: Выделить всё
function append_sid_original($url, $params = false, $is_amp = true, $session_id = false)

После окончания этой функции (перед function generate_board_url($without_script_path = false)) добавить:
Код: Выделить всё
function clean_viewtopic_url($url)
{
   return preg_replace('#(\bf=\d+&(amp;)?|&(amp;)?f=\d+$)#', '', $url);
}

function append_sid($url, $params = false, $is_amp = true, $session_id = false)
{
   global $phpbb_root_path, $phpEx, $config;
   $url = append_sid_original($url, $params, $is_amp, $session_id);
   if (strpos($url, "{$phpbb_root_path}viewtopic.$phpEx") === 0)
   {
      return clean_viewtopic_url($url);
   }
   return $url;
}
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1667
С нами: 12 лет 5 месяцев

Сообщение #3 ZeldoR » 20.03.2015, 03:14

Спасибо большое!

А чем он "нехороший"? По моему без него гораздо хуже. Косяком с дублированием урл (у вас на форуме) вроде не обнаружил, или есть такое все же?
ZeldoR
Автор темы
Репутация: 0
С нами: 9 лет 6 месяцев

Сообщение #4 VEG » 20.03.2015, 09:34

ZeldoR, нехороший с точки зрения кода. Вообще архитектура у phpBB не ахти, приходится с этим мириться.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1667
С нами: 12 лет 5 месяцев

Сообщение #5 Dr.Death » 25.03.2015, 11:02

VEG, еще у canonical во viewtopic надо убрать же
Dr.Death M
Аватара
Репутация: 69
С нами: 10 лет 3 месяца

Сообщение #6 Sumanai » 25.03.2015, 16:06

Не убрать, а исправить.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 8 месяцев

Сообщение #7 Dr.Death » 25.03.2015, 18:05

если параметр f у canonical, то убрать, если сам canonical, то исправить
Dr.Death M
Аватара
Репутация: 69
С нами: 10 лет 3 месяца

Сообщение #8 VEG » 25.03.2015, 18:07

Dr.Death, так код приведённый же проверяет все ссылки и во всех ссылках удаляет этот параметр. В canonical должно тоже исчезнуть.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1667
С нами: 12 лет 5 месяцев

Сообщение #9 Dr.Death » 25.03.2015, 18:11

нет, там без сида, просто написано
Dr.Death M
Аватара
Репутация: 69
С нами: 10 лет 3 месяца

Сообщение #10 VEG » 27.03.2015, 14:40

Хм, и правда, я тут тоже вносил правки. Из diff файла viewtopic.php:
Код: Выделить всё
-       'U_CANONICAL'                   => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id" . (($start) ? "&start=$start" : ''),
-       'U_TOPIC'                               => "{$server_path}viewtopic.$phpEx?f=$forum_id&t=$topic_id",
+       'U_CANONICAL'                   => clean_viewtopic_url(generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id" . (($start) ? "&start=$start" : '')),
+       'U_TOPIC'                               => clean_viewtopic_url("{$server_path}viewtopic.$phpEx?f=$forum_id&t=$topic_id"),
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1667
С нами: 12 лет 5 месяцев

Сообщение #11 Dr.Death » 27.03.2015, 19:30

хы.. U_TOPIC то проглядел...
Dr.Death M
Аватара
Репутация: 69
С нами: 10 лет 3 месяца

Сообщение #12 VEG » 29.07.2023, 15:09

В репозитории проекта доступно аналогичное изменение, но без описанного выше хака 10-летней давности (который за годы разросся до
viewtopic_no_f.diff
(7.72 КБ) Скачиваний: 1402
внушительных размеров). То есть, ссылки теперь сразу генерируются без ненужного параметра f. Войдёт в следующую версию phpBBex, которая выйдет ближе к концу года.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1667
С нами: 12 лет 5 месяцев


Вернуться в Поддержка 1.x



cron