--- /dev/null
+<?php
+
+/***************************************************************************\
+ * SPIP, Systeme de publication pour l'internet *
+ * *
+ * Copyright (c) 2001-2014 *
+ * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
+ * *
+ * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
+ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/diff');
+
+/**
+ * Afficher le diff d'un champ texte generique
+ * @param string $champ
+ * @param string $old
+ * @param string $new
+ * @param string $format
+ * apercu, diff ou complet
+ * @return string
+ */
+function afficher_diff_jointure_dist($champ,$old,$new,$format='diff'){
+ $join = substr($champ,9);
+ $objet = objet_type($join);
+
+ $old = explode(',',$old);
+ $new = explode(',',$new);
+
+ $liste = array();
+
+ // les communs
+ $intersection = array_intersect($new,$old);
+ foreach($intersection as $id)
+ if ($id=intval(trim($id)))
+ $liste[$id] = "<a href='".generer_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($id,$objet,'titre')."</a>";
+
+ // les supprimes
+ $old = array_diff($old,$intersection);
+ foreach($old as $id)
+ if ($id=intval(trim($id)))
+ $liste[$id] = "<span class='diff-supprime'>"
+ . "<a href='".generer_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($id,$objet,'titre')."</a>"
+ . "</span>";
+
+ // les ajoutes
+ $new = array_diff($new,$intersection);
+ foreach($new as $id)
+ if ($id=intval(trim($id)))
+ $liste[$id] = "<span class='diff-ajoute'>"
+ . "<a href='".generer_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($id,$objet,'titre')."</a>"
+ . "</span>";
+
+ ksort($liste);
+ $liste = implode(', ',$liste);
+ return $liste;
+}