Obecnie prowadzę jakiś kod z HTMLPurifier. Istnieje jednak jeden typ znacznika, który chcemy pozostawić.

Przeglądałem pytania i doktorzy, a nie mogłem znaleźć wyraźnej odpowiedzi ... jak mogę zwolnić konkretny tag z HTMLPurifier?

Szukam czegoś wzdłuż linii ...

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', $HTML_Allowed);
$config->set('ExemptHTML', "img,form,pre");
0
liljoshu 7 październik 2020, 20:56

1 odpowiedź

Najlepsza odpowiedź

Jest to nieco hacky, ale okazuje się, że możesz napisać klasę, która rozszerza konkretny schemat za pomocą _Tagname na rodzica i zarejestruje go, i utwórz nowy walidator dostosowany do swojego passhrough (zakończył się przełączanie do kierowania atrybutem dla większej kontroli atomowej , ale powinno działać albo hipotetycznie).

if (!class_exists("HTMLPurifier_[something]scheme_[mytag]")){
    class HTMLPurifier_[something]Scheme_[mytag] extends HTMLPurifier_[something]Scheme{
        function __construct()
        {
            $this->[required_variable_for_passing_its_category] = true;
        }
        public function doValidate(&$uri, $config, $context) {
            return true;
            // Or, alternatively, you could actually do some validation here.
        }
    }
    HTMLPurifier_[something]SchemeRegistry::instance()->register(new HTMLPurifier_[something]Scheme_[mytag](), $config);
}
0
lilHar 9 październik 2020, 20:55