Загальне
Нечипуренко П.П., Семеріков С.О.
ДВНЗ "Криворізький національний університет"
Інтеграція віртуальної хімічної лабораторії Virtual Lab із системою Moodle
При створенні та реалізації електронних освітніх ресурсів (ЕОР) з хімії на основі системи Moodle необхідно ураховувати особливості хімії як науки та як навчального предмету: хімічну мову та хімічний експеримент.
У системі Moodle більшість компонентів хімічної мови може бути забезпечена стандартними засобами створення навчальних текстів, інша частина вимагає застосування спеціальних хімічних плагінів. Досвід профільного хімії з використанням Moodle 2.8.5 надає можливість зробити висновок, що існуючих плагінів Moodle достатньою для створення хімічних текстів будь-якої складності.
Зовсім по іншому виглядає ситуація із підтримкою хімічного експерименту. Зрозуміло, що натурний експеримент повністю замінити неможливо і недоцільно. Тим не менше, великої популярності останнім часом набувають віртуальні хімічні лабораторії, у яких моделюються натурні хімічні експерименти.
Віртуальні хімічні експерименти, зокрема у системі Moodle, надають можливість:- підготуватись до проведення натурного експерименту;
- змоделювати експеримент, що не може бути проведений у лабораторії з певних причин;
- забезпечити підтримку профільного навчання хімії за дистанційною формою.
Віртуальна хімічна лабораторія Virtual Lab (розробник – ChemCollective, Carnegie Mellon University) має такі основні переваги:
- вільне поширення (за ліцензією CC-BY-NC-ND);
- можливість локалізації українською (через додавання мовних записів у файл lang.xml);
- мобільність (локальне та браузерне виконання аплету vlab.jar).
Інтеграція Virtual Lab із системою Moodle виконується на трьох рівнях:
1) фреймова інтеграція лабораторії із сайту http://chemcollective.org;
2) убудовування компонентів аплету Virtual Lab у сторінки навчального курсу, розміщеного у Moodle, кодом:<applet code="irydium.vlab.VLApplet.class"
codebase=шлях_до_аплету archive="vlab.jar, logclient.jar, junit.jar"
height=висота_аплету
width=ширина аплету>
<param name="language" value=мова_аплету>
<param name="properties" value=шлях_до_файлу_лабораторної_роботи>
</applet>;Приклад застсування коду: необхідні файли були розміщені у каталозі Vlab на сайті ict-chem.ccjournals.eu
3) розробка розширення Moodle для роботи з Virtual Lab.
Інтеграцію Virtual Lab із системою Moodle на третьому рівні було здійснено шляхом створення фільтру, який замінює локальні посилання на файли лабораторних робіт у форматі .xml на код з другого рівня.
Для здійснення відповідної заміни посилання на файл лабораторної роботи має бути включено у блок [vlab][/vlab] на відповідній сторінці:
Сторінка курсу в режимі редагування, де розміщено посилання на файл з лабораторною роботою, у тому вигляді, у якому його зможе опрацювати фільтр VlabEmbed
Те саме вікно у режимі перегляду
Розроблений фільтр має класичну структуру:
- version.php – визначає мінімальну необхідну версію Moodle;
<?php
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015042400;
$plugin->release = 1.02;
$plugin->requires = 2010112400;
$plugin->component = 'filter_vlabembed';- filtersettings.php – визначає доступні налаштування (ширину, висоту та локалізацію аплету);
<?php
defined('MOODLE_INTERNAL') || die;
if ($ADMIN->fulltree) {
$settings->add(new admin_setting_configtext('filter_vlabembed_width', get_string('vlabembed_width','filter_vlabembed'), '', '800', PARAM_TEXT));
$settings->add(new admin_setting_configtext('filter_vlabembed_height', get_string('vlabembed_height','filter_vlabembed'), '', '600', PARAM_TEXT));
// $settings->add(new admin_setting_configtext('filter_vlabembed_lang', get_string('vlabembed_lang','filter_vlabembed'), '', 'UK'));
$languages = array(
'EN' => get_string('vlabembed_langcode_EN','filter_vlabembed'),
'AR' => get_string('vlabembed_langcode_AR','filter_vlabembed'),
'CA' => get_string('vlabembed_langcode_CA','filter_vlabembed'),
'ES' => get_string('vlabembed_langcode_ES','filter_vlabembed'),
'GL' => get_string('vlabembed_langcode_GL','filter_vlabembed'),
'LT' => get_string('vlabembed_langcode_LT','filter_vlabembed'),
'BR' => get_string('vlabembed_langcode_BR','filter_vlabembed'),
'ZH' => get_string('vlabembed_langcode_ZH','filter_vlabembed'),
'DE' => get_string('vlabembed_langcode_DE','filter_vlabembed'),
'FR' => get_string('vlabembed_langcode_FR','filter_vlabembed'),
'GR' => get_string('vlabembed_langcode_GR','filter_vlabembed'),
'RU' => get_string('vlabembed_langcode_RU','filter_vlabembed'),
'UK' => get_string('vlabembed_langcode_UK','filter_vlabembed')
);$settings->add(new admin_setting_configselect('filter_vlabembed_lang', get_string('vlabembed_lang','filter_vlabembed'), '', 'EN', $languages));
}?>
Аплет локалізовано чотирма мовами (українською, англійською, російською та німецькою), але сама програма Virtual Lab має локалізацію на 13 мовах і можливість їх вибору також реалізована у налаштуваннях плагіну.
- filter.php – визначає клас-нащадок moodle_text_filter з основним методом filter та допоміжною функцією зворотного виклику.
<?php
defined('MOODLE_INTERNAL') || die();
require_once($CFG->libdir.'/filelib.php');
class filter_vlabembed extends moodle_text_filter {
function filter($text, array $options = array()) {
global $CFG, $PAGE;if (!is_string($text)) {
// non string data can not be filtered anyway
return $text;
}if (!preg_match('/\[vlab/i',$text)) {
return $text;
}$newtext = $text; // fullclone is slow and not needed here
$search = '/\[vlab](.+?)\[\/vlab]/is';
$newtext = preg_replace_callback($search, 'filter_vlabembed_callback', $newtext);if (is_null($newtext) or $newtext === $text) {
// error or not filtered
return $text;
}return $newtext;
}
}function filter_vlabembed_callback($link) {
global $CFG;
$width = $CFG->filter_vlabembed_width;
$height = $CFG->filter_vlabembed_height;
$lang = $CFG->filter_vlabembed_lang;
$copyright = get_string('vlab_copyright','filter_vlabembed');/*
$url = $link[1];
$relative_url = str_replace($CFG->wwwroot . '/', '../../', $url);$path = explode("/", $link[1]);
$filename = $path[count($path) - 1];$output =
'<applet code="irydium.vlab.VLApplet.class" codebase="' . $CFG->wwwroot . '/filter/vlabembed/" ' .
'archive="vlab.jar, logclient.jar, junit.jar" height="' . $height . '" width="' . $width . '">' .
'<param name="language" value="' . $lang . '">' .
'<param name="permissions" value="sandbox">' .
'<param name="properties" value="' . $relative_url . '">' .
'</applet>' ;
return $output;
*/$output=substr($link[0], strlen("[vlab]"), strlen($link)-strlen("[/vlab]"));
$temp = strstr($output,'http');
if($temp!==false)
{
if (strpos($temp, '"') !== false)
{
$temp = substr($temp, 0, strpos($temp, '"'));
}
if (strpos($temp, '>') !== false)
{
$temp = substr($temp, 0, strpos($temp, '>'));
}
$output =
'<applet code="irydium.vlab.VLApplet.class" codebase="' . $CFG->wwwroot . '/filter/vlabembed/" ' .
'archive="vlab.jar, logclient.jar, junit.jar" height="' . $height . '" width="' . $width . '">' .
'<param name="language" value="' . $lang . '">' .
'<param name="permissions" value="sandbox">' .
'<param name="properties" value="' . $temp . '">' .
'</applet>' ;
return $output;
}
else
return $link[0];
}?>
Додатково у каталозі lang визначено ряд мовних пакетів: "en" - для англійської мови; "uk" - для української; "ru" - для російської; "de" - для німецької.
Для файлів filter_vlabembed.php, що знаходяться у відповідних каталогах для англомовної та україномовної версій коди виглядають так:
<?php
$string['filtername'] = 'VlabEmbed';
$string['vlabembed_width'] = 'Vlab applet width';
$string['vlabembed_height'] = 'Vlab applet height';
$string['vlabembed_lang'] = 'Vlab applet language';
$string['vlab_copyright'] = 'IrYdium Project\'s Virtual Lab is a project of the Chemistry Collective at the Carnegie Mellon';
$string['vlabembed_langcode_EN'] = 'English';
$string['vlabembed_langcode_AR'] = 'Arabic';
$string['vlabembed_langcode_CA'] = 'Catalan';
$string['vlabembed_langcode_ES'] = 'Spanish';
$string['vlabembed_langcode_GL'] = 'Galician';
$string['vlabembed_langcode_LT'] = 'Lithuanian';
$string['vlabembed_langcode_BR'] = 'Portuguese (Brasil)';
$string['vlabembed_langcode_ZH'] = 'Chinese';
$string['vlabembed_langcode_DE'] = 'German';
$string['vlabembed_langcode_FR'] = 'French';
$string['vlabembed_langcode_GR'] = 'Greek';
$string['vlabembed_langcode_RU'] = 'Russian';
$string['vlabembed_langcode_UK'] = 'Ukrainian';
?><?php
$string['filtername'] = 'VlabEmbed';
$string['vlabembed_width'] = 'Ширина вікна аплета Vlab';
$string['vlabembed_height'] = 'Висота вікна аплета Vlab';
$string['vlabembed_lang'] = 'Мова локалізації аплета Vlab';
$string['vlab_copyright'] = 'IrYdium Project\'s Virtual Lab є проектом Chemistry Collective в університеті Carnegie Mellon';
$string['vlabembed_langcode_EN'] = 'Англійська';
$string['vlabembed_langcode_AR'] = 'Арабська';
$string['vlabembed_langcode_CA'] = 'Каталонська';
$string['vlabembed_langcode_ES'] = 'Іспанська';
$string['vlabembed_langcode_GL'] = 'Галісійська';
$string['vlabembed_langcode_LT'] = 'Литовська';
$string['vlabembed_langcode_BR'] = 'Португальська (Бразилія)';
$string['vlabembed_langcode_ZH'] = 'Китайська';
$string['vlabembed_langcode_DE'] = 'Німецька';
$string['vlabembed_langcode_FR'] = 'Французька';
$string['vlabembed_langcode_GR'] = 'Грецька';
$string['vlabembed_langcode_RU'] = 'Російська';
$string['vlabembed_langcode_UK'] = 'Українська';?>
Файли з російською та німецькою мовами локалізації виглядають аналогічно.
Установка плагіна є досить простою і полягає у виконанні наступних дій:
1. Розпакування ZIP/Gzip архіву і копіювання папки з назвою "vlabembed" до вашого каталогу Moodle/filter/.
2. Вхід в Moodle з правами адміністратора, перехід до Керування сайтом | Модулі | Фільтри | Управління фільтрами.
3. Вибір "Увімкнуто" або "Вимкнуто, але доступно" у меню, що випадає, навпроти "VlabEmbed". Інші параметри можуть бути налаштовані у маню "Налаштування".
4. Налаштування зручних для себе параметрів плагіна: ширини та висоти вікна, і мови із меню, що випадає.
В даний момент фільтр VlabEmbed знаходиться іще на стадії доопрацювання, зокрема приведення до відповідності усім вимогам і стандартам системи Moodle. Версію описану вище можна на веб-сервісі розробки програмного забезпечення GitHub за посиланням: https://github.com/ssemerikov/moodle-filter_vlabembed.
Таким чином, розробка фільтру надала можливість повністю інтегрувати віртуальну хімічну лабораторію Virtual Lab, що активно розвивається, із системою Moodle, що розширює можливості даної системи стосовно підтримки навчального процесу з хімії, а також сприятиме подальшому розвитку і вдосконаленню віртуальної лабораторії Virtual Lab.