Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
asterix_kpi

Вставка url в ответ

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

У меня стоит строка:

У топик стартера локализация от IBR или что-то еще не то?

На сколько я вижу идентично, за исключением метасимвола \w который заменен на юникод \p{L}. ИБР-овцы видимо забыли, что в \p{L} числовой класс (0-9) не входит как в случае с \w. За то последний не будет работать с урл-ами в которых есть кириллица в utf-8 с не правильно установленной локалью. Можно заменить \p{L} на \w, можно после добавить 0-9, это не столь важно, все равно несовместимость несколько ссылок в одной строке остается. Попробуйте разместить две-три ссылки в одной строке без перевода строк, и несколько ссылок каждая с новой строки.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

 

Несколько ссылок в одной строке не проходят. Отображается только одна. А вот несколько ссылок, каждая с новой строки, добавляется нормально.

 

TQkJH.jpg

 

При всех минусах, ставить стороннюю локализацию от IBR и лишать себя оперативного апгрейда в случаях устранения критических уязвимостей считаю излишним.

Поделиться сообщением


Ссылка на сообщение

Хотя, можно вставить несколько ссылок в одной строке, используя кнопку ББ-кода RTE:

 

1XvgQ.jpg

 

Так что, проблемы скорее у IBR, чем у IPS.

Поделиться сообщением


Ссылка на сообщение

За то последний не будет правильно работать с урл-ами в которых есть кириллица в utf-8 и не правильно установленной локалью в скриптах.

 

Насколько я понял из объяснений техподдержки, IPS склоняется к кодировке utf8 по умолчанию для своих продуктов в новых версиях. Типа: меняйте кодировку у себя, нам надоели ваши кракозябры в 20% случаев обращения в нашу техподдержку.

Поделиться сообщением


Ссылка на сообщение

Ну с ббкодом понятно что работать будет. ИБР лопухнулись с тем, что перейдя на юникод забыли добавить поддержку числам (ссылка ТСа от того и парсилась не полностью). Логику ИПС построили хреновую, перейдя на preg_match_all не возможно составить вменяемое регулярное выражение чтобы оно соответствовало нужному формату. Если откатится на оригинальный код библиотеки, сохранив регулярку от ИПС (или ибр для юникода), все ссылки замечательно парсятся так, как нужно. Можете кстати спросить у них об этом, что за wtf.

Поделиться сообщением


Ссылка на сообщение
07/17/13 17:50 (изменено)

Чтобы создавать запрос в поддержку, у меня что-то не должно работать. Пока не пойму, что же у меня не работает из вашего объяснения? :)

 

Так или иначе, все текстовые редакторы имеют ряд ограничений. Я свято верю, что в IPS пошли по этому пути по причине каких-то серьезных целей, например, безопасности или совместимости...

 

Хотя, спросить могу. Напишите, что спросить?

Изменено пользователем Zero108

Поделиться сообщением


Ссылка на сообщение

Просто спросите почему не оставили оригинальную логику библиотеки htmlpurifier из файла ips_kernel\htmlpurifier\HTMLPurifier\Injector\Linkify.php где использовался preg_split, а поменяли на preg_match_all и теперь не захватываются все ссылки которые находятся в одной строке.

Я тоже верю, что какая-то причина все же была.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Поделиться сообщением


Ссылка на сообщение

Пока всё, что удалось узнать в личке:

 

XFU8W.jpg

 

Сейчас попробую изменённый linkify.php.

Поделиться сообщением


Ссылка на сообщение

C изменённым Linkify.php ссылки в одной строке вставляются так:

 

SnMDi.jpg

 

Почти работает :)

 

Да, и чуть не забыл:

 

preg_match_all( "#(.*?)(\()?((?:http|ftp|https):\/\/[\w\-_]+(?:\.[\w\-_]+)?(?:[\w\-\.,\(\)@?^=%&:/~\+\#]*[\w\-\@?^=%&/~\+\#]))(.*?)$#ims", 

 

Поражает обилие неудалённого закомментированного кода в Linkify.php. Видимо, работа кипит, все течёт, всё меняется. IBR точно не угнаться за апдейтами. Так что, дружно пересаживаемся на IPS.

Поделиться сообщением


Ссылка на сообщение

Я откатился, и у меня вставляются так

 

aMivp.png

Поделиться сообщением


Ссылка на сообщение

Меня ссылки в одной строке особо не беспокоят. Но, я подал запрос в техподдержку.

 

Интересно, в вашей версии, если вставить в LTE редакторе и сохранить в нем следующий код, два переноса строки после /center сохраняются или нет (без переключений на RTE)?

 


[center][img=http://ipbskins.ru/forum/uploads/av-32329.jpg][/center]


текст

 

У меня раньше второй перенос пропадал. Сейчас стало нормально сохраняться даже без предварительного переключения на RTE перед сохранением.

Поделиться сообщением


Ссылка на сообщение

Я свято верю, что в IPS пошли по этому пути по причине каких-то серьезных целей, например, безопасности или совместимости...

Конечно же ради безопасности и совместимости IPS берут

$token = array(); обнуляют объект

           foreach( $matches[0] as $k => $match )
           {
               if( !$matches[3][$k] )
               {
                   $token[]   = new HTMLPurifier_Token_Text($token->data); и тут же к нему обращаются

Регулярка у ИБР давно выглядит вот так

preg_match_all( "#(.*?)(\()?((?:http|ftp|https):\/\/[\p{L}\d\-_]+(?:\.[\p{L}\d\-_]+)?(?:[_\p{L}\d\-\.,\(\(@?^=%&:\/~\+\#]*[\p{L}\d\-_\@?^=%&\/~\+\#]))(.*?)$#ims"

Это в моем дистрибе, который я скачал порядка месяца назад. Цифирьки учтены и ссылка ТСа парсится и на моем форуме и на ИБРовском.

 

Еще вот в последнем(?) патче от IPS регулярка выглядит как

#(.*?)(\()?((?:http|ftp|https):\/\/[\w\-_]+(?:\.[\w\-_]+)?(?:[\w\-\.,\(\)@?^=%&:/~\+\#]*[\w\-\@?^=%&/~\+\#]))(.*?)$#ims

Конечно, & подпадает под

preg_match("#[&]#ims", '&')

хоть и вместе с 'a','m','p' и ';', но как-то некрасиво.

 

Так что я никуда с IBR уходить не собираюсь, тем более, что у меня хостинг в \w русские буквы не включает и пересобирать php не дает.

Поделиться сообщением


Ссылка на сообщение

Ну, можете порадоваться:

 

1. It was too loose and would pick up things which (although are valid URLs) are not what you might intend - for example "http://www.google.com (Google)" would link the "Google" bit. In 4.0 we've turned off that option in HTMLPurifier and using our own solution which is much more reliable.

 

http://community.invisionpower.com/topic/391283-why-was-the-default-htmlpurifier-library-changed/?p=2423164

 

Скоро ваш IBR не сможет вот так просто взять и поправить парсер, потому что это уже будет не бесплатная библиотека, а код с копирайтом IPS.

 

Так что вы там хотели сказать о преимуществах использования принципа баги IPS + баги от IBR? Ну, по сравнению с принципом: заплатил IPS и тебе все быстро делают в течение суток-двое?

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...