Есть ли возможность сохранять формулы в виде картинок (после обработки tex-ом) при экспорте тестов в каком-либо формате?
Нет, встроенной возможности нет. Фильтр преобрзует их в картинки "на лету", а хранятся они везде в виде TeX.
Из простых решений могу посоветовать поставить MathType 6.5, сохранить тесты в текстовый файл, открыть в ворде, сделать замену два доллара на один доллар, переключить их в формулы (первый пункт меню mathtype), сконвертировать рисунки d изображения в MathType.
Можно переучить Moodle сохранять формулы в виде рисунков при экспорте, но тогда экспортный формат должен поддерживать внедрение рисунков, а все форматы экспорта из moodle - это просто разные текстовые форматы. Короче говоря, нужно писать новый фильтр, который, к примеру, будет выдавать zip-архив, содержащий html-файл с красиво отформатированными вопросами и рисунки отдельно.
Из простых решений могу посоветовать поставить MathType 6.5, сохранить тесты в текстовый файл, открыть в ворде, сделать замену два доллара на один доллар, переключить их в формулы (первый пункт меню mathtype), сконвертировать рисунки d изображения в MathType.
Можно переучить Moodle сохранять формулы в виде рисунков при экспорте, но тогда экспортный формат должен поддерживать внедрение рисунков, а все форматы экспорта из moodle - это просто разные текстовые форматы. Короче говоря, нужно писать новый фильтр, который, к примеру, будет выдавать zip-архив, содержащий html-файл с красиво отформатированными вопросами и рисунки отдельно.
Для сохранения курсов есть блок "htmlexport". Там картинки сохраняются. Хотелось бы то же самое и для экспорта тестов.
Для последующего импорта?
Нет. Для создания html - странички с тестом.
Интересно, а для чего это нужно? Как она потом будет использоваться?
>> Интересно, а для чего это нужно? Как она потом будет использоваться?
Мне тоже интересно )
Влад, если вопросы содержат только формулы в формате ТеХ, попробуйте экспорт в формат XHTML. В backupdata\quiz\ появится html-страница с вопросами, в которой формулы обработаны фильтром и представлены в виде рисунков (см. рис.).
Учтите, что не все типы вопросов можно экспортировать таким образом.
Мне тоже интересно )
Влад, если вопросы содержат только формулы в формате ТеХ, попробуйте экспорт в формат XHTML. В backupdata\quiz\ появится html-страница с вопросами, в которой формулы обработаны фильтром и представлены в виде рисунков (см. рис.).
Учтите, что не все типы вопросов можно экспортировать таким образом.
На основе экспорта тестов в XHTML у нас написан формат, где еще добавляется Javascript, чтобы тесты были рабочими, т.е. чтобы студент мог проверить свои знания, запустив этот тест в браузере без привязки к серверу.
Но при экспорте в формате XHTML там сохраняются ТОЛЬКО ссылки, на сервер с символами, а не картинки, а хотелось бы чтобы была еще папочка с картинками, наподобие "сохранить как" в браузере, или блока "htmlexport". Но даже при доступности этих ссылок формулы отображаются неверно почему-то, (похоже мешаются html теги), хотя в MOODLE все отображается нормально.
Но при экспорте в формате XHTML там сохраняются ТОЛЬКО ссылки, на сервер с символами, а не картинки, а хотелось бы чтобы была еще папочка с картинками, наподобие "сохранить как" в браузере, или блока "htmlexport". Но даже при доступности этих ссылок формулы отображаются неверно почему-то, (похоже мешаются html теги), хотя в MOODLE все отображается нормально.
> На основе экспорта тестов в XHTML у нас написан формат...
Примерно это я и ждал услышать...
Влад, пару-тройку лет назад я делал экспорт тестов (правда несколько более масштабный ) с выгрузкой и картинок, и формул. Правда я не обновлял этот экспорт для 1.9.х...
Главный вопрос, который меня интересует - не находятся ли в открытом виде правильные ответы в вашем JS?
Влад, если вы согласитесь сделать шифрование ответов "от дурака" в JS и выложите ваш формат в открытый доступ, то я обновлю свой экспорт до 1.9 и поделюсь со всеми экспортом формул и картинок.
Как вам такое предложение?
Примерно это я и ждал услышать...
Влад, пару-тройку лет назад я делал экспорт тестов (правда несколько более масштабный ) с выгрузкой и картинок, и формул. Правда я не обновлял этот экспорт для 1.9.х...
Главный вопрос, который меня интересует - не находятся ли в открытом виде правильные ответы в вашем JS?
Влад, если вы согласитесь сделать шифрование ответов "от дурака" в JS и выложите ваш формат в открытый доступ, то я обновлю свой экспорт до 1.9 и поделюсь со всеми экспортом формул и картинок.
Как вам такое предложение?
Хорошо.
Только формат используется для следующих типов вопросов: TRUEFALSE, MULTICHOICE, SHORTANSWER, NUMERICAL, MATCH, и база вопросов одна и та же.
Сделаю какое-нибудь шифрование и выложу с примерами. Сейчас действительно ответы просто скрыты, и для их просмотра достаточно посмотреть исходный код страницы.
Предполагалось, что для студента эти тесты будут просто как подспорье в изучении курса, а проверка знаний все равно будет или в MOODLE, или каким-то другим способом.
Можно бы экспорт тестов и для 1.8.4 . Пока еще не перешли на 1.9.х, но в ближайшее время перейдем.
Только формат используется для следующих типов вопросов: TRUEFALSE, MULTICHOICE, SHORTANSWER, NUMERICAL, MATCH, и база вопросов одна и та же.
Сделаю какое-нибудь шифрование и выложу с примерами. Сейчас действительно ответы просто скрыты, и для их просмотра достаточно посмотреть исходный код страницы.
Предполагалось, что для студента эти тесты будут просто как подспорье в изучении курса, а проверка знаний все равно будет или в MOODLE, или каким-то другим способом.
Можно бы экспорт тестов и для 1.8.4 . Пока еще не перешли на 1.9.х, но в ближайшее время перейдем.
2 Dmitry:
Давайте начнём с чёткой формулировки задачи.
Как я понимаю, экспортировать разумнее нужно не совсем базу вопросов - лучше уже сгенерированный тест. То есть, чтобы на основе существующего теста генерировать zip с html страничкой и всеми картинками. А если тесте генерируется как случайная выборка - то можно сразу выбрать число вариантов и они сгенерируются.
2 Влад:
Не торопитесь делать шифрование в javascript. Всё, что можно загрузить и проанализировать, можно победить. Если вы хотите сделать защиту от дурака, то конечно можно сделать какое-то шифрование, но не очень разумно тратить на это силы. Лучше начать с подгонки модуля до версии 1.9
Что касается шифрования, то предлагаю следующий подход.
Создавая тест преподаватель указывает пароль.
Таблица правильных ответов записывается как md5(мусор+пароль+id вопроса+id правильного ответа)
Пока пароль неизвестен, определить, какие же ответы дают нужную контрльную сумму нельзя.
Даже при пустом пароле защита от дурака будет существенная - в уме md5 трудно посчитать.
Ну или можно просто шифровать таблицу ответов ключом (постоянный мусор+пароль) каким-нибудь хорошим алгоритмом. После тестирования преподаватель сообщает пароль и результат отображается.
Правда я с трудом представляю, как это реализовать на JS
С другой стороны весь современный JS обязан нормально обрабатывать xml - можно написать универсальный javascript, который будет в лучших традициях ajax брать из файла базу в moodleXML и её отображать, параллельно заменяя пути в ссылках на локальные. Тогда модификации для кода moodle минимальны, но всё упирается в грамотный JS.
Давайте начнём с чёткой формулировки задачи.
Как я понимаю, экспортировать разумнее нужно не совсем базу вопросов - лучше уже сгенерированный тест. То есть, чтобы на основе существующего теста генерировать zip с html страничкой и всеми картинками. А если тесте генерируется как случайная выборка - то можно сразу выбрать число вариантов и они сгенерируются.
2 Влад:
Не торопитесь делать шифрование в javascript. Всё, что можно загрузить и проанализировать, можно победить. Если вы хотите сделать защиту от дурака, то конечно можно сделать какое-то шифрование, но не очень разумно тратить на это силы. Лучше начать с подгонки модуля до версии 1.9
Что касается шифрования, то предлагаю следующий подход.
Создавая тест преподаватель указывает пароль.
Таблица правильных ответов записывается как md5(мусор+пароль+id вопроса+id правильного ответа)
Пока пароль неизвестен, определить, какие же ответы дают нужную контрльную сумму нельзя.
Даже при пустом пароле защита от дурака будет существенная - в уме md5 трудно посчитать.
Ну или можно просто шифровать таблицу ответов ключом (постоянный мусор+пароль) каким-нибудь хорошим алгоритмом. После тестирования преподаватель сообщает пароль и результат отображается.
Правда я с трудом представляю, как это реализовать на JS
С другой стороны весь современный JS обязан нормально обрабатывать xml - можно написать универсальный javascript, который будет в лучших традициях ajax брать из файла базу в moodleXML и её отображать, параллельно заменяя пути в ссылках на локальные. Тогда модификации для кода moodle минимальны, но всё упирается в грамотный JS.
Вах!
Вадим, попридержите лошадей!
Я готов сделать ровно то, что предложил. Я еще не полный альтруист, чтобы выполнять какие-то работы по тех.заданиям бесплатно.
Я готов поделиться некоторыми своими разработками в обмен на то, что кто-то другой сделает что-то бесплатно для всего сообщества, а в будущем кто-то еще, возможно, доработает это.
Давайте будем воспринимать мою инициативу как некую воспитательную работу...
Собственно я буду совершенно не против, если ВЫ возьмете то, что сделаем Влад и я и реализуете то, что сами четко сформулировали в первом абзаце...
Вадим, попридержите лошадей!
Я готов сделать ровно то, что предложил. Я еще не полный альтруист, чтобы выполнять какие-то работы по тех.заданиям бесплатно.
Я готов поделиться некоторыми своими разработками в обмен на то, что кто-то другой сделает что-то бесплатно для всего сообщества, а в будущем кто-то еще, возможно, доработает это.
Давайте будем воспринимать мою инициативу как некую воспитательную работу...
Собственно я буду совершенно не против, если ВЫ возьмете то, что сделаем Влад и я и реализуете то, что сами четко сформулировали в первом абзаце...
Перечисленых типов вопросов вполне достаточно в 95% случаев. Не совсем понял про то, что база вопросов одна и та же...
Мы говорим про экспорт вопросов а не тестов, поэтому экспортируются вопросы из какой-то категории. Саму категорию мы выбрать вполне в состоянии...
По поводу шифрования:
Думаю вполне достаточно будет упаковывать массив ответов в base64 при экспорте и разворачивать жаба-скриптом... ну или что-то вроде этого.
Студент ессно должен иметь возможность увидеть результат прохождения теста.
Предложение Вадима с паролем интересное, но у меня есть еще интереснее...
Года три назад мне рассказывали про такую технологию:
1. Имеется xml (или xhtml ?) файл с вопросами который может быть прислан студенту например по почте.
2. Студент открывает его в браузере (!), отмечает правильные ответы и нажимает кнопку Сохранить внизу страницы, при этом ответы сохраняются прямо в этот же xml файл, который студент, например, посылает обратно. Ничего кроме браузера не используется.
Это конечно не тоже самое о чем мы говорим... здесь не обучающий режим прохождения теста, а как-раз контролирующий, т.к. в данном случае xml не должен содержать правильных ответов.
Просто я не занимался технической стороной этого вопроса, но надеюсь кто-нибудь сможет что-то рассказать или решит его изучить...
Мы говорим про экспорт вопросов а не тестов, поэтому экспортируются вопросы из какой-то категории. Саму категорию мы выбрать вполне в состоянии...
По поводу шифрования:
Думаю вполне достаточно будет упаковывать массив ответов в base64 при экспорте и разворачивать жаба-скриптом... ну или что-то вроде этого.
Студент ессно должен иметь возможность увидеть результат прохождения теста.
Предложение Вадима с паролем интересное, но у меня есть еще интереснее...
Года три назад мне рассказывали про такую технологию:
1. Имеется xml (или xhtml ?) файл с вопросами который может быть прислан студенту например по почте.
2. Студент открывает его в браузере (!), отмечает правильные ответы и нажимает кнопку Сохранить внизу страницы, при этом ответы сохраняются прямо в этот же xml файл, который студент, например, посылает обратно. Ничего кроме браузера не используется.
Это конечно не тоже самое о чем мы говорим... здесь не обучающий режим прохождения теста, а как-раз контролирующий, т.к. в данном случае xml не должен содержать правильных ответов.
Просто я не занимался технической стороной этого вопроса, но надеюсь кто-нибудь сможет что-то рассказать или решит его изучить...
Сделал, как вы сказали:
из PHP -> base64, а далее в javascripte еще пришлось в utf8 переводить
Во вложении сам формат и пример (история1.html) полученная уже после "сохранить как" в браузере.
Вначале получается естественно только html-файл со ссылками на сервер.
С остальными заморочками не связывался, т.к. нам пока это без надобности, а вот вопросы с картинками, в том числе и с формулами после обработки TEXом очень бы хотелось.
А подгонки под версию 1.9 вроде бы никакой не требуется, и так работает.
из PHP -> base64, а далее в javascripte еще пришлось в utf8 переводить
Во вложении сам формат и пример (история1.html) полученная уже после "сохранить как" в браузере.
Вначале получается естественно только html-файл со ссылками на сервер.
С остальными заморочками не связывался, т.к. нам пока это без надобности, а вот вопросы с картинками, в том числе и с формулами после обработки TEXом очень бы хотелось.
А подгонки под версию 1.9 вроде бы никакой не требуется, и так работает.
ОК. Я внимательно посмотрю в ближайшее время.
Хочу обратить ваше внимание на то, что нужно конвертировать кавычки в " (см. html в вопросе 6 про Колчака), иначе это может повлиять на результат. Еще хорошо было бы избавиться от ссылок на словарь.
Хочу обратить ваше внимание на то, что нужно конвертировать кавычки в " (см. html в вопросе 6 про Колчака), иначе это может повлиять на результат. Еще хорошо было бы избавиться от ссылок на словарь.
Дмитрий, ау-у-у!
Вы не забыли про меня?
Вы не забыли про меня?
А я жду когда вы подправите проблемные моменты...
Влад, так вы оказывается с факультета технологии и предпринимательства новосибирского педа (пригляделся к урлам в примере)!...
Я, собственно, тоже в НГПУ работаю...
Я, собственно, тоже в НГПУ работаю...
Влад, вопросы типа "Верно/Неверно" не экспортируются в вашем формате. Это не гуд...
Дмитрий, когда посмотрите все, напишите список замечаний. Я постараюсь исправить.
Этот тип вопросов (TRUEFALSE) действительно не использовался у нас, поэтому и не учитывался.
Этот тип вопросов (TRUEFALSE) действительно не использовался у нас, поэтому и не учитывался.
Влад, в целом у меня все работает. Кроме Верно/Неверно ессно.
Замечаний у меня по ходу возникло много, но мне было проще исправить все самому.
Прикрепляю исправленный и причесанный JS (обнаружилось что не поддерживались частично верные ответы в множественном выборе). Добавьте в него и в php поддержку вопросов Верно/Неверно.
Я убрал и JS конвертацию Юникод, т.к. запихивать в value текст самого вопроса было на мой взгляд странной идеей изначально (как минимум в тексте могут быть кавычки). Я заменил это на хеши md5, т.о. и конвертация теперь не нужна.
Замечаний у меня по ходу возникло много, но мне было проще исправить все самому.
Прикрепляю исправленный и причесанный JS (обнаружилось что не поддерживались частично верные ответы в множественном выборе). Добавьте в него и в php поддержку вопросов Верно/Неверно.
Я убрал и JS конвертацию Юникод, т.к. запихивать в value текст самого вопроса было на мой взгляд странной идеей изначально (как минимум в тексте могут быть кавычки). Я заменил это на хеши md5, т.о. и конвертация теперь не нужна.
Дмитрий, а когда будет обещанный код для экспорта формул и картинок?
Хотя бы для версии 1.8 (правда мы недавно перешли на 1.9, но долго ждать не хочется).
Мне достаточно написать поддержку вопросов TRUEFALSE?
С Юникодом и мд5 я что-то не совсем понял? Вы шифруете правильные ответы в PHP, передаете в js их хеши, а потом сравниваются хеши ответов? Тогда и base64 не нужно?
Хотя бы для версии 1.8 (правда мы недавно перешли на 1.9, но долго ждать не хочется).
Мне достаточно написать поддержку вопросов TRUEFALSE?
С Юникодом и мд5 я что-то не совсем понял? Вы шифруете правильные ответы в PHP, передаете в js их хеши, а потом сравниваются хеши ответов? Тогда и base64 не нужно?
Все работает ровно так как у вас.
Я как-раз ожидал что вы будете сравнивать хеши ответов, но у вас другая система и я ее не трогал. Просто в value помещается не копия видимого текста.
У меня все уже работает. Вам осталось только доделать TRUEFALSE. Можете использовать мой js, можете свой - как хотите. Как только ваша часть будет готова, я выложу результат.
Я как-раз ожидал что вы будете сравнивать хеши ответов, но у вас другая система и я ее не трогал. Просто в value помещается не копия видимого текста.
У меня все уже работает. Вам осталось только доделать TRUEFALSE. Можете использовать мой js, можете свой - как хотите. Как только ваша часть будет готова, я выложу результат.
Прошу извинить за задержку.
С truefalse - все просто, надо только изменить немного FORMAT.PHP, а java скрипт можно не трогать. Мой вариант предлагаю.
С возможностью скрыть ответ на truefelse труднее, но там и так вероятность угадать довольно велика.
Можно для скрытности ответов генерировать случайное число в начало и в конец массива ответов.
Спасибо за ваши замечания.
Попутно удалось получить правильное отображение формул в TEXе. Сделал это не очень все осознанно ("обкронал" функцию repchar($text), убрал комментарии для HTML ) , поэтому надеюсь на ваши знания и опыт, и ваш вариант.
С нумерацией вопросов не очень все хорошо, когда сами вопросы написаны в Worde. Тогда текст вопроса начинается всегда с нового абзаца. Но это и ссылки на глоссарий, видимо, можно убрать через функци php "замена в тексте" в тексте вопроса и вариантов вопроса...
Чего гадать, жду вашего варианта.
С truefalse - все просто, надо только изменить немного FORMAT.PHP, а java скрипт можно не трогать. Мой вариант предлагаю.
С возможностью скрыть ответ на truefelse труднее, но там и так вероятность угадать довольно велика.
Можно для скрытности ответов генерировать случайное число в начало и в конец массива ответов.
Спасибо за ваши замечания.
Попутно удалось получить правильное отображение формул в TEXе. Сделал это не очень все осознанно ("обкронал" функцию repchar($text), убрал комментарии для HTML ) , поэтому надеюсь на ваши знания и опыт, и ваш вариант.
С нумерацией вопросов не очень все хорошо, когда сами вопросы написаны в Worde. Тогда текст вопроса начинается всегда с нового абзаца. Но это и ссылки на глоссарий, видимо, можно убрать через функци php "замена в тексте" в тексте вопроса и вариантов вопроса...
Чего гадать, жду вашего варианта.
Для записи дисков с курсами и тестами без установки самого MOODLE.
Удобно для удаленных филиалов, где выход в интернет связан с какими-то трудностями. Может и еще для чего-то, надо спросить руководство.
Удобно для удаленных филиалов, где выход в интернет связан с какими-то трудностями. Может и еще для чего-то, надо спросить руководство.
2 Влад - ну тогда вам прямая дорога писать самому фильтр для экспорта. Изначально Мудл подразумевает, что тесты существуют только внутри системы.
После обработки tex-фильтром (т. е., после открытия страницы с формулами) формулы в картинках кешируются и сохраняются в папке moodledata\filter\tex\ или moodledata\filter\algebra\, смотря, каким фильтром пользовались.
Естественно, при наличии доступа к этим папкам, все формулы в виде картинок можно использовать где угодно на веб-страницах, скопировав в каталог файлов курса.
Естественно, при наличии доступа к этим папкам, все формулы в виде картинок можно использовать где угодно на веб-страницах, скопировав в каталог файлов курса.
Отделил обсуждение из "Снова о формулах" в собственную ветку.