После обновления на 4.1.х не работают ссылки с #entry внутри темы - Дизайн и модификация Invision Power Board

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

 

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

чпу

Страница 1 из 1

После обновления на 4.1.х не работают ссылки с #entry внутри темы

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 11-Февраль 10
  • Репутация: 6
  • IPB version:4.1.x
 

Отправлено 10 Сентябрь 2016 - 07:42

Наконец таки закончился недельный пересчет и мой форум полностью обновился на последнюю версию 4.1.х.

И столкнулся с очень неприятной проблемой: старый ссылки, ведущие на какое-то сообщение внутри темы вида forum.net/index.php?showtopic=15213&st=20#entry117513 перестали работать! Т.е. при клике ведут на первое сообщение темы.

А это очень и очень плохо, т.к. у меня форум более 2 млн. сообщений и все упорядочено, куча FAQ, путеводителей и др. ссылок ведущие на конкретные сообщения в теме.

Думал пересчет сообщений исправит, но нет....

Что делать?
0

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

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

Отправлено 10 Сентябрь 2016 - 08:11

#entry это указатель внутри страницы, на сервере он не передается. В новой версии якорь сообщения имеет новое название #comment-{id}. В бд заменить старый тег на новый и дополнительно написать скрипт на js который будет заменять в урле для перехода с внешних источников. А вот по параметру запроса st он должен редиректить на страницу page.

Некоторые проблемы старых ссылок обсуждалось тут http://ipbskins.ru/f...topic14157.html
0

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

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

Отправлено 10 Сентябрь 2016 - 09:54

Проблема этих ссылок showtopic=15213&st=20#entry117513 в том, что сначала идет редирект на чпу, потом проверяется наличие параметра st.
Тут я вижу несколько вариантов:

I. Заменить в базе данных #entry на &p=, тогда форум сделает автоматическое преобразование ссылки в /topic/{tid}-{title}/?do=findComment&comment={pid}.
Не требует правки файлов, но не будет работать для ссылок с внешних ресурсов и подходит только для старых ссылок которые были без чпу.

II. Отредактировать функцию convertLegacyParameters в \applications\forums\Application.php добавив проверку параметра st и конвертацию его в page.
Выше:

			if ( isset( \IPS\Request::i()->p ) or isset( \IPS\Request::i()->findpost ) )

Добавить:

			if( \IPS\Request::i()->st )
			{
				\IPS\Request::i()->page = floor( intval( \IPS\Request::i()->st ) / $topic::getCommentsPerPage() ) + 1;
			}

Такая правка будет работать для всех ссылок в том числе и с внешних ресурсов, но требует правки файла и остается решить вопрос с хештегом #entry который нужно заменить в js на #comment- для поддержке ссылок с внешних ресурсов, либо добавить в шаблоне новый тег с этим якорем.

JS скрипт для замены хештега #entry на #comment

if(document.location.hash){
	var match = document.location.hash.substr(1).match(/^entry(\d+)$/);
	if(match[1]){
		document.location.hash = '#comment-'+match[1];
	}
}

1

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 11-Февраль 10
  • Репутация: 6
  • IPB version:4.1.x
 

Отправлено 11 Сентябрь 2016 - 11:15

По st внес правку! Перекидывает теперь на нужную страницу.
А вот насчет entry не очень понял в каких именно шаблонах нужно править?
0

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

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

Отправлено 11 Сентябрь 2016 - 19:11

Сделайте замену в бд.
0

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

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

Отправлено 12 Сентябрь 2016 - 11:06

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

А вот насчет entry не очень понял в каких именно шаблонах нужно править?

%Тема% -> forums -> topics -> postContainer

После
<a id='comment-{$comment->$idField}'></a>

Добавить
<a id='entry{$comment->$idField}'></a>

0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 11-Февраль 10
  • Репутация: 6
  • IPB version:4.1.x
 

Отправлено 13 Сентябрь 2016 - 08:43

Спасибо!
Сделал все же замену в БД (затронуло 7 тыс. постов). Правда половина ссылок все равно куда-то не туда ведут, полагаю, что из-за ST. Что-то все равно сбилось после перестроения форума
0

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

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

Отправлено 14 Сентябрь 2016 - 05:24

Куда ведут? Надо еще учитывать старое и новое количество сообщении на одной странице, для совместимости параметра st или page оно должно быть одинаковым. В противном случае следовало заменить #entry на параметр &p= для поиска сообщения в теме.
0

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


Страница 1 из 1


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

  

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
При копировании материалов с сайта
прямая ссылка на источник обязательна