Question

Je suis en train de permettre l'attribut rel dans un des éléments dans le filtre Purificateur HTML. Je suis ce guide http://htmlpurifier.org/docs/enduser-customize.html et voici mon code:

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$config->set('HTML.DefinitionID', 'enduser-customize.html tutorial');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); // remove this later!
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'href*', 'URI');
$def->addAttribute('a', 'rel', 'CDATA');
$purifier = new HTMLPurifier($config);

Cependant, le purificateur HTML est encore filtrer sur tous les attributs rel ... Je suis un peu confus ce que le problème pourrait être.

Quand j'utilise:

$config->set('Attr', 'AllowedRel', array('something'));

Je reçois cette erreur:

  

Avis: Utilisation de l'API Obsolète: utiliser $config->set('Attr.AllowedRel', ...) à la place sur la ligne 191 dans le fichier C:\wamp\www\neonet\application\modules\admin\controllers\IndexController.php dans C:\wamp\www\neonet\library\My\htmlpurifier-4.0.0-standalone\HTMLPurifier.standalone.php en ligne 1819

EDIT:

Nouveau code:

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$config->set('Attr.AllowedRel', array('something'));
$purifier = new HTMLPurifier($config);

Quand j'utilise:

<href="/" rel="something">anchor</a>

attribut rel obtient encore filtré.

Était-ce utile?

La solution

Cette directive de configuration peut être intéressant pour vous. En ce qui concerne votre code, cela fonctionne pour moi; peut-être vous avez les guillemets magiques activé ou n'avez pas fait la mises en cache de façon appropriée? (Essayez cognant DefinitionRev dans ce cas.)

L'autre erreur classique lorsque vous essayez d'utiliser rel est qu'il ne fonctionne pas avec XHTML Strict; que doctype ne définit pas rel, donc Attr.AllowedRel ne fait rien (cela devrait être mentionné dans la documentation, mais est pas.) Donc, vous devez choisir un autre type de document si vous voulez garder votre coche W3C ou utiliser le code d'origine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top