miniBB ® 

miniBB

®
Support Forums
  
 | Start | Register | Search | Statistics | File Bank | Manual |
Русские miniBB Support Forums / Русские /  
 

IMGS - bug or feature

 
Author bestit
Partaker
#1 | Posted: 14 Aug 2018 23:50 
Здравствуйте, Павел.

Случайно обнаружил такое неожиданное поведение BB-кода [imgs].
Вставляю в сообщение картинку через стандартную кнопку "Ссылка на картинку". В появившемся диалоге "URL" вставляю ссылку на картинку из буфера, нажимаю ОК. Появляется следующий диалог "Описание картинки (ALT)". Я просто хочу вставить иллюстрацию в сообщение и не хочу здесь что-то еще заполнять, так что просто нажимаю ОК.

Получаю в своем сообщении такой код:
[imgs=путь до картинки.jpg][/imgs]
Публикую и в итоге картинка не отображается. Вместо нее отображается ее BB-код.

В результате проведенных экспериментов я понял, что если во втором диалоге "Описание картинки (ALT)" написать хоть что-нибудь, хотя бы один символ, то все сработает как нужно, и картинка будет отображена, по клику будет открываться оригинал, а при подведении к привью курсора будет всплывать тот самый ALT текст.
[imgs=путь до картинки.jpg]aaa[/imgs] - такой код работает корректно.

Павел, так и было задумано, что нужно обязательно вводить ALT-текст? Тогда почему пользователю разрешено проигнорировать второй диалог, не вводя этот текст и не получая никакой подсказки и остановки дальнейших своих действий с оповещением: "Обязательно заполните ALT текст".
Или все же код должен нормально срабатывать и без ввода "Описания картинки" (ALT текст)?

Я проверил эту ситуацию на вашем демо форуме. Проблема воспроизводится.

Для меня это проблема. Дело в том, что мне периодически нужно корректировать старые сообщения, созданные еще в версии 2.0 и, возможно, ранее. И получается ситуация, когда я исправляю одну из некорректно вставленных картинок в старом сообщении, публикую это сообщение, а в результате у меня перестают отображаться ВСЕ картинки, когда-то вставленные и до моей правки нормально отображаемые в этом сообщении, которое я поправил. Т.е. в старой версии обработка тега [imgs] была немного другой. Возможно, там автоматом пустой ALT Текст преобразовывался в html "title=" и "alt="

Author Paul
Lead Developer 
#2 | Posted: 15 Aug 2018 12:12 
Здравствуйте. Уже трудно сказать, почему было сделано именно так, как в текущей версии, скорее всего, связано это было либо с тем, что на какой-то стадии HTML не валидировался с пустыми alt/title тэгами, либо для SEO, но я посмотрел по истории релизов - действительно, в ранних версиях 2.x вводить комментарий было необязательно. Вообще, конечно, вводить комментарий к картинке - абсолютно необходимо для SEO. Но я понимаю, что многие пользователи чрезвычайно ленивы и т.п.

Я это исправлю в следующем релизе, а пока что решение для вашего удобства: в bb_codes.php нужно найти два кода, которые обозначены как /* fixed width and ALT */. В них нужно исправить это:

