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

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

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

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}
Note: See TracBrowser for help on using the repository browser.