Как изменить чпу в IPB 4? - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

чпу

  • 3 Страниц +
  • 1
  • 2
  • 3

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

#1 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 10 Ноябрь 2015 - 22:19

Здравствуйте. Обновил форум с 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-

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

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 745
  • Регистрация: 20-Март 09
  • Репутация: 2 276
  • IPB version:3.1.x
 

Отправлено 10 Ноябрь 2015 - 22:32

Просмотреть сообщениестудент сказал(а):

К примеру у меня в одном из сообщений есть ссылка на другое сообщение вида: /forum/topic/1034/?p=46651 при клике на который она переходит по ссылке и преобразуется в /forum/topic/1034/?comment=46651

Это не проблема ЧПУ, а функции редиректа старых ссылок форума. Одной замены параметров здесь не получится обойтись, так как есть еще пагинация страниц и нужно перейти на правильную страницу, для этого должна быть отдельная функция а не просто правило в ЧПУ. Если редирект происходит скорее всего она есть, но работает криво.
0

#3 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 745
  • Регистрация: 20-Март 09
  • Репутация: 2 276
  • IPB version:3.1.x
 

Отправлено 10 Ноябрь 2015 - 22:41

Если не копаться в коде, то можно поменять старый формат на новый. Для этого в бд заменить /?p= на /?do=findComment&comment=

UPDATE forums_posts SET post = REPLACE(post, '/?p=', '/?do=findComment&comment=')

0

#4 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 10 Ноябрь 2015 - 23:22

Просмотреть сообщениеsiv1987 10 Ноябрь 2015 - 22:32 сказал(а):

Это не проблема ЧПУ, а функции редиректа старых ссылок форума. Одной замены параметров здесь не получится обойтись, так как есть еще пагинация страниц и нужно перейти на правильную страницу, а для этого должна быть отдельная функция а не просто правило в ЧПУ.

Несколько лет назад я сделал глупость и изменил вид ЧПУ в версии 3.1.2 . В файле initdata.php я прописал
define( 'IPB_USE_SEO_TRANSLIT', FALSE );
define( 'IPB_USE_ONLY_ID_FURL', true );
и все ссылки стали типа /forum/100/ . Пользователи несколько лет в своих сообщениях делились ссылками на другие темы и сообщения. Таких ссылок наверное тысячи и изменить вручную их не получиться. Поэтому я вынужден был в новой версии опять изменить вид ссылок, чтобы при переходе по ссылкам, которые пользователи несколько лет оставляли в своих сообщениях происходил переход на нужную тему или сообщение. Изменением ссылок я добился правильного перехода на темы, но на сообщения перехода не происходит - перекидывает на первое сообщение темы.

Нельзя никак малой кровью добиться правильного перехода на нужное сообщение?
0

#5 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 10 Ноябрь 2015 - 23:25

пока писал Вы уже ответили. сейчас попробую. Спасибо
0

#6 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 10 Ноябрь 2015 - 23:33

Просмотреть сообщениеsiv1987 10 Ноябрь 2015 - 22:41 сказал(а):

Если не копаться в коде, то можно поменять старый формат на новый. Для этого в бд заменить /?p= на /?do=findComment&comment=

UPDATE forums_posts SET post = REPLACE(post, '/?p=', '/?do=findComment&comment=')


извините, у меня в одной базе 2 форума, старый и новый с разными префиксами. У нового в котором нужно сделать изменения префикс frm_
каким должен быть запрос, чтобы он затронул только нужную базу?
0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 745
  • Регистрация: 20-Март 09
  • Репутация: 2 276
  • IPB version:3.1.x
 

Отправлено 10 Ноябрь 2015 - 23:48

Просмотреть сообщениестудент сказал(а):

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

К данной проблеме это не имеет никакого отношения. Формат чпу в данном случае роли не играет и если бы ссылки небыли only id редирект все равно бы работал криво.


Просмотреть сообщениеsiv1987 сказал(а):

Если редирект происходит скорее всего она есть, но работает криво.

Собственно так и есть. Панаплоидли кучу гавнокода и недосмотрели все параметры.

Открыть \applications\forums\sources\Topic\Topic.php
Найти

			$paramsToSet['comment']		= \IPS\Request::i()->p;

Ниже добавить

			$paramsToSet['do']		= 'findComment';

0

#8 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 10 Ноябрь 2015 - 23:52

а запрос уже не делать?

P.S можно ли вообще изменить вид всех ссылки в сообщениях на новые? чтобы не мучаться так при каждом обновлении.
0

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 745
  • Регистрация: 20-Март 09
  • Репутация: 2 276
  • IPB version:3.1.x
 

Отправлено 10 Ноябрь 2015 - 23:52

Просмотреть сообщениестудент сказал(а):

каким должен быть запрос, чтобы он затронул только нужную базу?

Используйте правку указанную выше, это решит проблему без замены в бд.


Просмотреть сообщениестудент сказал(а):

P.S можно ли вообще изменить вид всех ссылки в сообщениях на новые? чтобы не мучаться так при каждом обновлении.

Не обязательно. Это баг, думаю его исправят и в дальнейшем проблем не будет. Если есть активная лицензия отправьте телегу в ИПС.
0

