Удаление параметра f= из url при просмотре тем.

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

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

Сообщение #1 Zakhar » 07.01.2014, 21:35

Здравствуйте, вопрос адресован скорее всего напрямую к уважаемому VEG.

Хотелось бы убрать из URL тем форума параметр f= так же, как это реализовано здесь на форуме.
То есть из:
http://example.com/forum/viewtopic.php?f=2&t=42
сделать:
http://example.com/forum/viewtopic.php?t=42

При попытке сделать по инструкции от phpbb возникает ряд трудностей:
1) При отправке сообщений пользователя редиректит на страницу темы с параметров f= в url.
2) Созданные важные темы (глобальые объявления) теряют свою связь с форумом, где они изначально было созданы.

Хотелось бы получить инструкцию как это реализовать.

Спасибо.

P.S. Думаю подобная инструкция будет полезна не только мне, но и другим администратором форумов на phpbbex.
Zakhar
Автор темы
Репутация: 3
С нами: 10 лет 4 месяца

Сообщение #2 VEG » 10.01.2014, 19:34

Установите этот патч для удаления параметра f (можете вручную).
Код: Выделить всё
diff -r a875b3ca93d4 includes/functions.php
--- a/includes/functions.php    Fri Dec 13 19:54:17 2013 +0300
+++ b/includes/functions.php    Fri Jan 10 20:33:04 2014 +0400
@@ -2232,7 +2232,7 @@
 * </code>
 *
 */
-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)
 {
        global $_SID, $_EXTRA_URL, $phpbb_hook, $config, $user;

@@ -2334,6 +2334,22 @@
        return $url . (($append_url) ? $url_delim . $append_url . $amp_delim : $url_delim) . $params . ((!$session_id) ? '' : $amp_delim . 'sid=' . $session_id) . $anchor;
 }

+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;
+}
+
 /**
 * Generate board url (example: http://www.example.com/phpBB)
 *
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 12 лет


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



cron