DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:plugin:struct:devel

Extension Struct

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 Typeclass à 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

fr/plugin/struct/devel.txt · Dernière modification : 2020-08-21 17:46 de Digitalin

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : 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