Пользовательские атрибуты htmlpurifier - PullRequest
11 голосов
/ 16 декабря 2010

Как разрешить пользовательские (html5 data- *) атрибуты в HtmlPurifier?

Ввод:

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

приводит к ошибке:

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

Параметры HtmlPurifierустановлены на:

'HTML.AllowedAttributes' => array('img.src', 'a.href', 'img.data-type')

1 Ответ

18 голосов
/ 17 февраля 2011

Очиститель HTML определяет матрицу атрибутов, которые соответствуют стандарту, и жалуется, когда вы пытаетесь использовать атрибут, который не определен в этой матрице. Однако вы можете добавить новые атрибуты в определение по умолчанию, используя функцию HTMLDefinition :: addAttribute () следующим образом:

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

См. Определение HTMLDefinition :: addAttribute для получения более подробной информации. 'Text' здесь указан тип атрибута, тип атрибута по умолчанию можно найти в AttrTypes.php

...