Dépendances

Voilà un exemple du fichier de définition d’un plugin :

<?php
/**
 * @brief a11yConfig, a plugin for Dotclear 2
 *
 * @package Dotclear
 * @subpackage Plugins
 *
 * @author Franck Paul, Biou and contributors
 *
 * @copyright Franck Paul carnet.franck.paul@gmail.com
 * @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
 */
if (!defined('DC_RC_PATH')) {
    return;
}

$this->registerModule(
    'a11yConfig',                                           // Name
    'Implements Access42 accessibility configuration tool', // Description
    'Franck Paul, Biou and contributors',                   // Author
    '1.7',
    [
        'requires'    => [['core', '2.23']],
        'permissions' => 'usage,contentadmin',                        // Permissions
        'type'        => 'plugin',                                    // Type
        'settings'    => [                                            // Settings
            'self' => '',
            'pref' => '#user-options.a11yConfig',
        ],

        'details'    => 'https://open-time.net/?q=a11yConfig',       // Details URL
        'support'    => 'https://github.com/franck-paul/a11yConfig', // Support URL
        'repository' => 'https://raw.githubusercontent.com/franck-paul/a11yConfig/master/dcstore.xml',
    ]
);

Notez en particulier la ligne 23 qui contient 'requires' => [['core', '2.23']],.

J’ai fait une recherche sur tous les plugins et thèmes que j’ai codés ou que je maintiens et aucun n’utilise une autre dépendance que celle qui implique une version minimale de Dotclear.

J’ai aussi vu dans un plugin que j’avais sous la main, backupDaemon pour ne pas le nommer, qu’il contenait du code pour vérifier la présence (active) d’un autre plugin, Import/Export pour ne pas le nommer.

Voilà un bon candidat pour ajouter cette dépendance dans le fichier _define.php et supprimer le code spécifique dans le plugin qui se charge de vérifier que les conditions d’exécution requises sont remplies !

Donc une ligne avec 'requires' => [['core', '2.23'], ['importExport']], permet de s’assurer que le plugin importExport est bien présent et actif, sinon le plugin est désactivé ; par ailleurs ça empêche également de désactiver le plugin requis !

On peut même ajouter une version minimale pour le plugin requis, si nécessaire (à l’image de ce qui est fait pour le core), ce qui n’est pas le cas ici.

Voilà, à ranger dans votre catégorie « Aujourd’hui j’ai appris » ;-)

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15443

Haut de page