source: spip-zone/_core_/plugins/revisions/afficher_diff/champ.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.1 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_champ_dist($champ, $old, $new, $format = 'diff') {
30        // ne pas se compliquer la vie !
31        if ($old == $new) {
32                $out = ($format != 'complet' ? '' : $new);
33        } else {
34                if ($f = charger_fonction($champ, 'afficher_diff', true)) {
35                        return $f($champ, $old, $new, $format);
36                }
37
38                $diff = new Diff(new DiffTexte);
39                $n = preparer_diff($new);
40                $o = preparer_diff($old);
41
42                $out = afficher_diff($diff->comparer($n, $o));
43                if ($format == 'diff' OR $format == 'apercu') {
44                        $out = afficher_para_modifies($out, ($format == 'apercu'));
45                }
46        }
47
48        return $out;
49}
50
51
52/**
53 * http://code.spip.net/@afficher_para_modifies
54 *
55 * @param string $texte
56 * @param bool $court
57 * @return string
58 */
59function afficher_para_modifies($texte, $court = false) {
60        // Limiter la taille de l'affichage
61        if ($court) {
62                $max = 200;
63        } else {
64                $max = 2000;
65        }
66
67        $texte_ret = "";
68        $paras = explode("\n", $texte);
69        for ($i = 0; $i < count($paras) AND strlen($texte_ret) < $max; $i++) {
70                if (strpos($paras[$i], '"diff-')) {
71                        $texte_ret .= $paras[$i] . "\n\n";
72                }
73#               if (strlen($texte_ret) > $max) $texte_ret .= '(...)';
74        }
75        $texte = $texte_ret;
76
77        return $texte;
78}
Note: See TracBrowser for help on using the repository browser.