Проблему можно решить, если заменить вызовы
"htmlentities($text)"
на
"htmlentities($text,ENT_COMPAT,get_string("thischarset","moodle"))"
Прилагаю патч, исправшяющий проблему с ресурсами в формате "простой текст" в moodle 1.4.3 +
Этот файл нужно положить в папку moodle/lib
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
Исправление проблемы PLAIN_TEXT я уже давно направил Мартину … не помню помещал ли в багтракер, возможно по этому она еще не исправлена … Я проверю …
Данная проблема исправляется просто:
- Найдите файл /lib/weblib.php
- Найдите в файле функцию format_text (~632 строка)
Закоментируйте одну строку в этой функции двумя слэшами
case FORMAT_PLAIN:
// $text = htmlentities($text); $text = rebuildnolinktag($text); $text = str_replace(" ", " ", $text); $text = nl2br($text); break;
А что с Wiki? Как я понял речь идет о ресурсе, а не о модуле …
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
В результате - русский текст отображается только "местами".
Да к тому же она там вызывается не единожды...
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
А это с какой версии PHP у htmlentities появилось столько аргументов? Такое наверное может не у всех заработать?
Простое отключение данной функции дает правильный результат. Или может есть какие-то тонкости?
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
Но вместо нее можно использовать htmlspecialchars()
Назначение этой строчки - экранировать специальные символы html (в первую очередь "<"). Если этого не сделать, то текст будет отображаться неправильно. Например: после знака меньше оставшаяся часть текста не будет показана, или, если загрузить в качестве ресурса php-скрипт, пользователь php-кода не увидит.
В принципе, в нашем случае совершенно безболезненно можно использовать htmlspecialchars() вместо htmlentities(). Эта функция экранирует только специальные символы html, а кириллические символы совсем не трогает.
Если бы при загрузке ресурса PLAIN_TEXT была возможность указать его кодировку, функция htmlentities() с дополнительным параметром обеспечила бы правильное отображение текста, не зависимо от текущей кодировки просматривающего пользователя (например, стала бы возможна демонстрация "умляутов" в русском интерфесе - эту возможность оценили бы преподаватели французского, немецкого и латыни).
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
Путь /mod/wiki/ewiki/ewiki.php
В функции ewiki_split_title
строчку return($entities ? htmlentities($id) : $id);
заменить на return($entities ? htmlentities($id, ENT_QUOTES, "cp1251") : $id);
В остальном пока вроде все нормально.
Ooops!
В функции ewiki_make_title надо исправить
$title = htmlentities ($title);
на
$title = htmlentities ($title, ENT_QUOTES, "cp1251");
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
в функции htmlentities нужно добавить именно
get_string("thischarset","moodle")
а не "cp1251". Так будет надежнее.
Re: Проблемы с кодировкой в ресурсах PLAIN_TEXT и WIKI
Ксати после 2 дней возни я разобрался как запустить 3D Quicktime из курса "Использование Moodle" госпожи Maryia Davidouskaia. Вообще я категорически против использования в курсах технологий которые могут работать лишь под одной платформой или только под определенными броузерами. Это имхо неправильно.
Я установил себе на www.touchscience.ru версию 1.5.1, и поисправлял вызовы htmlentities. Теперь у меня wiki работает! Как давно я этого желал )
Вот готовый файлик, всем желающим.
P.S.: Выкладывать его в CSV в таком виде вроде бы нельзя потому, что этих параметров у этой функции нет в достаточно распрастранённой предыдущей версии, а дистрибутив moodle должен быть работоспособным. Мартин в одном из форумов предлагал сделать для предыдущих версий функцию-заменитель со всеми параметрами, но насколько я понимаю, этого никто не делал ещё.
Там, кстати не только в этом файлике нужно делать изменения...
А вообще хочу обратить ваше внимание на новый модуль dfwiki. Это существенно более крутой модуль, который активно разрабатывается. Недавно вышла версия 1.0 в которой глюков СУЩЕНСТВЕННО МЕНЬШЕ, а возможностей уже сейчас гораздо больше, чем в этом, извините за выражение, глюкало - ErfurtWiki!
Все можно найти в форуме Wiki, в том числе и патчик от вашего покорного слуги...
dfwiki обязательно посмотрю, спасибо.