Перейти к содержимому
Русский язык для Invision Community 5

Как изменить чпу в IPB 4?

Здравствуйте. Обновил форум с 3.4.8 до 4.1.3.2

В админке - Расширенные настройки - ЧПУ изменил вид:

/forum/id-?? на /forum/id

/topic/id-?? на /topic/id

т.е. открыл ссылки для редактирования и в forum/{#id}-{?} и topic/{#id}-{?} удалил -{?}

 

теперь у меня ссылки на форумы и темы имеют вид:

/forum/100/

/topic/100/

 

но есть проблема, которую я не могу решить, так как нет ее ссылки в Расширенные настройки - ЧПУ

это ссылки на другие сообщения форума, которые пользователи оставляли в своих сообщениях. К примеру у меня в одном из сообщений есть ссылка на другое сообщение вида: /forum/topic/1034/?p=46651 при клике на который она переходит по ссылке и преобразуется в /forum/topic/1034/?comment=46651 . Таким образом я попадаю на первую страницу темы, а не на нужное сообщение (т.е. ссылка срабатывает до ?comment=46651).

/forum/topic/1034/?comment=46651 - ссылка получается такой

/forum/topic/1034/#comment-46651 - но должна быть такой

как сделать, чтобы ?comment= преобразовывалось в #comment-

 

в Расширенные настройки - ЧПУ в самом верху есть Создать. Там наверное можно создать нужную мне ссылку, но я не знаю как.

Помогите кто знает.

Рекомендованные сообщения

есть и такие: ../forum/index.php?/topic/18/page__view__findpost__p__4127

Для таких уже есть по дефолту.

 

Если у Вас не работает, нужно смотреть на форуме, а не гадать, что Вы там делаете.

  • Автор

Для таких уже есть по дефолту.

 

Если у Вас не работает, нужно смотреть на форуме, а не гадать, что Вы там делаете.

Вот ссылка на форум: _http://313news.net/forum2/

я в папке /forum2 создал копию форума 3.4.8 и обновил ее до 4.1.3.2

оригинал находится в папке /forum

Все ссылки на новом форуме ведут на старый, поэтому перед их открытием нужно прибавлять 2-ку после /forum (т.е. /forum2)

 

 

Для примера привожу ссылки, которые ведут на стр.404
_http://313news.net/forum2/index.php?/topic/18/page__view__findpost__p__4127
_http://313news.net/forum2/index.php?/topic/5118/page__pid__98945__st__60#entry98945

Для примера привожу ссылки, которые ведут на стр.404

Так у вас вообще не работает такой форумат чпу.

313news.net/forum2/topic/18/

 

Стандартный шаблон topic/{#id}-{?} не соответствует формату /topic/18/. Что-бы он поддерживал оба типа нужно изменить на topic/{#id}{?}

  • Автор

Так у вас вообще не работает такой форумат чпу.

313news.net/forum2/topic/18/

 

Стандартный шаблон topic/{#id}-{?} не соответствует формату /topic/18/. Что-бы он поддерживал оба типа нужно изменить на topic/{#id}{?}

сделал как Вы написали. Все равно по ссылке 313news.net/forum2/topic/18/ открывает 404 страницу.

Что-бы он поддерживал оба типа нужно изменить на topic/{#id}{?}

Нет. Так ссылки будут генерироваться без "-".

 

Открыть \applications\forums\data\furl.json

Найти

 

	    "real": "app=forums&module=forums&controller=topic",

Выше добавить

 

	    "alias": "topic/{#id}/{?}",

 

Очистить кеш. Если используется файловый кеш, удалить файл /datastore/furl_configuration.KEY.php

Но промежуточных редиректов там будет дохрена. Я насчитал аж 3.

  • Автор

Сделал. теперь вообще ерунда получается. Кликаю на тему на главной, переходит в совершенно другую тему. Причем переходит только если у темы больше одной страницы. Если тема состоит только из одной страницы, то на открывшейся странице пишет: У вас нет прав для просмотра этого содержимого.

1. Старые изменения чпу откатить.

2. Следовать инструкциям из этого поста.

 

На локалхосте тестировал, вроде бы багов небыло. Можно попробовать создать еще одно правило для чпу под старые ссылки, но у меня лично не получилось - редирект вышел кривой.

  • Автор

1. Старые изменения чпу откатить.

2. Следовать инструкциям из этого поста.

 

На локалхосте тестировал, вроде бы багов небыло. Можно попробовать создать еще одно правило для чпу под старые ссылки, но у меня лично не получилось - редирект вышел кривой.

сделал как Вы написали. Все равно по ссылке 313news.net/forum2/topic/18/ открывает 404 страницу.

Но эти ссылки теперь прекрасно открываются

_http://313news.net/forum2/index.php?/topic/18/page__view__findpost__p__4127
_http://313news.net/forum2/index.php?/topic/5118/page__pid__98945__st__60#entry98945

Но эти ссылки теперь прекрасно открываются

Если работают эти, то тем более должна работать и та. Может очередной глюк, тут уж не знаю.

Еще один баг в настройках Friendly URLs - при создание нового правило чпу ему присваивается ключ в массиве - '0'. При редактирование, видимо из-за булево значение false и бага в логике, он не находит должный элемент а создает новый. Таким образом его не удалить, не отредактировать нельзя. Посылаем дружно лучики любви ИПС, я уже мысленно их послал.

 

Кто там говорил что система чпу в IPS 4 лучше чем в тройке? Она не то что хуже, она полное УГ. В тройке хотябы можно было гибко настроить правила чпу за счет регулярных выражений, а здесь два постановочных символа абсолютно без никакой гибкости. Система для блондинок.

Может очередной глюк, ту уж не знаю.

Алиас оказывается нужен был без слеша перед {?} из-за того, что по ожидаемой логики он не (.*?) а равен (.+?).

Раз уж IPS-овцы решили сделать постановочными символами регулярное выражение, им явно надо расширить синтаксис, как минимум добавив еще {*}. С этими масками они наступают на те же самые грабли что выражениями для медиатегов в 3x, когда вначале тоже было масками потом нахрен убрали и оставили полноценные регулярные выражения. Ну не хватает одних только двух масок для чпу, либо следует внести два режима конфигурации чпу - режим чайник и продвинутый. Имхо.

 

alias в итоге будет выглядеть подобным образом:

"alias": "topic/{#id}{?}",

+ потребуется немного изменить файл \system\Http\Url.php

 

ТС, будете обновляться, придется сохранить или внести заново изменения в \applications\forums\data\furl.json

И также отредактировать файл \system\Http\Url.php, заменив '(\d+?)' на '(\d+)'

 

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

  • Автор

Вы проделали все эти изменения или я сам должен все сделать? Спрашиваю потому, что в файле \system\Http\Url.php есть и '(\d+?)' и '(\d+)' . А также на самом форуме по прежнему не работают ссылки.

Не цитируйте большие сообщение целиком или сообщения с кодом. Такую страницу невозможно читать.

 

Я уже изменил и старые ссылки работают.

  • Автор

Я уже изменил и старые ссылки работают.

Спасибо Вам за помощь.

Не могли бы Вы написать какие в точности изменения Вы сделали, чтобы я и сам мог их проделать. Дело в том, что форум криво обновился, во многих ссылках присутствуют лишние элементы типа /> или двух ссылок одновременно. Да и новые сообщения уже появились. Хочу заново обновиться.

 

еще у меня в сообщениях присутствуют ссылки с pid к примеру

/forum/index.php?/topic/5118/page__pid__98945__st__60#entry98945

которая как оказалось и на старом форуме (3.4.8) неправильно переходила. И как я понял невозможно произвести изменения одновременно и для pid и для p . Или все-таки можно сделать, внеся изменения из поста #14 ?

Все изменения описаны выше.

 

еще у меня в сообщениях присутствуют ссылки с pid к примеру

forum/index.php?/topic/5118/page__pid__98945__st__60#entry98945

которая как оказалось и на старом форуме (3.4.8) неправильно переходила

Правильно переходит. Pid этого сообщения из другой темы, поэтому редирект происходит на новую тему.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.