123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- /***************************************************************************\
- * SPIP, Systeme de publication pour l'internet *
- * *
- * Copyright (c) 2001-2014 *
- * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
- * *
- * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
- * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
- \***************************************************************************/
- if (!defined("_ECRIRE_INC_VERSION")) return;
- // Controle la presence de la lib safehtml et cree la fonction
- // de transformation du texte qui l'exploite
- // http://code.spip.net/@inc_safehtml_dist
- function inc_safehtml_dist($t) {
- static $process, $test;
- if (!$test) {
- $process = false;
- if ($f = find_in_path('lib/safehtml/classes')) {
- define('XML_HTMLSAX3', $f.'/');
- require_once XML_HTMLSAX3.'safehtml.php';
- $process = new safehtml();
- $process->deleteTags[] = 'param'; // sinon bug Firefox
- }
- if ($process)
- $test = 1; # ok
- else
- $test = -1; # se rabattre sur une fonction de securite basique
- }
- if ($test > 0) {
- # reset ($process->clear() ne vide que _xhtml...),
- # on doit pouvoir programmer ca plus propremement
- $process->_counter = array();
- $process->_stack = array();
- $process->_dcCounter = array();
- $process->_dcStack = array();
- $process->_listScope = 0;
- $process->_liStack = array();
- # $process->parse(''); # cas particulier ?
- $process->clear();
- $t = $process->parse($t);
- }
- else
- $t = entites_html($t); // tres laid, en cas d'erreur
- // supprimer un <li></li> provenant d'un <li> ouvrant seul+safehtml
- // cf https://core.spip.net/issues/2201
- $t = str_replace("<li></li>","",$t);
- return $t;
- }
- ?>
|