2010-12-16 13 views
11

HtmlPurifier'da özel (html5 data- *) özniteliklerine nasıl izin verilir?htmlpurifier özel özelikler

Girdi:

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

bir hata ile sonuçlanır:

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

HtmlPurifier seçenekleri ayarlanır:

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

Sorunuzu iyileştirmeniz gerekiyorsa, düzenlemek için çekinmeyin. Eğer bir cevabınız varsa ... yayınlamaktan çekinmeyin –

cevap

18

HTML temizleyici olan niteliklerin matrisi tanımlar standart uyumlu ve Bu matriste tanımlanmayan bir öznitelik kullanmaya çalıştığınızda şikayet ediyor. Ancak, fonksiyon HTMLDefinition kullanarak varsayılan tanımına yeni özellik ekleyebilirsiniz :: addAttribute() aşağıdaki gibidir:

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

fazla ayrıntı için HTMLDefinition::addAttribute tanımına bakın. 'Text' Burada özellik türü, varsayılan nitelik türünü bulabilirsiniz AttrTypes.php