DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:struct:devel

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
plugin:struct:devel [2016-11-08 16:06] – created andiplugin:struct:devel [2022-07-23 01:36] (current) – Grammar fix: it's -> its Matt2
Line 2: Line 2:
 ====== Struct Plugin: Development Support ====== ====== Struct Plugin: Development Support ======
  
-The Struct Plugin allows other plugin developers to hook into it'functionality, adding additional features.+The Struct Plugin allows other plugin developers to hook into its functionality, adding additional features.
  
  
Line 28: Line 28:
 </code> </code>
  
-Plugins may add their own ''Type'' => ''class'' pairs here. The class name has to be fully qualified and needs to be loadable by DokuWiki's [[devel:autoloader|Autoloader]]. The class needs to inherit from [[https://github.com/cosmocode/dokuwiki-plugin-struct/blob/master/types/AbstractBaseType.php|AbstractBaseType]] or own of its subclasses.+Plugins may add their own ''Type'' => ''class'' pairs here. The class name has to be fully qualified and needs to be loadable by DokuWiki's [[devel:autoloader|Autoloader]]. The class needs to inherit from [[https://github.com/cosmocode/dokuwiki-plugin-struct/blob/master/types/AbstractBaseType.php|AbstractBaseType]] or one of its subclasses.
  
 Please refer to the existing types' source code to see how to implement your own type. Please refer to the existing types' source code to see how to implement your own type.
 +
 +Examples of plugins implementing this are: [[plugin:structstatus|structstatus Plugin]], [[plugin:structgroup|structgroup Plugin]], [[plugin:structjoin|structjoin Plugin]], [[plugin:structcombolookup|structcombolookup Plugin]]
 +
 +===== Allow Additional Config Keys =====
 +
 +When you write a plugin doing its own aggregation, you might want to reuse the ConfigParser class. By default this class will throw an Exception when a config key is encountered that it does not understand. You can handle the ''PLUGIN_STRUCT_CONFIGPARSER_UNKNOWNKEY'' event and prevent the default (of throwing the exception). You can add your own config to the ''config'' array in the event.
 +
 +<code php>
 +array(
 +  'config' => &$this->config,
 +  'key' => 'the unknown config key',
 +  'val' => 'the value for that key'
 +)
 +</code>
 +
 +Examples of plugins implementing this are: [[plugin:structgantt|structgantt Plugin]], [[plugin:structodt|structodt Plugin]]
 +
 +
 +===== Modify row rendering in AggregationTable =====
 +
 +The ''PLUGIN_STRUCT_AGGREGATIONTABLE_RENDERRESULTROW'' event is called every time when the AggregationTable renders a row in a [[aggregation|struct table]]. You can use the ''BEFORE'' hook to change the default rendering procedure or ''AFTER'' to make some modifications to rendered row. 
 +
 +<code php>
 +array(
 +  'id' => $this->id,
 +  'mode' => $this->mode,
 +  'renderer' => $this->renderer,
 +  'searchConfig' => $this->searchConfig,
 +  'data' => $this->data,
 +  'rownum' => &$rownum,
 +  'row' => &$row,
 +)
 +</code>
 +
 +Examples of plugins implementing this are: [[plugin:structrowcolor|structrowcolor Plugin]]
  
plugin/struct/devel.txt · Last modified: 2022-07-23 01:36 by Matt2

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