Non-latin Symbols in URL / Поддержка нелатинских ссылок

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
ostridm
phpBB 2.0.7
Сообщения: 552
Стаж: 14 лет 5 месяцев
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение ostridm »

это и есть html :) перед тем как скормить строку в регулярку надо выполнить преобразование,

местами они есть.... типа того

Код: Выделить всё

$message = str_replace(array(':', '.'), array(':', '.'), $message);
$undid_bbcode_specialchars = true;
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Sheer »

Еще одно дополнение.
Чтобы отображались изображения из файлов с именами на кириллице (например _ткань!.jpg), заключенные в тег [img]
[img]http://www.blablabla.ru/LNQ0/_ткань!.jpg[/img]
Открыть ./includes/message_parser.php
Найти

Код: Выделить всё

		if (!preg_match('#^' . get_preg_expression('url') . '$#i', $in) && !preg_match('#^' . get_preg_expression('www_url') . '$#i', $in))
Заменить на

Код: Выделить всё

		if (!preg_match('#^' . get_preg_expression('url') . '$#iu', $in) && !preg_match('#^' . get_preg_expression('www_url') . '$#iu', $in))
Найти

Код: Выделить всё

		if (!preg_match('#^[a-z0-9]+://#i', $in))
Заменить на

Код: Выделить всё

		if (!preg_match('#^[a-z0-9]+://#iu', $in))
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Shredder »

Sheer
У меня и без этого всё работает.
Можешь дать пример реальной картинки, которая не работала без выложенных тобой правок?
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Пчелкин »

А мне поддержку русских названий как-то сам хостер на серверном уровне наладил...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Sheer »

[img]http://www.blablabla.ru/LNQ0/_ткань!.jpg[/img]

Добавлено спустя 50 секунд:
Shredder писал(а):У меня и без этого всё работает.
Может и работает, может из-за настроек апача, но тут нет.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
ostridm
phpBB 2.0.7
Сообщения: 552
Стаж: 14 лет 5 месяцев
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение ostridm »

так чего с " будет патч? ;)
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Shredder »

Sheer
Я потому и просил настоящую картинку, что эта не открывается. - Object not found!
Хотел проверить на той, где ты это впервые заметил.
ostridm писал(а):так чего с " будет патч? ;)
Сделаешь - будет))
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Sheer »

Shredder
Дело не в том, существует ли картинка в реальности или нет. Дело в том, что не работает парсинг bb-кода [img].
Мои правки относятся именно к функции bbcode_img()
Ну вот реальная
[img]http://www.photodownload.ru/dm/LNQ0/_ткань!.jpg[/img]
Как видишь bb-код не работает.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Shredder »

Sheer писал(а):Как видишь bb-код не работает.
Здесь данный мод вообще не установлен, конечно он не будет работать.

Добавлено спустя 5 минут 38 секунд:
Без установленного мода у меня код ведёт себя точно так же, как в твоём примере - парсинг не работает. С установленным - работает без дополнительных правок.

Добавлено спустя 12 минут 57 секунд:
Sheer писал(а): может из-за настроек апача
Какие должны быть настройки, чтобы работало или не работало? Какие параметры на это влияют?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Sheer »

Shredder писал(а):Здесь данный мод вообще не установлен
Проверял на здешнем субдомене, с установленным модом не работает. С правками работает. Оно и логично, ибо чтобы pregmatch() работала с юникодом необходима опция u
Shredder писал(а):Какие должны быть настройки
Не знаю.

Добавлено спустя 40 секунд:
Да, и на локалке на денвере тоже не работает без правки.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Shredder »

Sheer
Посмотрел - первая из предложенных тобой правок изначально присутствует в моде, видимо потому у меня и работало. Не знаю, почему у тебя её не было. Вторая строка кода проверяет наличие протокола http:// в URL и при необходимости добавляет его, больше она ничего не делает, поэтому изменения там не нужны. Проверил на денвере - всё работает с дефолтным модом.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Sheer »

Shredder писал(а):Посмотрел - первая из предложенных тобой правок изначально присутствует в моде
Точно.... видать с устатку правку прозевал. И на старуху бывает проруха.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Shredder »

Sheer
Вот потому и нужно ставить автомодом ;)

Добавлено спустя 4 минуты 51 секунду:
Кстати, если добавлять к парсингу круглые скобки - (), то при указании URL в скобках (иногда люди указывают часть своей речи в скобках, вот как сейчас) эти скобки также добавляются в активную ссылку и в результате ссылка оказывается битой. Как можно бороться с этим багом, я не знаю. Кроме указания скобок ( через пробел ) - наверное, никак.
Dmirtiy_spb
phpBB 1.2.1
Сообщения: 26
Стаж: 12 лет 8 месяцев
Откуда: Санкт-Петербург
Благодарил (а): 13 раз
Поблагодарили: 1 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Dmirtiy_spb »

Shredder писал(а):Вместо "заплаток" нужно использовать \p{P}, добавив этот кусок после всех \pL, добавляемых модом. Тогда будут работать все символы
Я воспользовался этим советом, теперь в ссылки преобразуется практически всё. В том числе важные для bb кодов квадратные скобки.

А можно их как-то исключить? Т.е. чтобы в ссылки так же продолжали преобразовываться все символы, но уже кроме [ и ]. То есть создать для них какое-то персональное исключение или типа того.

А то если ссылка стоит в самом начале цитаты или в самом конце(вплотную к квадратной скобке) - сообщение приобретает ненормальный вид.

Заранее большое спасибо за любые идеи.
Dmirtiy_spb
phpBB 1.2.1
Сообщения: 26
Стаж: 12 лет 8 месяцев
Откуда: Санкт-Петербург
Благодарил (а): 13 раз
Поблагодарили: 1 раз

Re: Non-latin Symbols in URL / Поддержка нелатинских ссылок

Сообщение Dmirtiy_spb »

ostridm писал(а):это и есть html :) перед тем как скормить строку в регулярку надо выполнить преобразование,

местами они есть.... типа того

Код: Выделить всё

$message = str_replace(array(':', '.'), array(':', '.'), $message);
$undid_bbcode_specialchars = true;
А можно таким же образом [ и ] (то есть квадратные скобки) заменить на ' [' и ' ]' ? :roll:

То есть типа если встречаем квадратную скобку, то втыкаем перед ней пробел. Это где можно прописать в каком месте?

Вернуться в «Бета-версии модов для phpBB 3.0.x»