Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Useful core Javascript modules: Difference between revisions

From MoodleDocs
Line 21: Line 21:
</code>
</code>


The string will be retrieved via AJAX request on the first use.
The string will be retrieved via AJAX request on the first use and cached in browser local storage until purge caches or site upgrade


IT IS NOT RECOMMENDED to call:
IT IS NOT RECOMMENDED to call:

Revision as of 02:22, 27 July 2015

Moodle 2.9


Configuration settings (core/config)

Example of using config module: require(['core/config’], function(mdlcfg) {

   cosole.log(mdlcfg.wwwroot); // outputs the wwwroot of moodle to console

});

Language strings (core/str)

Example of using language strings module (retrieved via ajax, if the string is not yet loaded) require([‘core/str’], function(str) {

   str.get_string('edita', 'core', stringargument).done(function(s) {
      console.log(s);
   }).fail(console.log(e));

});

The string will be retrieved via AJAX request on the first use and cached in browser local storage until purge caches or site upgrade

IT IS NOT RECOMMENDED to call: $PAGE->requires->string_for_js('edita', 'core'); // You do not need this!

Because:

  • The list of strings used now needs to be maintained in 2 places
  • The strings are always sent, and bloat the page size even if they are not used
  • All strings fetched via the AJAX method above are cached in browser local storage anyway, so these strings will never be used 99% of the time

Notifications (core/notification)

Examples: require(['core/notification’], function(notification) {

   notification.alert('Welcome', 'Hello to my site!', 'Continue');

});

Strings and notifications: require(['core/str', 'core/notification’], function(str, notification) {

               str.get_strings([
                       {'key' : 'delete'},
                       {'key' : 'confirmdeletetag', component : 'tag'},
                       {'key' : 'yes'},
                       {'key' : 'no'},
                   ]).done(function(s) {
                       notification.confirm(s[0], s[1], s[2], s[3], function() {
                           window.location.href = href;
                       });
                   }
               ).fail(notification.exception);

});

See also