После добавления глоссария отображаются не все ресурсы
Количество ответов: 29Курсы состоят из html-документов. После добавления глоссариев половина страниц перестала открываться половина ссылок не работает.
Но стоит отключить автосвязывание глоссария в фильтрах, страницы снова все открываются и наоборот, включаешь фильтр, не работают.
Что делать?
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4
Apache API Version 20051115
HTTP_USER_AGENT Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.8.1.14) Gecko/20080404 AdCentriaIM/1.7 Firefox/2.0.0.14
Re: После добавления глоссария отображаются не все ресурсы
Изучив исходники я вроде нашел проблему:
в файле /lib/filterlib.php в строке 168 или рядом
$modifiers = ($linkobject->work_casesensitive) ? 's' : 'isu';
нужно убрать модификатор 'u', который видимо работает некорректно... должно быть так:
$modifiers = ($linkobject->work_casesensitive) ? 's' : 'is';
Данный баг добавлен в трекер. Посмотрим на реакцию разработчиков.
Re: После добавления глоссария отображаются не все ресурсы
Просто этот тег в свое время помог при автосвязывании фраз с кириллическими символами.
И текущий код в 1.8 для php 5.2.0-8 работает у меня нормально...
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
Вот я и интересуюсь как ЕЕ решить именно ЛОКАЛЬНО
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
такое ощущение что что-то с куками
Re: После добавления глоссария отображаются не все ресурсы
В чей багтрак?
Для теста можно попробовать нечто такое:
<?php
$text = 'Иванов иванов иВанов';
print $text . '<br>';
print preg_replace('/иванов/isu', '<b>иван</b>', $text) . '<br>';
?>
Естественно, что этот фрагмент кода должен быть в utf8
У меня под Linux и апачем 1.3x с php 4.4.4 (локаль, под которой запускается апач ru_RU.cp1251) работает -- все меняется на иван, а вот с апачем 2.2.4 и php 5.2.3 (локаль ru_RU.utf8) -- не работает.
Re: После добавления глоссария отображаются не все ресурсы
Решилась проблема. PHP ставил из пакетов, равно как и все остальное. Оказалось, что PHP собран с поддержкой внешней PCRE библиотеки. Пересобрал PCRE с ключами --enable-utf8 --enable-unicode-properties, брал версию 7.6. И все заработало (в итоге в текстах стали нормально связываться слова из глоссария без учета регистра).
Re: После добавления глоссария отображаются не все ресурсы
Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\moodle\www\lib\filterlib.php on line 178
как ее лечить?!??!
Re: После добавления глоссария отображаются не все ресурсы
РНР не хватает 30 сек. чтобы выполнить скрипт. Вы файл загружаете какого размера?
Попробуйте увеличить интервал в настойках РНР...
Re: После добавления глоссария отображаются не все ресурсы
Некоторые страницы содержат больше схем и таблиц, но грузятся без проблем, а эти страницы весят немного и в чем закономерность этих вылетов я не знаю
Кстати где имено увеличивается этот интервал, в каком файле?! и на какой строке?
Я еще думала что проблема может быть в Viste, но утречком перенесла всю систему на XP проблема осталась..
Re: После добавления глоссария отображаются не все ресурсы
файл php.ini
параметр max_execution_time
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
2Олеся Петрова
А что у Вас в lib\filterlib.php на 178 строке? Код в смысле какой?
Re: После добавления глоссария отображаются не все ресурсы
foreach (array_unique($list_of_notfullmatches[0]) as $key=>$value) {
$notfullmatches['<*'.$key.'*>'] = $value;
}
if (!empty($notfullmatches)) {
$text = str_replace($notfullmatches,array_keys($notfullmatches),$text);
}
Re: После добавления глоссария отображаются не все ресурсы
Хм,
Ну на if() врядли должно тормозить, скорее всего тормоза строчкой выше, где preg_match_all(). Очень похоже на проблемы PCRE в PHP (см. багтрак http://bugs.php.net/bug.php?id=44336). Думается, что выход -- либо патчить PHP, либо смотреть на Ваши файлы (в смысле тексты) -- видать, там очень много совпадений. Насколько я понял, тормозит ведь не на всех текстах?
Re: После добавления глоссария отображаются не все ресурсы
Тормозит не на всех. но дело в том, что на тех страницах, которые открываются нормально, тоже немало совпадений, я бы даже сказал приличное количество.
Кстати для обновления ресурса эти страницы открываются, а вот просмотреть их не получается
Re: После добавления глоссария отображаются не все ресурсы
То, что они открываются для обновления (редактирования) -- понятно, при этом не происходит фильтрации контента. Кусок кода, в котором тормоза, посвящен обнаружению и отсеиванию слов, частично совпадающих со словарными. Получается, что в тормозных текстах ну очень много совпадений (и частичных), либо в тексте какая-то бяка, на которой regex затыкается (возможно, какие-то невоспроизводимые символы и т.п.).
В принципе, Вы можете попробоввать все это смоделировать вне мудла, взяв этот тормозной кусок в отдельный php, правда предварительно придется подправить filterlib.php в этом куске, чтобы он выдал значения $regexp и $text.
И еще, чтобы текст открылся для просмотра, попробуйте весь его обрамить тэгами <nolink></nolink>, т.е. в самом начале поставьте <nolink>, а в самом конце </nolink> -- это для ресурса "просто текст". Если ресурс типа "html", то обрамить <span class="nolink"></span> (или все выделить и нажать на тулбаре кнопку с цепью с красным крестом).
Re: После добавления глоссария отображаются не все ресурсы
ВОПРОС, а на кой я тогда глоссарий создавал, если он в оекциях отображаться не будет.
данное решение проблемы, можно сделать проще, отрубить вообще фильтр и тоже будет открываться и не будет никаких ссылок!
а мне ссылки нужны, вот в чем проблема!
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
Напишите ОБЯЗАТЕЛЬНО об этом в том багрепотре на который я привел ссылку!
У меня эта проблема с закачаными внешними ресурсами, соответственно разработчики и написали что юзать нужно юникодные тексты и баг прикрыли... в вашем случае - это реальный баг который нужно искать и исправлять!
Re: После добавления глоссария отображаются не все ресурсы
Re: После добавления глоссария отображаются не все ресурсы
