On s’est dit que ça serait pas mal d’avoir la possibilité de proposer un dépôt alternatif pour les plugins et thèmes tiers. Alors JcDenis a codé ça il y a quelques jours/semaines et ça sera dans la prochaine version de Dotclear, la 2.20, prévue bientôt !
Pour les mises à jour des modules (plugins et thèmes), l’idée retenue est de donner la priorité au dépôt officiel sur DotAddict pour vérifier s’il y a quelque chose de nouveau, et ensuite de consulter les dépôts alternatifs des modules qui en proposent un.
Par aileurs, dans le cas où le serveur DotAddict est en rade — c’est le cas depuis quelques jours car ce dernier s’est auto-suicidé —, c’est une bonne chose d’avoir la possibilité de s’appuyer sur ces dépôts secondaires au cas où :-)
Bref, c’est pas compliqué.
Alors maintenant, comment indiquer la présence de dépôt alternatif pour un module ? Simple, il suffit de créer un fichier nommé dcstore.xml
(au format XML donc) avec ce genre de contenu (je prends l’exemple du dernier plugin que j’ai publié) :
<modules xmlns:da="http://dotaddict.org/da/">
<module id="postTitleAutonum">
<name>postTitleAutonum</name>
<version>0.2</version>
<author>Franck Paul</author>
<desc>Auto numbering of duplicate titles</desc>
<file>https://github.com/franck-paul/postTitleAutonum/releases/download/0.2/plugin-postTitleAutonum-0.2.zip</file>
<da:dcmin>2.13</da:dcmin>
<da:details>https://open-time.net/?q=postTitleAutonum</da:details>
<da:support>https://github.com/franck-paul/postTitleAutonum</da:support>
</module>
</modules>
On détaille, ligne à ligne :
- C’est standard, on reproduit tel quel
- On remplace postTitleAutonum par l’identificateur du module (le nom de son répertoire)
- Pour le nom (postTitleAutonum), on le trouve dans le fichier
_define.php
du module, c’est le 1er paramètre de l’appel de$this->registerModule(…
- Pour la version, comme le nom, c’est dans le fichier
_define.php
- Les auteurs, idem, toujours dans le même fichier
- La description, pareil
- Le lien vers le fichier d’installation du module
- La version minimum de Dotclear nécessaire pour le module (s’il n’y en a pas je mets 2.0)
- Le lien vers la page de détail du module (personnellement je mets un lien de recherche sur mon blog pour le nom du plugin)
- Le lien vers la page de support (personnellement je mets le lien vers le dépôt Github pour pouvoir facilement créer des tickets)
- C’est standard, on ne touche à rien
- Idem
Voilà qui détaille les infos qui seront reconnues par Dotclear pour décrire un module.
Par ailleurs, il faut définir dans le fichier _define.php
le lien vers ce fichier dcstore.xml
sur le dépôt, pour que Dotclear puisse aller le lire et vérifier si une nouvelle version du module est disponible :
<?php
/**
* @brief postTitleAutonum, a plugin for Dotclear 2
*
* @package Dotclear
* @subpackage Plugins
*
* @author Franck Paul
*
* @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(
'postTitleAutonum', // Name
'Auto numbering of duplicate titles', // Description
'Franck Paul', // Author
'0.2', // Version
[
'requires' => [['core', '2.13']], // Dependencies
'permissions' => 'admin', // Permissions
'type' => 'plugin', // Type
'details' => 'https://open-time.net/?q=postTitleAutonum', // Details URL
'support' => 'https://github.com/franck-paul/postTitleAutonum', // Support URL
'settings' => ['blog' => '#params.pta'], // Settings
'repository' => 'https://raw.githubusercontent.com/franck-paul/postTitleAutonum/main/dcstore.xml'
]
);
C’est la ligne 29 (repository
) qui nous intéresse et qui indique le lien vers le contenu textuel du fichier dcstore.xml
sur le dépôt.
Plus qu’à enregistrer tout ça et pousser sur le dépôt et sur DotAddict \o/
1 De Nicolas -
Ah oui je viens de comprendre pourquoi je n’arrivais pas à accéder à certaines pages de mon administration de mon tout nouveau blog. Il me semble que tu avais donné ici ou sur le forum une astuce pour ne pas dépendre de dotaddict. Mais ma mémoire me joue des tours.
2 De Franck -
On peut virer les URLs dans about:config (onglet général) pour les settings suivants :
https://update.dotaddict.org/dc2/plugins.xml
https://update.dotaddict.org/dc2/themes.xml
Avec des URLs vides, il bypassera normalement le check de l’update.
PS : Pas testé :-)
3 De JcDenis -
auto-suicide un poil prématuré mais ça a permis de débusquer quelques bugs :)
4 De Nicolas -
Franck : ça fonctionne parfaitement. Merci
5 De Franck -
\o/
6 De mirovinben -
La manip décrite par Franck dans le commentaire #2 fonctionne impeccablement. Merci.
7 De Franck -
N’oubliez pas de remettre les URLs lorsque le serveur sera de nouveau en service, quand il sera prêt :-)
8 De Gérard Barré -
Effacer les URL fonctionne comme suggéré par Franck. Nickel ! Bon dimanche
9 De Da Scritch -
Et effetivement si la page “/admin/plugins.php” crashait au blanc, ben d’autres éléments se mettaient à planter , notamment le génial plugin Meuh (redirection d’url)
Corrigé en supprimant les url.
10 De Philippe -
J’arrive un peu tard, mais l’indication du dépôt alternatif ne pourrait-elle pas plus simplement être ajoutée au fichier _define.php du thème ou du plugin ?
11 De Franck -
Philippe c’est le cas, sinon le dépôt ne sera pas interrogé (cf ligne 29 dans le deuxième bloc de code du billet).
12 De Philippe -
Oui, j’ai vu cela, mais dans ce cas à quoi sert le fichier dcstore alors ?
13 De Franck -
Le fichier
dcstore.xml
ne fait (a priori) pas parti du plugin et peut rester uniquement sur le dépôt. Ce fichier est consulté s’il est défini dans le fichier_define.php
pour vérifier, dans une 2e étape (après la vérif’ côté DotAddict) si une mise à jour est disponible.Personnellement j’inclus les fichiers
dcstore.xml
dans les archives de mes plugins et thèmes, mais ce n’est pas indispensable.J’espère que j’ai été assez clair ? Tu me diras…
14 De Philippe -
Merci pour l’explication, je viens de comprendre le mécanisme côté dépôt alternatif (github dans mon cas). Il faut donc y créer à chaque fois une version (release) zippée. Ça me paraît très bien, je vais m’y atteler.