source: spip-zone/_core_/plugins/safehtml/inc/safehtml.php @ 93623

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

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

File size: 1.9 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
13
14if (!defined("_ECRIRE_INC_VERSION")) {
15        return;
16}
17
18// Controle la presence de la lib safehtml et cree la fonction
19// de transformation du texte qui l'exploite
20// http://code.spip.net/@inc_safehtml_dist
21function inc_safehtml_dist($t) {
22        static $process, $test;
23
24        if (!$test) {
25                $process = false;
26                if ($f = find_in_path('lib/safehtml/classes')) {
27                        define('XML_HTMLSAX3', $f . '/');
28                        require_once XML_HTMLSAX3 . 'safehtml.php';
29                        $process = new safehtml();
30                        $process->deleteTags[] = 'param'; // sinon bug Firefox
31                }
32                if ($process) {
33                        $test = 1;
34                } # ok
35                else {
36                        $test = -1;
37                } # se rabattre sur une fonction de securite basique
38        }
39
40        if ($test > 0) {
41                # reset ($process->clear() ne vide que _xhtml...),
42                # on doit pouvoir programmer ca plus propremement
43                $process->_counter = array();
44                $process->_stack = array();
45                $process->_dcCounter = array();
46                $process->_dcStack = array();
47                $process->_listScope = 0;
48                $process->_liStack = array();
49#               $process->parse(''); # cas particulier ?
50                $process->clear();
51                $t = $process->parse($t);
52        } else {
53                $t = entites_html($t);
54        } // tres laid, en cas d'erreur
55
56        // supprimer un <li></li> provenant d'un <li> ouvrant seul+safehtml
57        // cf https://core.spip.net/issues/2201
58        $t = str_replace("<li></li>", "", $t);
59
60        return $t;
61}
62
63?>
Note: See TracBrowser for help on using the repository browser.