Via - Virtual Classroom

Activities ::: mod_via
Maintained by SVI eSolutions, Thomas Fauquignon
The Via activity module provides integration between Moodle and Via, our virtual classroom tool. It is designed to simplify the use of synchronous events within Moodle. It provides a single sign on between the two systems with easy event creation and management.
Latest release:
219 sites
17 fans
Current versions available: 6

The Via activity module provides integration between Moodle and Via, a virtual teaching tool. It is designed to simplify the use of synchronous events within Moodle. It provides a single sign on between the two systems with easy event creation and management.

To connect to Via, you will need to create an account with us at SVI e Solutions. We will then provide a personalized URL and authentification keys that will be required in the plugins' parameters to create activities. These provide added security.

The module allows users to create Via - Virtual Classroom activities by adding many instances to a course. When creating the activity, the creator will have the choice of creating an activity with a start and end time and date or a permanent activity, which is always open. These can be great for homework groups. There is even a block that will display all the permanent activities of a course which offers quick access.  The activity creator can also chose if the activities can be recorded and made public. There is another block to display the recordings to made access quicker and easier. The enrollment method can be set to automatic or manual.  With the automatic enrollment all students enrolled in the course will be added as participants. The users will be synchronized with the help of the Moodle cron. The presenter will be the activity creator, but can be changed manually. An animator can be added manually. When manual enrollment is chosen the creator can pick which students will be allowed to participate.

