htmlpurifier custom attributes
Asked Answered
I

1

15

How to allow custom (html5 data-*) attributes in HtmlPurifier?

Input:

<img src="/my.jpg" data-type="5" alt="" />

leads to an error:

Attribute 'data-type' in element 'img' not supported 
(for information on implementing this, see the support forums) 

HtmlPurifier options are set to:

'HTML.AllowedAttributes' => array('img.src', 'a.href', 'img.data-type')
Irvine answered 16/12, 2010 at 18:14 Comment(1)
If you need to improve your question, feel free to edit it. If you have an answer ... feel free to post itIndefensible
A
23

HTML purifier defines the matrix of attributes that are standard compliant and complains when you try to use an attribute that it is not defined in this matrix. However, you can add new attributes to the default definition using the function HTMLDefinition::addAttribute() as follow:

$config = HTMLPurifier_Config::createDefault();
$def = $config->getHTMLDefinition(true);
$def->addAttribute('img', 'data-type', 'Text');
$purifier = new HTMLPurifier($config);

See the definition of HTMLDefinition::addAttribute for more details. 'Text' here is the attribute type, you can find the default attribute type from AttrTypes.php

Alex answered 17/2, 2011 at 15:22 Comment(1)
Thanks, this way of doing it unblocked me!Certificate

© 2022 - 2024 — McMap. All rights reserved.