3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
14 if (!defined('_ECRIRE_INC_VERSION')) {
18 // Controle la presence de la lib safehtml et cree la fonction
19 // de transformation du texte qui l'exploite
20 // https://code.spip.net/@inc_safehtml_dist
21 function inc_safehtml_dist($t) {
22 static $process, $test;
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
37 } # se rabattre sur une fonction de securite basique
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 ?
51 $t = $process->parse($t);
53 $t = entites_html($t);
54 } // tres laid, en cas d'erreur
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);