removed mods directory from the ATutor codebase
[atutor.git] / mods / wiki / doc / PluginMetaFiles
diff --git a/mods/wiki/doc/PluginMetaFiles b/mods/wiki/doc/PluginMetaFiles
deleted file mode 100644 (file)
index 4e785d0..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-
-what plugin .meta files are for
--------------------------------
-
-Plugins in ewiki have traditionally been just an asorted collection
-of PHP include scripts. To accomodate real plugin management (using
-the PluginLoader or the ConfigurationWizard, WikiInstaller, mkxpi,
-INI-configurations and other stuff) we had to provide the necessary
-data in some form.
-
-In-plugin (within comment fields) or centralized (in a big db file)
-listings have been abandoned in favour of accompanying .meta files.
-The format is a RFC822/HTTP/VCARD-like list of name:value-pairs in
-a file with the .meta extension after the basename. This sort of
-file is easier and faster to parse than XML-style data containers.
-
-
-fields
-------
-
-Currently known and interpreted fields (most of them are optional)
-and possible values are:
-
-  api:        just "ewiki" or "PHP" for us
-               - could signalize an incompatible plugin, if other CMS
-                 suddenly adopted this .meta file scheme
-               - a value of "PHP" says that the plugin is NOT ewiki-
-                 specific
-
-  type:       general description of what the contained code does
-               - this field is NOT in ewiki-specific terminology
-               - eventually not useful in itself, informational
-              for example:
-                "functions"  - collection of (random) functions
-                "variables"  - variable definitions
-                "data"       - constants, large variables, etc.
-                "intercept"  - handlers and interrupting control code
-                "mangle"     - on strings or data hashes
-                "transform"  - html conversion
-                "link"       - page names / data mangling
-                "database"   - app
-                "auth"       - app
-                "input"      - form fields or so
-                "listing"    - (html) lists of page names
-                "special"    - unspecific
-                "virtual"    - the according .php script is ignored,
-                and "R"        only the .meta data important
-                "api"        - itself provides an interface, remote API
-              sometimes this field just simply contains the name of
-              an ewiki hook (not recommended)
-
-  hooks:      used ewiki plugin hooks as comma separated list,
-                "page"
-                "action"
-                ...
-              see also INTERNALS and API documentation
-
-  page:       occoupied plugin hooks for the given type, if any,
-  action:     comma separated
-  list:       (possible field names depend on what was set as type:)
-
-  id:         identifier for this plugin
-               - replaces basename of the current file
-               - not implemented yet
-
-  depends:    some pluginmanagers can automatically load other
-  conflicts:  plugins or include scripts, if that's a requirement
-              for the current function
-  recommends: another plugin which makes sense in conjunction to the
-              described
-  provides:   virtual plugin identifier, which other plugins may depend
-              upon (or conflict with)
-  delivers:   like provides:, but that ONLY one plugin may deliver it,
-              and all others so become conflicting
-
-  category:   plugins are grouped by structure of the plugins/
-              directory, but for some pluginmanagers a more
-              descriptive and divergent classification is possible
-              using this field and its values (more possible):
-              - action, admin, appearance, authentication, aview, database,
-                edit, extension, feature, filter, fragments, hypertext,
-                library, markup, meta, mpi, old, optimation, page, spam,
-                user
-              We use the plugins/ subdirectory name alternatively, but
-              if omitted the plugin could not appear in plugin listings.
-
-  priority:   how important is this plugin - if it's included/loaded
-              by default:
-                "core"           - always
-                "required"       - always
-                "standard"       - enabled
-                "default"        - enabled
-                "important"      - often is
-                "recommended"    - should be
-                "optional"       - user decided
-                "extra"          - ranks higher than "bonus"
-                "bonus"          - super-optional gimmicks
-                "rare"           - too special for most people
-                "deprecated"     - NOT recommended or old
-                "never"          - unused, can be enabled only by hand
-                "auto"           - a pure dependency
-              WikiInstaller uses this to make differently feature-
-              loaded versions.
-               - this would probably be served better by numeric
-                 importance levels (0..10), but hey
-
-  title:      shown by most pluginmanagers, informational
-  decription:
-
-  author:     informational fields for contributed plugins
-  homepage:   
-  license:
-  copyright:
-
-  url:        download page for new plugin versions
-
-  version:    contributed plugins or from different project/vendor
-              sometimes contain a version number
-
-  update:     URL of actual plugin .php file, best if accompanied
-              by .meta file; used for automatic updates
-
-  sort:       some plugins must be loaded in a certain order to
-              function properly (e.g. database interface before most
-              others)
-              - gives a relative sequence number
-              - default for all other plugins is 0
-              - range from -100 to +100 for ewiki plugins,
-                outside more for general PHP additions (like
-                upgrade.php)
-              rarely needed, rarely present, most pluginmanagers
-              already take care of the database plugins themselves
-
-  funcs:      for dependency/conflict checking, this entry lists
-              all defined functions
-
-  config:     list of configuration constants, variables;
-              description of multi-line format in next paragraph
-
-You can add fields as you wish, for some plugins special values
-(like "*") are sometimes used.
-
-
-config: field
--------------
-
-The only non-string field is "config:", as it is made up of
-multiple lines, which describes constants and variables with
-possible configuration settings. This is mostly used for
-presenting <form>s which config.php/.ini fiels generated from.
-
-Constants are detected, because they are all-uppercase, and 
-configuration variables by a leading dollarg  sign. A equal
-sign follows with either just one default value, or nothing,
-or a dash | separated list of allowed values. Finally a //
-comment may follow.
-
-  CONSTANT_NAME=value          // comment, help, info
-  $ewiki_config["name"]=       // default is empty string
-  ANOTHER_OPTION=1|2|3|4|5     // possible values
-  OR_EVEN=yes=1|never=0        // entitled, first is default
-
-Take care not to have spaces before or after the equal sign.
-
-
-sort: ordering
---------------
-
-Some plugins must be loaded at certain positions before or with
-others. Especially the database plugins need to be present
-before the core script initiates the registered _binary() part.
-Therefore the sort: field pre-orders loading of them. Currently
-following ranges and points are defined:
-
-
-  -200    non-ewiki additions
-    ..
-  -100    minimum for ewiki plugins
-    ..
-   -50    higher-up interfaces, pre-dependencies
-    ..
-     0    almost all plugins (the zero is implicit, plugins are
-          loaded unordered normally)
-    ..
-    50    database backend
-    ..
-    80    binary module (mostly auto-initiated in core script)
-    ..
-   100    ewiki core
-    ..
-
-Plugins of course may be loaded after +100 and before -100, but
-generally this should be avoided and the ["init"] hook be used
-instead.
-
-Ordering of plugins must be fine-tuned by users. Registration of
-action plugins for example always influences the order they are
-displayed in later. The sort mechanism cannot handle any user
-preferences.
-
-
-example
--------
-
-As example consider following .meta file:
-+--------------------------------------------
-|api: ewiki
-|type: intercept
-|hooks: handler, page, edit_save
-|category: blocks
-|page: VirtualPageName
-|title: module-name
-|description: adds interesting features
-|config:
-|  PLUGIN_SETTING=1|0  // enables it
-
-notes
------
-
-future:
-  .meta plugin data can later be reimported into plugin files'
-  topmost comment section, if they get prefixed with an "@",
-  like for example:
-   /*
-    *  @api: ewiki
-    *  @title: ...
-    */
-
-
-tools
------
-
-There are a few support scripts in the "dtools" package (CVS),
-which can be useful, if you'd like to tweak defaults or patch
-descriptions, for some reason??? (doesn't make sense except
-if you'd like to help out).
-
-- "genmeta" created most initial description files from the
-  earlier FEATUREDB and SetupWizard + WikiInstaller
-- "editmeta.php" can tweak various important fields for all
-  (200+) plugins at once
-- "metafiles.php" contains general utility code
-- "updatemeta" can analyze plugins and updates (=does not
-  overwrite) according .meta descriptions - functions, hooks,
-  and general informations
-
-
-changelog
----------
-
-The field names and values have been ravamped multiple times in their
-initial design phase.
-- "priority:" was called "inclusion:" before
-- "type:" changed its semantics and possible values
-- "sort:" was introduced rather late
-- "name:" has been removed in favor of "id:"
-- "section:" has been rejected in favour of "category:"
-