Version 3 — Juillet 2015 — YannX
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].
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";...}
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é.