Carnet Wiki

Le Suivi des Révisions Versionning (d’Articles etc et ..)

Version 3 — Juillet 2015 YannX

Le versionning - gestion suivi des révisions - d’articles ( ou plus généralement d’objets éditoriaux ) est désormais activable sur tous les objets éditoriaux de SPIP3 .

L’activation des Révisions se fait dans un menu de Configuration, et sera traitée dans le ./plugins-dist/revisions/ qui est un plugin verrrouillé [1].

Les Tables de VERSIONS

Selon les nouvelles habitudes de SPIP 3 les tables de VERSIONS sont désormais des tables de liaison implicites, avec la clé primaire habituelle, et l’index par le champ objet et le champ id_objet, permettant d’attacher cette révision à son objet éditorial de référence.
-  la table VERSIONS contient une ligne enregistrée par modification, identifiée par sa clé primaire id_version...
Deux champs id_auteur et date assurent un horo-datage automatique de cette révision de l’objet concerné (clés ci-dessus)...
Des champs titre et permanent proposent d’affiner ce suivi, le premier est chargé à « Version initiale » lors de la création de l’objet (en base, correspondant à l’auteur -1), et le second reçoit la valeur ’non’ à chaque modification de l’occurrence d’objet éditorial...
Enfin le champ champs contient un tableau associatif des id clés de fragments modifies, associés aux noms de champs concernés de l’enregistrement révisé...
Un exemple partiel pour une création d’article : a:13:{s:11:"id_rubrique";s:1:"1";s:8:"surtitre";s:0:"";s:5:"titre";s:1:"2";s:9:"soustitre";s:0:"";s:16:"jointure_auteurs";s:1:"3";s:10:"descriptif";s:0:"";s:8:"nom_site";s:1:"4";s:8:"url_site";s:1:"5";s:5:"chapo";s:3:"6";...}

  • id_rubrique dans le fragment 1
  • titre dans le fragment 2
  • pas de surtitre, ni de descriptif
  • les liens à des clés étrangères sont références par les noms fictifs jointure_TABLES (jointure_auteurs ou jointure_documents..)

- la table VERSIONS_FRAGMENTS contient une ligne enregistrée par modification, identifiée par sa clé primaire id_fragment [2], et reprenant les champs d’index objet et id_objet, pointant sur l’objet éditorial de référence.
Deux champs version_min et version_max permettent de balayer l’étendue des révisions traitées : ce sont des clés étrangères rebouclant sur les lignes de la table VERSIONS, pour détailler l’intervalle de versions inchangées pour ce fragment.
Enfin le champ fragment contient le texte (ou la valeur) saisie, éventuellement en mode compressé selon un indicateur compress à 0 ou 1=compressé.

La Table VERSIONS