Table des matières
Struct Plugin: Support développeur
L'extension Struct permet à d'autres développeurs d'extensions de s'appuyer sur ses fonctionnalités, en ajoutant des fonctionnalités supplémentaires.
Inscription de nouveaux types
L'extension signale l'événement PLUGIN_STRUCT_TYPECLASS_INIT
qui peut être intercepté par l'Action Plugins. Il n'y a pas d'action par défaut. Le $data
passé est un tableau associatif répertoriant les Types disponibles et leurs classes respectives. Il ressemble à ceci:
array( 'Checkbox' => 'dokuwiki\\plugin\\struct\\types\\Checkbox', 'Date' => 'dokuwiki\\plugin\\struct\\types\\Date', 'DateTime' => 'dokuwiki\\plugin\\struct\\types\\DateTime', 'Decimal' => 'dokuwiki\\plugin\\struct\\types\\Decimal', 'Dropdown' => 'dokuwiki\\plugin\\struct\\types\\Dropdown', 'Lookup' => 'dokuwiki\\plugin\\struct\\types\\Lookup', 'Mail' => 'dokuwiki\\plugin\\struct\\types\\Mail', 'Media' => 'dokuwiki\\plugin\\struct\\types\\Media', 'Page' => 'dokuwiki\\plugin\\struct\\types\\Page', 'Tag' => 'dokuwiki\\plugin\\struct\\types\\Tag', 'Text' => 'dokuwiki\\plugin\\struct\\types\\Text', 'Url' => 'dokuwiki\\plugin\\struct\\types\\Url', 'User' => 'dokuwiki\\plugin\\struct\\types\\User', 'Wiki' => 'dokuwiki\\plugin\\struct\\types\\Wiki', );
Les extensions peuvent ajouter leur propre paire Type
⇒ class
à cet endroit. Le nom de la classe doit être entièrement qualifié et doit être chargé par l' Autoloader de DokuWiki. La classe doit hériter de l'AbstractBaseType ou d'une de ses sous-classes.
Veuillez vous reporter au code source des types existants pour savoir comment implémenter votre propre type.
Exemples d'extensions qui implémentent ceci: structstatus Plugin, structgroup Plugin, structjoin Plugin, structcombolookup Plugin
Autoriser des clés de configuration supplémentaires
Lorsque vous écrivez une extension réalisant sa propre agrégation, vous pouvez vouloir réutiliser la classe ConfigParser. Par défaut, cette classe lance une exception lorsqu'une clé de configuration est rencontrée et qu'elle ne comprend pas. Vous pouvez gérer l'événement PLUGIN_STRUCT_CONFIGPARSER_UNKNOWNKEY
et empêcher le comportement par défaut (lancement de l'exception). Vous pouvez ajouter votre propre configuration à la table config
dans l'événement.
array( 'config' => &$this->config, 'key' => 'the unknown config key', 'val' => 'the value for that key' )
Exemples d'extensions qui implémentent ceci: l'extension structgantt, structodt Plugin
Modifier le rendu des lignes dans les tableaux d’agrégation
L'événement PLUGIN_STRUCT_AGGREGATIONTABLE_RENDERRESULTROW
est appelé chaque fois que le mécanisme d'agrégation rend une ligne dans un tableau d'agrégation. Vous pouvez utiliser l'accroche (hook) BEFORE
pour changer la procédure de rendu par défaut ou AFTER
pour apporter quelques modifications à la ligne rendue.
array( 'id' => $this->id, 'mode' => $this->mode, 'renderer' => $this->renderer, 'searchConfig' => $this->searchConfig, 'data' => $this->data, 'rownum' => &$rownum, 'row' => &$row, )
Les exemples d'extensions implémentant ce ci sont: structrowcolor Plugin