Note:

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

Frankenstyle

From MoodleDocs
Revision as of 07:07, 24 August 2011 by Martin Dougiamas (talk | contribs)

'Frankenstyle' refers to the naming convention that is used to uniquely identify a Moodle plugin based on the type of plugin and its name.

Martin Dougiamas is credited with inventing the word 'frankenstyle' to describe this naming system which was invented by Petr Skoda. (It is a great word!)

Format

Frankenstyle names have a prefix and then a name, separated by an underscore.

  • The prefix is determined by the type of plugin. For example, the prefix for an activity module is mod.
  • The name is the name of the plugin. (Plugin names are always made of lower-case letters.)

So the frankenstyle name for the quiz module is mod_quiz.

Plugin types

  • Activity modules: [mod] => /mod
  • Admin reports: [report] => /admin/report
  • Assignments: [assignment] => /mod/assignment/type
  • Authentication plugins: [auth] => /auth
  • Blocks: [block] => /blocks
  • Course formats: [format] => /course/format
  • Course reports: [coursereport] => /course/report
  • Database field types: [datafield] => /mod/data/field
  • Database presets: [datapreset] => /mod/data/preset
  • Editors: [editor] => /lib/editor
  • Enrolment plugins: [enrol] => /enrol
  • Filters: [filter] => /filter
  • Grade export plugins: [gradeexport] => /grade/export
  • Grade import plugins: [gradeimport] => /grade/import
  • Grade reports: [gradereport] => /grade/report
  • Local plugins: [local] => /local
  • Messaging consumers: [message] => /message/output
  • Mnet services: [mnetservice] => /mnet/service
  • Plagiarism plugins: [plagiarism] => /plagiarism
  • Portfolio plugins: [portfolio] => /portfolio
  • Question behaviours: [qbehaviour] => /question/behaviour
  • Question formats: [qformat] => /question/format
  • Question types: [qtype] => /question/type
  • Quiz reports: [quiz] => /mod/quiz/report
  • Repository plugins: [repository] => /repository
  • SCORM reports: [scormreport] => /mod/scorm/report
  • Themes: [theme] => /theme
  • User profile fields: [profilefield] => /user/profile/field
  • Webservice protocols: [webservice] => /webservice
  • Workshop allocation strategies: [workshopallocation] => /mod/workshop/allocation
  • Workshop evaluation plugins: [workshopeval] => /mod/workshop/eval
  • Workshop grading forms: [workshopform] => /mod/workshop/form

To get a definitive list, do print_object(get_plugin_types()); in a Moodle 2.x install.

Usages

Frankenstyle is used in:

Table names

All table names for a plugin must begin with its frankenstyle name (after the standard Moodle table prefix).

Examples: mdl_mod_quiz, mdl_mod_quiz_attempts

Capabilities

All capabilities for a plugin use the frankenstyle name, except with a / instead of a _.

Example: mod/quiz:viewattempt

Other places (TODO)

Please add more as they come up.