Valider 63ef063b rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Un argument supplementaire $callback_prefix qui permet d'utiliser des callback...

Un argument supplementaire $callback_prefix qui permet d'utiliser des callback prefixees ou dans un namespace sans devoir ecraser le comportement par defaut pour un besoin precis (notamment tests unitaires)
parent 515cb374
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+18 −9
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -188,14 +188,26 @@ function traiter_echap_script_dist($regs) {

define('_PROTEGE_BLOCS', ',<(html|pre|code|cadre|frame|script|style)(\s[^>]*)?>(.*)</\1>,UimsS');

// - pour $source voir commentaire infra (echappe_retour)
// - pour $no_transform voir le filtre post_autobr dans inc/filtres
// https://code.spip.net/@echappe_html
/**
 * pour $source voir commentaire infra (echappe_retour)
 * pour $no_transform voir le filtre post_autobr dans inc/filtres
 * @see post_autobr()
 *
 * https://code.spip.net/@echappe_html
 *
 * @param string $letexte
 * @param string $source
 * @param bool $no_transform
 * @param string $preg
 * @param string $callback_prefix
 * @return string|string[]
 */
function echappe_html(
	$letexte,
	$source = '',
	$no_transform = false,
	$preg = ''
	$preg = '',
	$callback_prefix = ''
) {
	if (!is_string($letexte) or !strlen($letexte)) {
		return $letexte;
@@ -222,14 +234,11 @@ function echappe_html(
				$echap = $regs[0];
			} // sinon les traiter selon le cas
			else {
				if (function_exists($f = 'traiter_echap_' . strtolower($regs[1]))) {
					$echap = $f($regs);
				} else {
					if (function_exists($f = $f . '_dist')) {
				if (function_exists($f = $callback_prefix . 'traiter_echap_' . strtolower($regs[1]))
				  or function_exists($f = $f . '_dist')) {
					$echap = $f($regs);
				}
			}
			}

			$p = strpos($letexte, $regs[0]);
			$letexte = substr_replace($letexte, code_echappement($echap, $source, $no_transform), $p, strlen($regs[0]));