#10 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 11 Ноябрь 2015 - 00:01

Просмотреть сообщениеsiv1987 10 Ноябрь 2015 - 23:52 сказал(а):

Используйте правку указанную выше, это решит проблему без замены в бд.
Не обязательно. Это баг, думаю его исправят и в дальнейшем проблем не будет. Если есть активная лицензия отправьте телегу в ИПС.

Заработало. Спасибо Вам огромное.
Это не баг. Я же сам изменил вид ссылок и теперь жалею об этом. Хотел бы вернуть стандартный вид ссылок ЧПУ, но чтобы со всех сообщениях они тоже изменились на новые.

Или Вы хотите сказать, чтобы я вернул обратно изменения сделанные в Расширенные настройки - ЧПУ
 т.е. открыл ссылки для редактирования и в forum/{#id}-{?} и topic/{#id}-{?} удалил -{?}

и все равно все будет правильно переходить?
0

#11 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 745
  • Регистрация: 20-Март 09
  • Репутация: 2 276
  • IPB version:3.1.x
 

Отправлено 11 Ноябрь 2015 - 00:31

Просмотреть сообщениестудент сказал(а):

Это не баг. Я же сам изменил вид ссылок и теперь жалею об этом.

Это недоработка в коде, баг, называйте как хотите. Вид ссылок к переходу на сообщение старого формата не имеет никакого отношения. Вы смешиваете все в одну кашу - и вид ссылок и неработающий переход. Речь про переход. Формат чпу какой хотите такой и ставьте.


Просмотреть сообщениестудент сказал(а):

и все равно все будет правильно переходить?

Да если ссылки будут работать.
0

#12 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 11 Ноябрь 2015 - 00:40

Понятно. Я обнаружил проблему. Дело в том, что я несколько лет использовал версию 3.1.2 в которой и изменил вид ссылок. Пару месяцев назад я обновил форум до версии 3.4.8 и 2 дня назад обновился до 4.1.3.2
Все ссылки в сообщениях были оставлены когда форум был версии 3.1.2 и они имеют вид: ../forum/index.php?/topic/5118/page__pid__98945__st__60#entry98945 при клике на который происходит переход на тему ../forum/index.php?/topic/5118/ но через секунду перекидывает по этой ссылке: ../forum/topic/5890/#entry98945

это происходит как в версии 3.4.8 так и в 4.1.3.2

это как-то можно решить?
0

#13 Пользователь не на сайте   студент ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 51
  • Регистрация: 05-Январь 09
  • Репутация: 0
  • IPB version:3.0.x
 

Отправлено 11 Ноябрь 2015 - 01:02

Просмотреть сообщениеsiv1987 11 Ноябрь 2015 - 00:31 сказал(а):

Еще раз повторяю, вид ссылок к переходу на сообщение старого формата не имеет никакого отношения. Вы смешиваете в одну кашу - и вид ссылок и неработающий переход. Речь про переход. Формат чпу какой хотите такой и ставьте.

вернул стандартный вид ссылок forum/{#id}-{?} и topic/{#id}-{?}
теперь переход происходит на страницу 404, так как теперь вид ссылки такой: ../forum/topic/1034-название-темы/?do=findComment&comment=46651 а в сообщении она выглядит так: ../forum/topic/1034/?p=46651
0

#14 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 11 Ноябрь 2015 - 10:57

Просмотреть сообщениестудент сказал(а):

Все ссылки в сообщениях были оставлены когда форум был версии 3.1.2 и они имеют вид: ../forum/index.php?/topic/5118/page__pid__98945__st__60#entry98945 при клике на который происходит переход на тему ../forum/index.php?/topic/5118/ но через секунду перекидывает по этой ссылке: ../forum/topic/5890/#entry98945

Потому что изменения из 7-го поста касаются ссылок, в которых есть параметр p
		if( isset( \IPS\Request::i()->p ) )
		{
			$paramsToSet['comment']		= \IPS\Request::i()->p;
			$paramsToUnset[]		= 'p';
		}

Сделайте подобное для pid
		if( isset( \IPS\Request::i()->pid ) )
		{
			$paramsToSet['do']      = 'findComment';
			$paramsToSet['comment']	= \IPS\Request::i()->pid;
			$paramsToUnset[]		= 'pid';
		}

0

#15 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 745
  • Регистрация: 20-Март 09
  • Репутация: 2 276
  • IPB version:3.1.x
 

Отправлено 11 Ноябрь 2015 - 12:02

Цитата

теперь переход происходит на страницу 404, так как теперь вид ссылки такой: ../forum/topic/1034-название-темы/?do=findComment&comment=46651

Это стандартный формат, перейти по ним на страницу ошибки не возможно. Сделайте для себя разграничение между старым и новым форматом ссылки на сообщение. Если вы хотите чтобы pid содержащие адреса тоже редиректили на сообщение, нужно делать правку предложенную выше newbie. Хотя они по идее уже содержат полный адрес, проблема только в хеше.
0

Сообщить об этой теме:


  • 3 Страниц +
  • 1
  • 2
  • 3


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна