Dotclear 2.1 avait introduit, via sa librairie ClearBricks, des classes permettant de créer des diff
et patch
entre deux textes. Ces classes ne sont pour le moment pas utilisées au sein même de Dotclear mais peuvent fournir une fonctionnalités très intéressantes: la gestion des versions de billets.
J'ai donc commencé il y a relativement longtemps à entreprendre une implémentation des ses classes sous forme d'un plugin et voilà donc maintenant le résultat: dcRevision
Ce plugin est encore à l'état expérimental. C'est pourquoi il n'est présent que sur le lab afin d'éviter toutes déconvenues sur les installations en production. Une fois qu'il sera stable, je le déposerai sur DotAddict pour le plus grand nombre.
Si passé ce warning vous êtes encore là, allons au coeur du sujet!
Installation
Le plugin s’installe comme n'importe quel autre plugin. Il va créer une table spécifique où seront stockées les révisions [1]. Pour l'instant, je n'ai pas ajouté d'option d'activation mais il est évident qu'à terme, il y en aura une dans la configuration du blog.
Utilisation
Rien de plus simple, il vous suffit d'enregistrer un billet, nouveau ou ancien pour créer une révision. Ces révisions sont visibles sous forme de liste, sous le champ notes
de la page d'édition. Chaque ligne représente une version du billet et pour chacune vous pouvez appliquer le patch
correspondant. Concrètement, vous aller revenir à la version que vous avez sélectionnée. Ce fonctionnement peut être pratique pour un blog multi-auteur. D'ailleurs le plugin gère ce cas de figure en vérifiant le propriétaire du billet ainsi que ces droits. Un utilisateur n'ayant pas les permissions admin
, superadmin
ou contentadmin
pourra uniquement appliquer les patch
des versions qui lui appartiennent et ce, uniquement si il est l'auteur du billet..
Le plugin fournir également une prévisualisation du futur résultat pour chaque révision. Il suffit de cliquer sur le +
de chaque révision pour voir le résultat.
Et maintenant?
Comme je l'ai dit plus haut, le plugin est encore à l'état expérimental. J'ai noté plusieurs problèmes provenant des classes diff
de clearbrick lorsque l'affichage des notices PHP est activé. De plus, la prévisualisation laisse encore beaucoup à désirer mais je n'ai personnellement pas réussi à faire mieux. J'invite d'ailleurs tous ceux qui le souhaite à travailler sur cette partie.
Bref, si vous voulez vous amuser avec dcRevisions, voilà sa page sur le lab.
Enjoy!
Notes
[1] [prefix]_revision