Fichier de définition d'un module

Billet

Le fichier de définition se situe à la racine du module, il se nomme _define.php et il va donner à Dotclear toutes les informations indispensables à sa compréhension. Il est en très grande partie commun aux thèmes et aux plugins.

Son contenu peut être le suivant :

<?php
/**
 * Mettre ici les informations de licence
 */
$this->registerModule(
    'Le module', // Nom (requis)
    'Un module qui ne fait rien', // Description (requis)
    'Jean-Christian Denis and contributors', // Auteur (requis)
    '1.0',  // Version (requis)
    [
        'requires' => [
            ['php', '8.1'], // Version minimum de PHP (optionnel)
            ['core', '2.26'], // Version miminum de Dotclear (recommandé)
            ['UnAutreModule', '1.1'], // Dépendance à un autre module (optionnel)
        ],
        'priority' => 1000, // priorité, nombre entier positif (optionnel)
        'permissions' => dcCore::app()->auth->makePermissions([
            dcCore::app()->auth::PERMISSION_CONTENT_ADMIN,
        ]), // Permissions (recommandé)
        'type' => 'plugin', // type de module, plugin ou theme (requis)
        'settings'    => [
            'blog' => '#params.LeModule', // plugin, sa configuration est sur la page de paramètres du blog
            'self' => '', // plugin, sa page de gestion est sa page de configuration
            'pref' => '#user-options.LeModule', // plugin, sa configuration est dans les préférences utilisateur
        ],
        'parent' => 'ductile', // thème, son parent (optionnel)
        'tplset' => 'mustek', // thème, le jeu de template à utiliser (optionnel)
        'standalone_config' => true, // thème, utilisation de sa propre configuration (optionnel)
        'support' => 'https://github.com/JcDenis/LeModule', // Lien vers la page du support (recommandé)
        'details' => 'https://plugins.dotaddict.org/dc2/details/LeModule', // Lien vers la page de détails (recommandé)
        'repository' => 'https://raw.githubusercontent.com/JcDenis/LeModule/master/dcstore.xml', // Lien vers la définition du dépôt tiers (optionnel)
        'widgettitleformat'     => '', // formatage de widget (optionnel)
        'widgetsubtitleformat'  => '', // formatage de widget (optionnel)
        'widgetcontainerformat' => '', // formatage de widget (optionnel)
    ]
);


Attention : Ce fichier est appelé très tôt dans le code, à l'intérieur d'une méthode, il peut être appelé plusieurs fois et d'autres script peuvent l'appeler, à cause de tout cela seules les classes dcAuth, dcCore et celles contenues dans les fichiers _init.php des modules peuvent être utilisées dans ce fichier.

A noter : Si la page de configuration du plugin est dans un fichier src/Config.php, Dotclear l'indiquera de manière automatique, il n'est pas nécessaire de l'indiquer dans la définition des paramètres settings.

La présence du fichier define.php est obligatoire.

Le contenu de ce document a été écrit suivant le code de la version 2.27 de Dotclear.

La discussion continue ailleurs

URL de rétrolien : https://dotclear.watch/trackback/8