htmlpurifier à la place de safehtml

Gilles Vincent <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <CA+Q4Cmsur8Dasfe8Jh=pRsopp3+495qA16f1dwi+on1a1jJgJQ@mail.gmail.com>
Salut les devs,

j'ai testé, c'est simple à remplacer et le patch est trivial.

Il suffit de mettre (via git par exemple) le contenu du répertoire 'lib' de
html purifer dans plugins-dist/safehtml/lib/htmlpurifier
Puis de remplacer la fonction d'appel dans inc/safehtml.php

// Controle la presence de la lib HTMLPurifier 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/htmlpurifier')) {
            // Evitons de passer par l'autoloader pour gagner en performance
            // et permettre au cache opcode de fonctionner correctement
            require_once $f.'/HTMLPurifier.path.php';
            require_once $f.'/HTMLPurifier.includes.php';
            $config = HTMLPurifier_Config::createDefault();
            $config->set('Cache.SerializerPath', realpath(_DIR_CACHE));
            $process = new HTMLPurifier($config);
        }
        if ($process)
            $test = 1; # ok
        else
            $test = -1; # se rabattre sur une fonction de securite basique
    }

    if ($test > 0) {
        $t = $process->purify($t);
    }
    else
        $t = inc_safehtml_old($t);

    return $t;
}

(dans cet exemple j'avais gardé l'ancien appel à la librairie safehtml)

ça peut se faire via une extension dans un premier temps.
Si d'autres veulent tester, leur retour est le bienvenue.

Gilles
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.