Перейти к контенту
  • 0

Проблема со ссылками в версии 2.3.1 и её решение


Alex 3.14

Вопрос

Приветствую!

 

После обновления с версии 2.2.2 до 2.3.1 столкнулся со следующей проблемой: некоторые из url-ссылок, добавляемых пользователями парсились нормально, а к некоторым уже после парсинга добавлялось " target=_blank" и, соответственно, ссылки не работали.

 

Был проведён ряд исследований для выявления закономерности, но мне её найти так и не удалось. Зато была обнаружена занятная ситуация в таблице ibf_posts: html-код некоторых ссылок в сообщениях был оформлен абсолютно верно:

 

<a href="..." target="_blank">...</a>

а в некоторые закрался такой косяк:

 

<a href="...& quot; target=& quot;_blank">...</a>

 

После этого было применено решение "в лоб":

 

1) Открываем файл /sources/classes/bbcode/class_bbcode_core.php.

2) Находим в нём строку (примерно 2220-я):

return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\" target=\"_blank\">".$show."</a>" . $url['end'];

и заменяем на:

return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\">".$show."</a>" . $url['end'];

3) Сохраняем изменения в файле.

4) Далее нужно выполнить запрос на обновление таблицы сообщений:

 

update ibf_posts set post = replace (post, '& quot; target=& quot;', '" target="')

(при 375 тысячах постов обновление проходит примерно за 2-3 минуты)

 

Таким образом мы тупо избавляемся от target-blank'ов в новых сообщениях и делаем их работоспособными в уже имеющихся сообщениях.

 

Пока полёт нормальный. Надеюсь, кому-нибудь поможет это решение, если кто-то ещё столкнётся с подобной проблемой.

 

 

P.S. Кстати, кто-нибудь знает, зачем теперь все ссылки заменяются на [magnet]?

 

P.P.S. Там, где в коде указано "& quot;" уберите пробел.

Изменено пользователем Alex 3.14
Ссылка на комментарий
Поделиться на других сайтах

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

  • 0
а в некоторые закрался такой косяк:

и в чём тут косяк?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
а в некоторые закрался такой косяк:

и в чём тут косяк?

Обновил сообщение. У вас " распарсился правильно, а в ссылках - не парсился :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.