jointure.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined("_ECRIRE_INC_VERSION")) return;
  12. include_spip('inc/diff');
  13. /**
  14. * Afficher le diff d'un champ texte generique
  15. * @param string $champ
  16. * @param string $old
  17. * @param string $new
  18. * @param string $format
  19. * apercu, diff ou complet
  20. * @return string
  21. */
  22. function afficher_diff_jointure_dist($champ,$old,$new,$format='diff'){
  23. $join = substr($champ,9);
  24. $objet = objet_type($join);
  25. $old = explode(',',$old);
  26. $new = explode(',',$new);
  27. $liste = array();
  28. // les communs
  29. $intersection = array_intersect($new,$old);
  30. foreach($intersection as $id)
  31. if ($id=intval(trim($id)))
  32. $liste[$id] = "<a href='".generer_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($id,$objet,'titre')."</a>";
  33. // les supprimes
  34. $old = array_diff($old,$intersection);
  35. foreach($old as $id)
  36. if ($id=intval(trim($id)))
  37. $liste[$id] = "<span class='diff-supprime'>"
  38. . "<a href='".generer_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($id,$objet,'titre')."</a>"
  39. . "</span>";
  40. // les ajoutes
  41. $new = array_diff($new,$intersection);
  42. foreach($new as $id)
  43. if ($id=intval(trim($id)))
  44. $liste[$id] = "<span class='diff-ajoute'>"
  45. . "<a href='".generer_url_entite($id,$objet)."' title='"._T(objet_info($objet,'texte_objet'))." $id'>".generer_info_entite($id,$objet,'titre')."</a>"
  46. . "</span>";
  47. ksort($liste);
  48. $liste = implode(', ',$liste);
  49. return $liste;
  50. }