Any user who creates or joins a meeting will have their account created on the Via server (if one doesn't already exist) and they will be signed in automatically using HTTP header authentication. So, as long as the user is logged into Moodle they will never have to enter in user details to get access to the Via activity.

The plugin is available in french and english.


Screenshot #0
Screenshot #1
Screenshot #2


SVI eSolutions (Lead maintainer)
Thomas Fauquignon
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Anthony Borrow
    Wed, Apr 2, 2014, 12:17 PM
    I noticed that your plugin is storing its settings in the mdl_config table rather that the mdl_config_plugins. In order to avoid what I call $CFG bloat, it is recommended to use get_config to pull the data out of mdl_config_plugins.

    It would be better if the UApi did not have to be at the root of the Moodle install as that tends to break the plugin nature of things. It seems to function as a library. I am not sure if you might want to make it a separate local plugin or leave it in its current location.

    For now, I am going to mark this plugin as needing more work until we get these issues resolved.

    Peace - Anthony
  • Anthony Borrow
    Thu, Sep 25, 2014, 2:34 PM
    The latest version is throwing an error during installation because of the line:

    $plugin = new stdClass();

    I would also recommend removing many of the comments and either put them in a CHANGELOG file or the README. The README file indicates making some changes to Moodle core. Plugins are not permitted to do this as it technically makes them patches. Patches are not accepted in Moodle unless in the other category.

    Also, it is recommended to only include in the plugin the English lang files and then use AMOS to provide languages (in your case the French language pack).

    For now I am going to mark this as needing some more work until these issues are resolved. Peace - Anthony
  • Anthony Borrow
    Fri, Sep 26, 2014, 1:46 PM
    I see that this has been marked for another review; however, the file listed as the current version is still the old one. It looks like you may have forgotten to mark the version(s) of Moodle for which the zip file is intended. Go ahead and update the latest version with the necessary information and I will give it another look. Peace - Anthony
  • Anthony Borrow
    Wed, Oct 1, 2014, 3:56 AM
    I went ahead and marked version 2014080163 as being for Moodle 2.7. This is needed so that folks can install from Moodle Plugins; however, it was marked as invisible and I am not sure if that was something you did intentionally or not. If that is the latest version to be reviewed, please make it visible by clicking the show push button and then scheduling it for review. Peace - Anthony
  • Anthony Borrow
    Wed, Oct 1, 2014, 6:10 AM
    Thanks for providing the version of Moodle for which the plugin is intended. I was able to get the plugin to install without issue so we are making progress. It looks like this plugin requires a third-party subscription based service. Since I am unable to test the functionality of the plugin, might webe able to setup a quick demonstration so that I can see the plugin in action? Also, the licensing issue remains with phpxml.php. I noticed that some of the filesin this plugin reference a license that is not GPL compatible. All files in the plugin must be GPL compatible to be approved in Moodle plugins. You can see a list of all valid licenses at: For now, I amgoing to mark this plugin as needing more work until weget these issue resolved. Thanks for your patience with the review and approval process. Peace - Anthony
  • Anthony Borrow
    Wed, Oct 1, 2014, 6:11 AM
    It is encouraged to follow Moodle's coding style as outlined in: and http:/

    The code checker plugin can be quite helpful in fine tuning your code and can be found at: https:/

    You may wish to consider using that tool to further improve your plugin. Below are the initial results:

    Files found: 47

    mod/via/CHANGELOG.txt - 7 error(s) and 11 warning(s)
    mod/via/README.txt - 9 error(s) and 0 warning(s)
    mod/via/api.class.php - 2663 error(s) and 45 warning(s)
    mod/via/auth.php - 49 error(s) and 0 warning(s)
    mod/via/backup/moodle2/backup_via_activity_task.class.php - 18 error(s) and 4 warning(s)
    mod/via/backup/moodle2/backup_via_stepslib.php - 90 error(s) and 14 warning(s)
    mod/via/backup/moodle2/restore_via_activity_task.class.php - 44 error(s) and 3 warning(s)
    mod/via/backup/moodle2/restore_via_stepslib.php - 194 error(s) and 6 warning(s)
    mod/via/choosecategories.php - 268 error(s) and 6 warning(s)
    mod/via/conntest.php - 105 error(s) and 3 warning(s)
    mod/via/db/access.php - 45 error(s) and 0 warning(s)
    mod/via/db/install.php - 3 error(s) and 0 warning(s)
    mod/via/db/log.php - 64 error(s) and 0 warning(s)
    mod/via/db/upgrade.php - 292 error(s) and 13 warning(s)
    mod/via/edit_review.form.php - 2 error(s) and 0 warning(s)
    mod/via/edit_review.php - 297 error(s) and 4 warning(s)
    mod/via/index.php - 32 error(s) and 4 warning(s)
    mod/via/javascript/conntest.js - 8 error(s) and 0 warning(s)
    mod/via/javascript/list.js - 4 error(s) and 0 warning(s)
    mod/via/javascript/viabutton.js - 3 error(s) and 0 warning(s)
    mod/via/lang/en/help/activitytype.html - 1 error(s) and 1 warning(s)
    mod/via/lang/en/help/enroltype.html - 2 error(s) and 0 warning(s)
    mod/via/lang/en/help/mods.html - 1 error(s) and 0 warning(s)
    mod/via/lang/en/help/session.html - 9 error(s) and 5 warning(s)
    mod/via/lang/en/help/via/activitytype.html - 1 error(s) and 1 warning(s)
    mod/via/lang/en/help/via/enroltype.html - 2 error(s) and 0 warning(s)
    mod/via/lang/en/help/via/mods.html - 1 error(s) and 0 warning(s)
    mod/via/lang/en/help/via/session.html - 9 error(s) and 5 warning(s)
    mod/via/lang/en/via.php - 112 error(s) and 1 warning(s)
    mod/via/lib.php - 4457 error(s) and 193 warning(s)
    mod/via/manage.form.php - 31 error(s) and 1 warning(s)
    mod/via/manage.php - 457 error(s) and 25 warning(s)
    mod/via/mod_form.php - 659 error(s) and 33 warning(s)
    mod/via/phpxml.php - 287 error(s) and 2 warning(s)
    mod/via/restorelib.php - 181 error(s) and 21 warning(s)
    mod/via/send_invite.form.html - 2 error(s) and 0 warning(s)
    mod/via/send_invite.php - 67 error(s) and 5 warning(s)
    mod/via/settings.php - 218 error(s) and 11 warning(s)
    mod/via/styles.css - 22 error(s) and 0 warning(s)
    mod/via/tabs.php - 36 error(s) and 4 warning(s)
    mod/via/testadminid.php - 63 error(s) and 2 warning(s)
    mod/via/uapi/auth.php - 122 error(s) and 6 warning(s)
    mod/via/uapi/getversion/index.php - 31 error(s) and 0 warning(s)
    mod/via/version.php - 7 error(s) and 0 warning(s)
    mod/via/view.assistant.php - 58 error(s) and 0 warning(s)
    mod/via/view.php - 709 error(s) and 49 warning(s)
    mod/via/view.via.php - 301 error(s) and 7 warning(s)

    Total: 12043 error(s) and 485 warning(s)
  • Thu, Nov 13, 2014, 5:05 AM
    Hi. Thanks for being patient with the review process and for continuous improvements to your plugin. I gave it another round of
    review and detected some issues that block the approval at the moment.

    SQL queries have table names hardcoded with the mdl_ prefix. This will cause failures on sites that use other or no prefix for DB
    tables. Parameters are injected into the queries via variable expansion, which may lead to potential security risks. Please use
    placeholders (? or :named) only. Also, please use placeholders instead of attempting to quote values yourself for cross-db

    Many global scope functions in your plugin do not use expected via_ prefix. To prevent accidental name collision, make sure to use
    proper prefix for them all (or wrap them as member methods of a properly named class).

    Your lib.php contains a lot of code not related to public interface of an activity module. As these libs are loaded at every request
    from all plugins, it is required to keep them as small as possible - they should contain just necessary interface functions. All the
    internal logic of your module should go to locallib.php that is included only when needed.

    Using superglobals like $_REQUEST or $_POST is strongly discouraged. Moodle provides solid API for processing and sanitization of
    user input. Bypassing it may again lead to serious issues, including security related ones.

    The restorelib.php file seems to be a relict of a previous version of the plugin.

    Your CSS selectors in styles.css such as A.button may affect HTML elements outside your module scope. Please use CSS selectors
    specific to your module's output.

    Things like `if (function_exists('require_capability'))` are irrelevant after including the main config.php that bootstraps the
    whole Moodle environment. Please follow the code structure and common code flow used by other activity modules.

    The requirement to contact SVIeSolutions to obtain API keys and other access data should be mentioned in this plugin description, as
    many admins do not read the README file.

    AFAIK, some sites might have issues with network communication via http:// streams opened via fopen(). Most Moodle code relies on
    the solution via cURL.

    For now, I am going to mark this plugin as needing more work until we get these issues resolved.
  • Tue, Feb 24, 2015, 10:30 PM
    Thanks for providing a new version. It's good to see that most issues raised during the last review were fixed. I am going to approve this module now. You are cleared to land - welcome to the Plugins directory!
  • Sat, Jun 11, 2016, 1:10 AM
    Hi, I have a new version to add. I've done the code chekcer and wanted to check the code a again using the Pluginbot/prechecker... Is that possible? If so, how? Also I was hopeing to clear out some of theses old comments, is that possible? If so, how? I can't seem to find a 'delete' button or anything...
  • Sat, Dec 3, 2016, 6:39 PM

    As a policy, we do not delete the comments raised during the approval review. There is nothing wrong about them. Things should be transparent and open as much as possible in an open source project. With regards to prechecker, please refer to

  • Thu, Jun 1, 2017, 7:36 PM
  • Wed, Jun 7, 2017, 2:38 AM
    this plugin is free?
  • Wed, Jun 7, 2017, 3:28 AM
    Hi Michell,
    The Moodle plugin is free but not the virtual classroom service:
    To connect to Via, you will need to create an account with us at SVI e Solutions:
  • Fri, Apr 3, 2020, 12:02 PM
    Where is the API base url?
1 2
Please login to post comments