Possibilité d'étendre les données révisionnées
Contexte
À l'origine du besoin : dans le plugin Contacts & organisations, il y a une option qui fait en sorte de "fusionner" les auteurs avec les contacts et les orgas.
Les données restent séparées entre les 3 tables, mais en édition et en prévisu tout est mélangé, comme s'il s'agissait du même objet.
Problème : les révisions restent séparées en 2, celles de l'auteur d'un côté, et celles du contact ou de l'orga associée de l'autre.
Si l'option est activée il faudrait aller jusqu'au bout de la logique, et fusionner aussi celles-ci.
Limitations
En l'état le plugin révisions ne permet pas de prendre en compte ce cas de figure.
Les jointures entre tables sont gérées dans une certaine mesure, mais à priori c'est plutôt pensé pour des jointures via des tables de liens (mots-clés, etc.).
De plus, ici la jointure dépend de chaque objet édité : soit c'est un contact, soit c'est une orga.
Évolution
Pas encore inspecté tout le plugin, mais une solution possible serait de permettre d'étendre la liste des champs et valeurs révisionnées pour l'objet édité.
À priori ça se passe dans liste_champs_versionnes() actuellement : https://git.spip.net/spip/revisions/-/blob/master/inc/revisions.php#L843
Sauf que la fonction traite d'un type d'objet, hors il faudrait pouvoir étendre objet par objet. Peut-être que le point d'entrée serait à ajouter en amont, bref je ne suis pas allé plus loin pour l'instant, ça reste à investiguer.