([^<>\n\r\[\]&=/"\']+?)
на это:

([^<>\n\r\[\]&=/"\']*?)
т.е. + заменить на *.

Сообщите, как сработает.

Author bestit
Partaker
#3 | Posted: 15 Aug 2018 12:33 
Добрый день, Павел.
Спасибо, как всегда оперативно!
Все сработало как нужно.

p.s. Знаете, не всегда и у всех дело в лени, просто на нашем orel-story forum люди пишут довольно длинные сообщения, уже содержащие в себе много информации для SEO, поэтому принуждать их делать дополнительную работу как-то не хочется.
Еще раз спасибо за быстрое решение.

Author bestit
Partaker
#4 | Posted: 19 Oct 2018 19:43 
уф, опять наткнулся на те же грабли. Вроде бы с этим все было пофиксено...
Но т.к. я ставил компилированный заново форум, то понимаю, что в его код в bb_codes.php также нужно внести ваш фикс заменить '+' на '*'
Но в этот раз результат не получается.

Сообщение, которое пытаюсь исправить.
В BB коде старого сообщения указан такой код на картинку:
[imgs=сайт /gallery/albums/userpics/10001/normal_Валера_и_Боря-1959.jpg]" title="[/imgs]

и при пересохранении сообщения картинка не выводится. Не срабатывает паттерн. Не схватывает вот этот кусок:
" title="
Paul:
Я это исправлю в следующем релизе, а пока что решение для вашего удобства: в bb_codes.php нужно найти два кода, которые обозначены как /* fixed width and ALT */
Итак, "ALT-ы" вижу в двух местах, но во втором из них не совпадает указанный Вами код паттерна.
В части где
/* external images - only allowed the proper extensions and codes by permission */
if($userUrlsAllowed){

стоит вот такой паттерн:
$pattern[]="/\[imgs=(http[s]*:\/\/([^<> \n\r\[\]&\#]+?)\.(gif|jpg|jpeg|png))\]([^<>\n\r\[\]&=\/\"']+?)\[\/imgs\]/i";

т.е.
([^<>\n\r\[\]&=\/\"']+?)
что отличается от рекомендованного к нахождению:
([^<>\n\r\[\]&=/"\']+?)
Я туго понимаю в регулярных выражениях и не могу исправить Ваш код.

Пока вышел из ситуации, взяв код паттерна из совсем старой версии форума. Там он был проще:
$pattern[]="/\[imgs=(http[s]*:\/\/([^<> \n\r\[\]&]+?)\.?(gif|jpg|jpeg|png)?)\](.*?)\[\/imgs\]/i";

Author Paul
Lead Developer 
#5 | Posted: 19 Oct 2018 21:58 
Код немного отличается (забэкслешен сам слэш), но суть та же. В этом паттерне перед знаком вопроса должен быть * а не +.

Author bestit
Partaker
#6 | Posted: 20 Oct 2018 00:14 
Я пробовал заменить плюс на звездочку. Не срабатывает паттерн на указанный мной пример. Я даже брал паттерн и пробовал его на regex101_com с моим примером, но не смог довести его до срабатывания. Может, из-за кавычек в примере?
[imgs=сайт /gallery/albums/userpics/10001/normal_Валера_и_Боря-1959.jpg]" title="[/imgs]

Author Paul
Lead Developer 
#7 | Posted: 20 Oct 2018 11:31 
Так это и есть оригинальный код, который вы пытаетесь отправить в сообщении? Если да, то кавычки внутри не допускаются, всё верно. Это и указано в паттерне. А чтобы допускались, попробуйте кавычки из паттерна удалить. Только я не понимаю, какой во всём этом смысл.

Author bestit
Partaker
#8 | Posted: 20 Oct 2018 18:45 
Добрый день, Павел.
Смысл в том, что этому форуму на Вашем движке более 10 лет!Периодически мы правим старые сообщения, где есть проблема с отображением фото. Например, искажено неверным перекодирование имя файла. И получается, нельзя просто дать правильно имя картинке, а нужно еще учитывать, что менялся алгоритм конвертации bb-code<->html.
В общем, это наши внутренние заморочки 🙂
Спасибо за помощь, Павел.

Author Paul
Lead Developer 
#9 | Posted: 20 Oct 2018 19:43 
Все свои старые bb-коды вы можете сохранить. При апгрейде bb_codes.php необязательно было их удалять :) но в целом да, правки уж очень старых кодов могут приносить такие результаты. Тут спасёт только перевод вручную в новый формат.

Русские miniBB Support Forums / Русские /
 IMGS - bug or feature
 Share Topic's Link

Your Reply Click this icon to move up to the quoted message


  ?
Post as a Guest, leaving the Password field blank. You could also enter a Guest name, if it's not taken by a member yet. Sign-in and post at once, or just sign-in, bypassing the message's text.


Before posting, make sure your message is compliant with forum rules; otherwise it could be locked or removed with no explanation.

 

 
miniBB Support Forums Powered by Forum Software miniBB ® Home  Features  Requirements  Demo  Download  Showcase  Gallery of Arts
Compiler  Premium Extensions  Premium Support  License  Contact Us
Get the Captcha add-on: protect your miniBB-forums from the automated spam and flood.


  ⇑