Hello,
J'ai un petit souci avec les revisions et crayons.
Si je fais une modif sur le texte puis une sur le chapo, je n'ai que la modif du chapo dans la derniere revision.
Je refais une modif sur texte, je perd la modif de chapo ... bref, il n'y a que la derniere qui est remontée, les autres champs contiennent la version initiale.
Je fais comme dans gribouille sauf que je recupere champ par champ pour pouvoir inserer ca comme je veux dans mes squelettes :
function affiche_diff_champ($id_article, $champ, $id_version, $format='complet') {
include_spip('inc/suivi_versions');
$textes = revision_comparee($id_article, $id_version, $format);
return propre_diff($textes[$champ]);
}
En fait, ca doit venir de crayon car il enregistre un champ sans connaitre les autres.
D'après ce que je comprend, c'est dans action/editer_article, dans la fonction revisions_articles qu'il faudrait agir.
Le tableau passé ne contient que la donnée modifiée, il faudrait sans doute le completer avec les valeurs courante (il y a deja un select).
Le probleme, c'est comment differencier une mise à vide d'un champ absent ?
Je fais quelques essais, mais voila une modif qui a l'air de regler le probleme :
ecrire\action\editer_article.php
118a119,123
> $champs = array(
> 'surtitre', 'titre', 'soustitre', 'descriptif',
> 'nom_site', 'url_site', 'chapo', 'texte', 'ps',
> 'url_propre'
> );
121c126
< "SELECT statut FROM spip_articles WHERE id_article=$id_article"));