2010-12-16 31 views
11

HtmlPurifierでカスタム(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') 
+0

です。質問を改善する必要がある場合は、自由に編集してください。あなたが答えを持っていれば...それを投稿すること自由に感じる –

答えて

18

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