## Filters: VlabEmbed

filter_vlabembed
Maintained by Pavlo Nechipurenko, Sergey Semerikov
A Moodle filter plug-in to embed ChemCollective Virtual Lab problems using the Vlab Java applet. It embeds any assigments (both local and global). This filter will replace links to a Vlab file (.xml) in [vlab]...[/vlab] block with a java applet that plays that ChemCollective Virtual Lab inline.
6 sites
2 fans
Moodle 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9

### VlabEmbed

A Moodle filter plug-in to embed ChemCollective Virtual Lab problems using the Vlab Java applet.
It embeds any assigments (both local and global).

NOTICE: this software is in no way endorsed by or affiliated with the official ChemCollective project or team.

•  This filter will replace links to a Vlab file (.xml) in [vlab]...[/vlab] block
•  with a java applet that plays that ChemCollective Virtual Lab inline

#### Installation

To install (on Moodle 2/3):

1. Uncompress the Zip/Gzip archive, and copy the folder renamed 'vlabembed' to your moodle/filter/ directory.
3. Choose 'On' or 'Off but available' in the drop-down menu next to 'VlabEmbed'.
4. Configure plugin width, height, language (available codes: BR - Brasilian Portugese, CA - Catala, DE - Deutsch, ES - Espanol, FR - Francais, GR - Greek, RU - Russian, UK - Ukrainian) and Vlab files autodownload facilities.
5. Vlab files external sources are need to filter's work: by default, Virtual Lab applet files are not included into VlabEmbed filter package due to it license (CC BY-NC-ND 3.0) is not compatible with the GNU GPLv3. So you can install Vlab files via vlabinstaller.php. You can also manually download archive of Vlab applet files from http://ict-chem.ccjournals.eu/vlab_ukr.zip, http://kdpu.edu.ua/download/kaf_chem/books/vlab_ukr.zip or https://sites.google.com/site/kafedrahimiie/necipurenko-p/chemistry-virtual-lab-ukrainian-version/ukraienskaversiavirtuallab/vlab_ukr.zip and extract them into filter directory (yoursitemoodledirectory/filter/vlabembed) or download it separately from ChemCollective site:
      http://chemcollective.org/assets/modules/activities/vlab/vlab.jar      http://chemcollective.org/assets/modules/activities/vlab/junit.jar      http://chemcollective.org/assets/modules/activities/vlab/logclient.jar      http://chemcollective.org/assets/modules/activities/vlab/lang.xml      http://chemcollective.org/assets/modules/activities/vlab/lang_ar.xml      http://chemcollective.org/assets/modules/activities/vlab/lang_ru.xml      http://chemcollective.org/assets/modules/activities/vlab/language.xml
b) Create subdir 'assignments' at yoursitemoodledirectory/filter/vlabembed/ and put int it:
      http://chemcollective.org/assets/modules/activities/vlab/assignments/Default.xml      http://chemcollective.org/assets/modules/activities/vlab/assignments/Walkthrough.xml
c) Create subdir 'images' at yoursitemoodledirectory/filter/vlabembed/ and put int it:
                                                                                                                                    http://chemcollective.org/assets/modules/activities/vlab/images/icon.ico            http://chemcollective.org/assets/modules/activities/vlab/images/icon32.ico
d) Create subdir 'fonts' at yoursitemoodledirectory/filter/vlabembed/ and put int it:
      http://chemcollective.org/assets/modules/activities/vlab/fonts/ARIALUNI.TTF
e) Create subdir 'default' at yoursitemoodledirectory/filter/vlabembed/assignments/ and put int it:
      http://chemcollective.org/assets/modules/activities/vlab/assignments/default/filesystem.xml      http://chemcollective.org/assets/modules/activities/vlab/assignments/default/reactions.xml      http://chemcollective.org/assets/modules/activities/vlab/assignments/default/species.xml      http://chemcollective.org/assets/modules/activities/vlab/assignments/default/spectra.xml
f) Create subdir 'walkthrough' at yoursitemoodledirectory/filter/vlabembed/assignments/ and put int it:
      http://chemcollective.org/assets/modules/activities/vlab/assignments/walkthrough/filesystem.xml      http://chemcollective.org/assets/modules/activities/vlab/assignments/walkthrough/reactions.xml      http://chemcollective.org/assets/modules/activities/vlab/assignments/walkthrough/species.xml      http://chemcollective.org/assets/modules/activities/vlab/assignments/walkthrough/spectra.xml

#### Usage

The syntax to embed a project:

    [vlab]http-link to a Vlab problem file (.xml)[/vlab]

#### Notes

• Tested in Moodle 2.9-3.0.2.
• No javascript, no database access - very simple!
• Filter syntax is case-sensitive.
• The plug-in is internationalized in Moodle 2 in Deutsch, Russian, and Ukrainian.

#### Notices

VlabEmbed plugin, Copyright (c) 2015-2016 Pavlo Nechipurenko, Sergey Semerikov.

License: <http://www.gnu.org/copyleft/gpl.html>; GNU GPL v3 or later.

### Contributors

Sergey Semerikov: developer

• Tue, Apr 28, 2015, 4:08 PM
• Tue, Apr 28, 2015, 5:47 PM

Hi guys. Thanks for sharing this filter with the Moodle community. Prior to approving it, some issues must be clarified.

• Licensing of the ChemCollective code. I am afraid that the CC BY-NC-ND 3.0 license is not compatible with the GNU GPLv3. As such, it is not allowed to distribute your Moodle plugin code together with the ChemCollective code in one package. One option might be to distribute just the Moodle code via the Plugins directory, and admins would need to obtain required Java code themselves. It would help to have the plugin code restructured a bit so that it is clear what parts relate directly to Moodle and what is added to make the Java part work.
• Related to that is the fact that the Java code included in the JAR archives in your plugin seems to contain just the compiled .class files without the source .java files available. This again violates the GNU GPL license.
• On the same note, there is no sign on what license do the included fonts and assignments use and where they were obtained from.
• Localisation. Do I get it right that there is no English language pack available for the ChemCollective? We have a policy that all the plugins should provide the English interface at least.

I am going to mark this as needing more work for now to sort these issues out.

• Wed, May 27, 2015, 5:10 PM

Hi guys. Thanks for the updated version. I appreciate your attempt to try and make the additional software downloader in-built into the filter to fix the licensing issues. There are some issues with the current implementation though.

• It is not clearly documented (here in the Plugins directory, in the README file and in the UI itself) what files and from what sources are to be downloaded and to where. Admins should be well informed on what is going on.
• If the web server process does not have write access to the filter directory, it does not cancel the installation but keeps trying to download and install all the files.

I would recommend to put the Java applet installer into a separate script within you filter and do to mix it with the filtering functionality. Make it available for the site admins only. Make it so the installation is not triggered by anybody but must be explicitly requested and confirmed by the site admin (as it is now, any call to format_text() may trigger the java applet installation). You can then put a link to this installer into the settings form of your filter and provide all the information about the process there. I really believe that would be cleaner solution from both technical and usability perspective. Let me know what you think.

• Tue, Jul 21, 2015, 9:02 PM

Hi. Thanks for the new version. I think the new approach solves the licensing issue in a good way. While reviewing the code, I spotted two more issues that might be good to have sorted out before making the plugin available here. Especially the setting variables naming is better to have done correctly since the day 0, rather than having to write an upgrade step later.

Once the raised issues #2 and #3 are fixed, I believe this is good to be approved. Thanks for your patience with the review and approval process.

• Tue, Jul 21, 2015, 10:46 PM
Salve, David!

Thanks for your patience with the review and approval process too.

Vale,
Sergey