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: Difference between revisions

From MoodleDocs
Line 6: Line 6:


= The static module =  
= The static module =  
# Create a module.js file somewhere  
1. Create a module.js file somewhere  
# The two way Moodle can load this file are:
2. The two way Moodle can load this file are:


## the file is in core: declare the file into /lib/outputrequirementslib.php/find_module($component)
a- the file is in core: declare the file into /lib/outputrequirementslib.php/find_module($component)


           //example:
           //example:
Line 17: Line 17:
                                     'requires' => array('node', 'event', 'overlay', 'io', 'json'));
                                     'requires' => array('node', 'event', 'overlay', 'io', 'json'));


## the file is in a local plugin: the first line of your module should be
b- the file is in a local plugin: the first line of your module should be


  M.local_xxx = {
  M.local_xxx = {
Line 23: Line 23:


  xxx being your plugin directory name.
  xxx being your plugin directory name.
# Write a first module
3. Write a first module


   M.local_hub={
   M.local_hub={
Line 36: Line 36:
   }
   }


# Call your first modul. It is better if it's in a php renderer script
4. 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
     $this->page->requires->js_init_call('M.local_hub.init'); //or $PAGE->requires->... if it's in not in a renderer

Revision as of 15:25, 17 August 2010

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:

a- 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'));

b- the file is in a local plugin: the first line of your module should be

M.local_xxx = {


xxx being your plugin directory name.

3. Write a first module

 M.local_hub={
   Y : null,
   transaction : [],
   init : function(Y){
       alert('hub module initialisation');
       this.Y = Y;
   },
 }

4. 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