Ограничить доступ к картинкам в тесте

Ограничить доступ к картинкам в тесте

от Владимир Дмитриев -
Количество ответов: 3

Здравствуйте.

У нас на главной странице создана библиотека ЭУМК для общего доступа. Соответственно, ооочень много картинок (формулы в основном).

При создании -редактирования вопроса теста, который расположен на уровне категории (не курса), для вставки картинки в вопрос становятся доступны все картинки Главной страницы (вроде так и должно быть?). Соответственно в комбобокс "Картинка для показа" грузится огромный список картинок - все виснет.  Что делать?

В ответ на Владимир Дмитриев

Re: Ограничить доступ к картинкам в тесте

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

А. Переходить на Moodle 2.0. Там всё сделано для решения этой проблемы - рисунки относящиеся к конкретному вопросу хранятся в контексте самого вопроса.

Б. Переходить на TinyMCE и в PHP вручную отключать поле для выбора картинки. Тогда во всех новых вопросах нужно будет выбирать картинку для вставки через файловый менеджер tinyMCE, может быть будет удобнее, если у Вас там всё структурированно. Возможно и в стандартном редакторе moodle 1.9 можно удобно включать рисунки, было давно, не помню.

В. Создать специальный пустой курс в той категории, где будут вопросы. Дать доступ к этому курсу ВСЕМ. Создавать вопросы в нём, в нём же располагать рисунки. После этого переносить их в контекст категории. Если доступ к курсу будет у всех, они смогут увидеть картинки и тестируюся из других курсов. Когда в нём накопится до неудобного много картинок, создать ещё один такой курс и т.д.

Г. Использовать для представления формул фильтр TeX. Формулы в этом случае будут находится в тексте вопроса и преобразовываться в рисунки автоматически. При этом качество этих рисунков будет не хуже, чем c любым из конвертеров рисунков. Я, честно сказать, ни одного не видел конвертера рисунков из Ворда, который сопоставимое качество давал.

Д. Рисунки можно непосредственно внедрять в текст вопроса, пользуясь представлением RFC 2397. Тогда рисунок будет храниться и перемещаться вместе с вопросом. Но для этого потребуется расширять вручную поля базы данных и конвертировать рисунки особым образом.

В ответ на Владимир Дмитриев

Re: Ограничить доступ к картинкам в тесте

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Перечитал ещё раз Вашу проблему. Может быть достаточно просто в PHP закомментировать этот комбобокс?

dev\question\type\edit_question_form.php

в районе строки 100

make_upload_directory($this->coursefilesid);    // Just in case
$coursefiles = get_directory_list("$CFG->dataroot/$this->coursefilesid", $CFG->moddata);
foreach ($coursefiles as $filename) {
if (mimeinfo("icon", $filename) == "image.gif") {
$images["$filename"] = $filename;
}
}
if (empty($images)) {
$mform->addElement('static', 'image', get_string('imagedisplay', 'quiz'), get_string('noimagesyet'));
} else {
$mform->addElement('select', 'image', get_string('imagedisplay', 'quiz'), array_merge(array(''=>get_string('none')), $images));
}

Всё указанное вставить внутрь условия
if ($this->coursefilesid != 1) {
вставить выделенное сюда
}

Возможно сработает
В ответ на Vadim Dvorovenko

Re: Ограничить доступ к картинкам в тесте

от Владимир Дмитриев -

Спасибо, Вадим. Способ со сменой редактора попробую. До варианта с edit_question_form.php дошел сам и он работает, однако разумеется - это не гибкий путь. Расстраивает, что сразу не сделал библиотеку в отдельном курсе, может быть еще попробую перенести, но придется в базе менять кучу ссылок, а это не безопасно. Еще раз спасибо за ответ.