Adapter son code pour la 2.24 n° 30

Quand il n’y en a plus il y en a encore !

Depuis le dernier opus de cette série j’ai ajouté deux ou trois bricoles dans la future 2.24, dont une qui concerne les plugins (et possiblement les thèmes), mais non bloquante.

En effet j’ai cherché à simplifier le contenu des fichiers _install.php, et en particulier ce qui concerne la vérification de version du module (plugin ou thème).

Premièrement il n’est plus utile d’enregistrer la version en cours d’installation, Dotclear le fera à votre place.

Il suffit donc de supprimer la ligne contenant (exemple pris dans le plugin sysInfo) :

dcCore::app()->setVersion('sysInfo', $new_version);

Par ailleurs il est d’usage de tester la version déjà installée par rapport à la version en cours d’exécution et dans ce cas au lieu de faire comme ceci :

$new_version = dcCore::app()->plugins->moduleInfo('sysInfo', 'version');
$old_version = dcCore::app()->getVersion('sysInfo');

if (version_compare((string) $old_version, $new_version, '>=')) {
    return;
}

Faites cela (le 1er paramètre correspond au nom du répertoire contenant le module) :

if (!dcCore::app()->newVersion(basename(__DIR__), dcCore::app()->plugins->moduleInfo(basename(__DIR__), 'version'))) {
    return;
}

Plus simple non, d’ailleurs vous pouvez juste copier-coller, c’est générique ;-)


Pour exemple, un fichier _install.php prêt à être copié-collé :

<?php
/**
 * @brief zeModule, a plugin for Dotclear 2
 *
 * @package Dotclear
 * @subpackage Plugins
 *
 * @author zeMe and contributors
 *
 * @copyright zeMe zeme@example.com
 * @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
 */
if (!defined('DC_CONTEXT_ADMIN')) {
    return;
}

if (!dcCore::app()->newVersion(basename(__DIR__), dcCore::app()->plugins->moduleInfo(basename(__DIR__), 'version'))) {
    return;
}

try {
    // Insert below necessary initialisations and updates 

    ; // Init to be completed

    $old_version = dcCore::app()->getVersion(basename(__DIR__));
    if (version_compare((string) $old_version, '1.0', '<')) {

        ; // Update since 1.0 to be completed

    }

    return true;
} catch (Exception $e) {
    dcCore::app()->error->add($e->getMessage());
}

return false;

Et n’oubliez pas l’indispensable :

'requires' => [['core', '2.24']],

Dans vos fichiers _define.php de vos plugins et thèmes.

Si vous soumettez vos œuvres sur la console DotAddict, plugins ou thèmes, n’oubliez pas de préciser la version minimale de Dotclear, 2.24 donc, dans le champs idoine du formulaire de soumission.

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/15555

Haut de page