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