При любых параметрах глоссария, слова чувствительны к регистру. Подозреваю на регулярные выражения, никто не встречался с данной проблемой?
Moodle 1.6.3+
При любых параметрах глоссария, слова чувствительны к регистру. Подозреваю на регулярные выражения, никто не встречался с данной проблемой?
Moodle 1.6.3+
Сорри за флуд, ответ нашелся почти сразу:
В версии 1.8 lib/filterlib.php строка 168
$modifiers = ($linkobject->work_casesensitive) ? 's' : 'isu'; // works in unicode mode!
u - в 1.6.3 данный модификатор отсутсвует.
>За нечувствительность к регистру в регулярных выражениях отвечает модификатор 'i'
ага, а за UTF-8 'u', соответственно за нечувствительность к регистру при UTF-8 должно быть 'iu' ;)
Таки не работает нечувствительность к регистру. Стоит версия 1.9. Linux, апач запускаю с локалью ru_RU.utf8.
И еще -- есть ли какие-нить моды или настройки, которые бы "автосвязывали" словарные слова не тупо по буквам, а по-русски -- со склонениями, числами и т.п.? Для английского это вроде работает?
Хм. Выходит, что баг где-то в PHP...
$text = 'Иванов иванов иВанов';
print preg_replace('/иванов/isu', '<b>иван</b>', $text);
меняется строго 'иванов', причем меняется даже если убрать 'isu'.
Решилась проблема. PHP ставил из пакетов, равно как и все остальное. Оказалось, что PHP собран с поддержкой внешней PCRE библиотеки. Пересобрал PCRE с ключами --enable-utf8 --enable-unicode-properties, брал версию 7.6. И все заработало (в итоге в текстах стали нормально связываться слова из глоссария без учета регистра).