miniBB ®

miniBB

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

IMGS - bug or feature

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

Случайно обнаружил такое неожиданное поведение 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 Lead Developer
#2 · Posted: 15 Aug 2018 12:12Reply Quote
Здравствуйте. Уже трудно сказать, почему было сделано именно так, как в текущей версии, скорее всего, связано это было либо с тем, что на какой-то стадии 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:33Reply Quote
Добрый день, Павел.
Спасибо, как всегда оперативно!
Все сработало как нужно.

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

Author bestit
Partaker
#4 · Posted: 19 Oct 2018 19:43Reply Quote
уф, опять наткнулся на те же грабли. Вроде бы с этим все было пофиксено...
Но т.к. я ставил компилированный заново форум, то понимаю, что в его код в 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 Lead Developer
#5 · Posted: 19 Oct 2018 21:58Reply Quote
Код немного отличается (забэкслешен сам слэш), но суть та же. В этом паттерне перед знаком вопроса должен быть * а не +.

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

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

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

Author Paul
Lead Lead Developer
#9 · Posted: 20 Oct 2018 19:43Reply Quote
Все свои старые 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

BB code for the Bold StyleBB code for the Italic StyleBB Code for the PictureBB code for the URLUpload a File

  ?
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
Proceed with the File and Picture Attachments add-on: extend your miniBB-forums, attaching images and files.