Pour la version 2.17 à venir, je commence à modifier le code javascript des plugins que je maintiens — les thèmes y seront peut-être aussi sujets — pour n’exposer, au final, qu’un seul objet, dotclear, dans lequel chaque plugin viendra ajouter ses méthodes et propriétés.
Attention, ça n’est, pour l’instant, que de la partie publique dont il s’agit.
La bonne pratique, pour un plugin ayant du javascript spécifique à Dotclear, est de faire comme suit :
'use strict';
/* Dotclear common object */
var dotclear = dotclear || {};
Object.assign(dotclear, {
// <ici tout les méthodes et propriétés nécessaires au plugin>
maMethode: function(args) {
// ma fonction
},
maVariable: null,
…
});
Ensuite, là où vous utilisiez maMethode()
ou maVariable
, il suffit d’utiliser dotclear.maMethode()
ou dotclear.maVariable
.
C’est plus verbeux, certes, mais côté public on n’a qu’un seul objet attaché au document javascript, dotclear donc. Ça va permettre d’éviter les éventuels conflits avec des librairies tierces, comme certains plugins peuvent en utiliser.
Pour info, la ligne 4 ci-dessus, permet de rester compatible avec les versions antérieures à la future 2.17.
1 De Bernard -
Si j’ai bien compris, la ligne 4 signifie, en gros :
la variable dotclear = dotclear-objet déclaré ou nouvel objet ?
2 De Franck -
Tout à fait, soit il existe déjà et on l’utilise, soit ce n’est pas le cas et on crée un « objet » vide, dans lequel on va ajouter des trucs.