Questa è una specie di combinazione speciale di tag che voglio consentire in HTMLPurifier, ma non riesco a far funzionare la combinazione.Come faccio a consentire i tag script, oggetto, param, embed e iframe in HTMLPurifier?
Posso ottenere il funzionamento dei tag di script, ma i tag di incorporamento vengono rimossi (abilito i tag di script con HTML.Trusted = true). Quando rimetto i tag di incorporamento, i tag di script vengono rimossi (rimuovo HTML.Trusted). Quello che segue è la mia configurazione:
$config->set('HTML.Trusted', true);
$config->set('HTML.SafeEmbed', true);
$config->set('HTML.SafeObject', true);
$config->set('Output.FlashCompat', true);
Ho anche provato ad aggiungere in seguito alla quale ha peggiorato le cose:
$config->set('HTML.Allowed', 'object[width|height|data],param[name|value],embed[src|type|allowscriptaccess|allowfullscreen|width|height],script[src|type]');
Inoltre, io non riesco a ottenere iframe per lavorare non importa quale. Ho provato ad aggiungere:
$config->set('HTML.DefinitionID', 'enduser-customize.html iframe');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); // remove this later!
$def = $config->getHTMLDefinition(true);
$iframe = $def->addElement(
'iframe', // name
'Block', // content set
'Empty', // allowed children
'Common', // attribute collection
array(// attributes
'src*' => 'URI#embedded',
'width' => 'Pixels#1000',
'height' => 'Pixels#1000',
'frameborder=' => 'Number',
'name' => 'ID',
)
);
$iframe->excludes = array('iframe' => true);
Qualsiasi aiuto su come ottenere l'intera combinazione di lavorare, o anche i tag script con oggetto/param e embed sarebbe molto apprezzato !!!
Oh sì, questo ovviamente non è per tutti gli utenti, solo per utenti "speciali".
Grazie!
PS - per favore non mi collegamento a http://htmlpurifier.org/docs/enduser-customize.html
UPDATE
ho trovato una soluzione per l'aggiunta di iframe al fondo della filettatura qui: http://htmlpurifier.org/phorum/read.php?3,4646
L'attuale la configurazione è ora:
$config->set('HTML.Trusted', true);
$config->set('HTML.SafeEmbed', true);
$config->set('HTML.SafeObject', true);
$config->set('Output.FlashCompat', true);
$config->set('Filter.Custom', array(new HTMLPurifier_Filter_MyIframe()));
AGGIORNAMENTO PER L'AGGIORNAMENTO
Se hai problemi con il mio commento nel forum HTMLPurifier, può essere perché voglio dire per il metodo a guardare come questo:
public function preFilter($html, $config, $context) {
return preg_replace("/iframe/", "img class=\"MyIframe\" ", preg_replace("/<\/iframe>/", "", $html));
}
"Non utilizzare HTML Purifier." :-) –
Il purificatore dell'HTML! Perché non dovrei usarlo? ;) – shmuel613
Per essere veramente corretto, dovresti probabilmente estendere 'HTMLPurifier_Filter'. La soluzione è comunque ottima; Sto utilizzando questo, ma autorizzo i domini di cui mi fido invece (ad esempio la nuova incorporazione di iframe di youtube). –