sto cercando di consentire ad alcuni data-attribute
con htmlPurifier per tutta la mia span
ma nessun modo ...HtmlPurifier - permettere che i dati attibute
ho questa stringa:
<p>
<span data-time-start="1" data-time-end="5" id="5">
<word class="word">My</word>
<word class="word">Name</word>
</span>
<span data-time-start="6" data-time-end="15" id="88">
<word class="word">Is</word>
<word class="word">Zooboo</word>
</span>
<p>
mio htmlpurifier config:
$this->HTMLpurifierConfigInverseTransform = \HTMLPurifier_Config::createDefault();
$this->HTMLpurifierConfigInverseTransform->set('HTML.Allowed', 'span,u,strong,em');
$this->HTMLpurifierConfigInverseTransform->set('HTML.ForbiddenElements', 'word,p');
$this->HTMLpurifierConfigInverseTransform->set('CSS.AllowedProperties', 'font-weight, font-style, text-decoration');
$this->HTMLpurifierConfigInverseTransform->set('AutoFormat.RemoveEmpty', true);
purifico mia $value
in questo modo:
$purifier = new \HTMLPurifier($this->HTMLpurifierConfigInverseTransform);
var_dump($purifier->purify($value));die;
E ottenere questo:
<span>My Name</span><span>Is Zoobo</span>
Ma come conservare gli attributi miei dati id
, data-time-start
, data-time-end
nel mio span
?
ho bisogno di avere questo:
<span data-time-start="1" data-time-end="5" id="5">My Name</span data-time-start="6" data-time-end="15" id="88"><span>Is Zoobo</span>
ho provato a testare con questa configurazione:
$this->HTMLpurifierConfigInverseTransform->set('HTML.Allowed', 'span[data-time-start],u,strong,em');
ma messaggio di errore:
utilizzatori Attenzione: attributo 'i dati in tempo -start 'nell'elemento' span 'non supportato da (per informazioni sull'implementazione, consultare il supporto forum)
Grazie per il vostro aiuto !!
EDIT 1
Ho provato a permettere ID nel tempo firdt con questa linea di codice:
$this->HTMLpurifierConfigInverseTransform->set('Attr.EnableID', true);
non funziona per me ...
EDIT 2
Per gli attributi data-*
, aggiungo questa riga ma non succede nulla ened troppo ...
$def = $this->HTMLpurifierConfigInverseTransform->getHTMLDefinition(true);
$def->addAttribute('sub', 'data-time-start', 'CDATA');
$def->addAttribute('sub', 'data-time-end', 'CDATA');
Grazie per la risposta completa! Ho provato la prima volta per abilitare l'ID ma '$ this-> HTMLpurifierConfigInverseTransform-> set ('Attr.EnableID', true);' non funziona ... Quindi per consentire attributi speciali, lo vedrò ma sembra essere duro per me ... Sono un debuttante ... – Zagloo
@Zagloo: ti sei assicurato di dare alla tua definizione un ID e un numero di revisione (ricordo vagamente di non farlo causa problemi) e di disabilitare la cache delle definizioni mentre ci stai lavorando? Sfortunatamente non ho idea del perché "Attr.EnableID" non funzioni per te, a parte una mancata corrispondenza della versione, ma fa parte del purificatore HTML quasi per sempre, quindi non penso sia così. :( – pinkgothic