Note: You are currently viewing documentation for Moodle 3.3. Up-to-date documentation for the latest stable version of Moodle is probably available here: NEWMODULE Tutorial.

Development:NEWMODULE Tutorial

From MoodleDocs
Revision as of 03:23, 28 April 2009 by Tim Hunt (talk | contribs)

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.


Template:New Module

How to Begin the Creation of a New Module

  1. Choose a name for your module. Take care: no capital letter and no numbers in the name. In this example it will be choosen: "widget".
  2. Find/replace all the occorrences of newmodule in each file with the name of your own module.
  3. Change the name of the folder containing you new created module to "widget".
  4. Change the name of the file in widget/lang/en_utf8/newmodule.php to "widget.php".
  5. Put your just born widget folder in moodle/mod/.
  6. Visit "notification" page of moodle->Site Administration block.
  7. Follow the instruction on the screen.

widget.gif

Some Basic Regulation for the Beginner PHP Developer

You will probably want to use this set of basic commands:

  • require
  • require_once
  • include
  • include_once

Take in mind the difference between them.
The difference between require and include is: require produces a fatal E_ERROR level error which halts execution if the specified file cannot be accessed while include produces a warning E_WARNING which does not halt execution if the specified file cannot be accessed
The difference between require and require_once is: require_once checks if the file has been included and does not include it again if it has
The difference between include and include_once is: include_once checks if the file has been included and does not include it again if it has
Use only xxx to call libraries and use only xxx to include snippets of code written to different files.

Remember:

  • redirect moves the execution of the code to the target file and you are allowed to call the target file passing it some parameters, for instance: redirect("./come_modello/edit.php?id=$cm->id");
  • include requires the name of the called file "clean", without "?id=$cm->id", for instance, and the target file is executed as it were written in the place of the calling row.

You need these two informations to correctly include library files into target files called through redirect or include.

See also: