Note: You are currently viewing documentation for Moodle 3.7. Up-to-date documentation for the latest stable version of Moodle may be available here: Modules.

Development:Modules: Difference between revisions

From MoodleDocs
No edit summary
(→‎See also: discussion link added)
Line 36: Line 36:
* http://download.moodle.org/plugins16/mod/NEWMODULE.zip - new module template for versions of Moodle prior to 1.7. Please follow the README instructions inside the zip.
* http://download.moodle.org/plugins16/mod/NEWMODULE.zip - new module template for versions of Moodle prior to 1.7. Please follow the README instructions inside the zip.
* Using Moodle [http://moodle.org/course/view.php?id=5 Activity modules] forum
* Using Moodle [http://moodle.org/course/view.php?id=5 Activity modules] forum
* Using Moodle forum discussions: [http://moodle.org/mod/forum/discuss.php?d=66165 A new resource type: where do I put the language strings?], [http://moodle.org/mod/forum/discuss.php?d=65986 New Module Template Code for Moodle 1.7], [http://moodle.org/mod/forum/discuss.php?d=86837 Third-party module backup]
* Using Moodle forum discussions: [http://moodle.org/mod/forum/discuss.php?d=66165 A new resource type: where do I put the language strings?], [http://moodle.org/mod/forum/discuss.php?d=65986 New Module Template Code for Moodle 1.7], [http://moodle.org/mod/forum/discuss.php?d=86837 Third-party module backup], [http://moodle.org/mod/forum/discuss.php?d=90154 LEGACY roles and capabilities]


[[Category:Developer|Modules]]
[[Category:Developer|Modules]]

Revision as of 15:19, 13 June 2008

Activity modules reside in the 'mod' directory. Each module is in a separate subdirectory and consists of the following mandatory elements (plus extra scripts unique to each module):

  • mod_form.php - a form to set up or update an instance of this module
  • version.php - defines some meta-info
  • icon.gif - a 16x16 icon for the module
  • db/install.xml - defines the structure of db tables for all database types. Is used during module installation
  • db/upgrade.php - defines changes in the structure of db tables. Is used during module upgrade
  • db/access.php - defines module capabilities
  • index.php - a page to list all instances in a course
  • view.php - a page to view a particular instance
  • lib.php - any/all functions defined by the module should be in here. If the modulename is called widget, then the required functions include:
  • widget_install() - will be called during the installation of the module
  • widget_add_instance() - code to add a new instance of widget
  • widget_update_instance() - code to update an existing instance
  • widget_delete_instance() - code to delete an instance
  • widget_user_outline() - given an instance, return a summary of a user's contribution
  • widget_user_complete() - given an instance, print details of a user's contribution
  • Other functions available but not required are:
  • To avoid possible conflict, any module functions should be named starting with widget_ and any constants you define should start with WIDGET_
  • backuplib.php and restorelib.php (optional)
  • settings.php - (optional) a form definition to set up or update global settings of this module
  • lang/en_utf8/widget.php - (optional) Lastly, each module will have some language files that contain strings for that module.

IMPORTANT: When creating a new module, the new name of the module must not contain numbers or other special characters!

You need a db table with the same name as your module. This table must have at least three fields: id, course and name.

You should also make sure that your activity module provides appropriate support for groups and metacourses.

See also