DokuWiki

It's better when it's simple

User Tools

Site Tools


devel:farm

Farms

ATTENTION: This page is mainly aimed at gathering ideas about farm setup/administration/implementation.

Enabling / Disabling Plugins

  • Define (inc/preload.php):
    • DOKU_FARM
      • 0 ⇒ Animal
      • 1 ⇒ Farmer
  • Configuration (inc/preload.php)
    • set value for global $config_cascade
      • load default farm settings after default dokuwiki settings
      • load protected farm settings after local settings
  • Events:
    • Previously mentioned, PLUGIN_NAME_ISDISABLED, PLUGIN_NAME_DISABLE, PLUGIN_NAME_ENABLE won't work due to chicken and egg problem. By the time a plugin can control other plugins its too late. Problem solved by implementing a replaceable “plugin controller”, see below.
    • PLUGIN_PLUGINMANAGER_PLUGINLIST, PLUGIN_CONFIG_PLUGINLIST (implemented)
  • Plugin Controller (preload.php)
    • replace DokuWiki's default plugin controller (inc/plugin_controller.class.php)
      • redefine isDisabled method to control which plugins an animal uses
      • retrieve plugin enable/disable settings from farm/animal configuration (see plugin manager below)
  • Plugin Manager:
    1. disable upload/install for animals
    2. enable/disable for animals
    3. per animal & farm-wide disable for farmer
  • Farm Admin Plugin:
  • farmer needs to be able to take over animals

Farm Administration

  • automatic creation of an animal
  • ability to disable an animal
  • ability to take control of an animal
  • ability to set a default configuration of/for embryonic animals
  • ability to set default user(s), at least an admin
  • ability to set/edit “protected” configuration values - values that animals can not change
  • modifications to plugin management:
    • upload/delete plugins (while not allowing animals to upload/delete them)
    • enable/disable plugins farm wide
  • mechanism for recording details of animal administrators
  • mechanism for notifying (emailing) animal administrators
devel/farm.txt · Last modified: by 93.133.171.150

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki