source: spip-zone/_core_/plugins/revisions/afficher_diff/jointure.php @ 93622

Last change on this file since 93622 was 93622, checked in by cedric@…, 4 years ago

Indentation et regles de codage selon http://www.spip.net/fr_article3497.html#regles_codage

File size: 2.3 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
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
13if (!defined("_ECRIRE_INC_VERSION")) {
14        return;
15}
16
17include_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 */
29function 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,
43                                        'texte_objet')) . " $id'>" . generer_info_entite($id, $objet, 'titre') . "</a>";
44                }
45        }
46
47        // les supprimes
48        $old = array_diff($old, $intersection);
49        foreach ($old as $id) {
50                if ($id = intval(trim($id))) {
51                        $liste[$id] = "<span class='diff-supprime'>"
52                                . "<a href='" . generer_url_entite($id, $objet) . "' title='" . _T(objet_info($objet,
53                                        'texte_objet')) . " $id'>" . generer_info_entite($id, $objet, 'titre') . "</a>"
54                                . "</span>";
55                }
56        }
57
58        // les ajoutes
59        $new = array_diff($new, $intersection);
60        foreach ($new as $id) {
61                if ($id = intval(trim($id))) {
62                        $liste[$id] = "<span class='diff-ajoute'>"
63                                . "<a href='" . generer_url_entite($id, $objet) . "' title='" . _T(objet_info($objet,
64                                        'texte_objet')) . " $id'>" . generer_info_entite($id, $objet, 'titre') . "</a>"
65                                . "</span>";
66                }
67        }
68
69        ksort($liste);
70        $liste = implode(', ', $liste);
71
72        return $liste;
73}
Note: See TracBrowser for help on using the repository browser.