Note: You are currently viewing documentation for Moodle 3.4. Up-to-date documentation for the latest stable version of Moodle is likely available here: How to create a YUI 3 module.

Development:How to create a YUI 3 module

From MoodleDocs

This document explain how to create a YUI 3 module in Moodle.

The two ways to write a YUI 3 module

  • create a static module like /rating/module.js. It is the easiest and quickest way. You choose this way because...
  • create a flexible and extendable module like /mod/glossary/yui/autolinker/autolinker.js. It is the hard way. You choose this way because...

The static module

  1. Create a module.js file somewhere
  2. The two way Moodle can load this file are:
    1. the file is in core: declare the file into /lib/outputrequirementslib.php/find_module($component)
         //example:
         case 'core_rating':
                   $module = array('name'     => 'core_rating',
                                   'fullpath' => '/rating/module.js',
                                   'requires' => array('node', 'event', 'overlay', 'io', 'json'));
    1. the file is in a local plugin: the first line of your module should be
M.local_xxx = {


xxx being your plugin directory name.
  1. Write a first module
 M.local_hub={
   Y : null,
   transaction : [],
   init : function(Y){
       alert('hub module initialisation');
       this.Y = Y;
   },
 }
  1. Call your first modul. It is better if it's in a php renderer script
   $this->page->requires->js_init_call('M.local_hub.init'); //or $PAGE->requires->... if it's in not in a renderer