Esto es una especie de combinación especial de etiquetas que quiero permitir en HTMLPurifier, pero parece que la combinación no funciona.¿Cómo se permiten las etiquetas script, object, param, embed e iframe en HTMLPurifier?
puedo conseguir etiquetas de script para trabajar, pero luego incrustar etiquetas se eliminan (puedo activar las etiquetas de script con HTML.Trusted = true). Cuando vuelvo a incorporar las etiquetas, las etiquetas de script se eliminan (elimino HTML.Trusted). Lo que sigue es mi config:
$config->set('HTML.Trusted', true);
$config->set('HTML.SafeEmbed', true);
$config->set('HTML.SafeObject', true);
$config->set('Output.FlashCompat', true);
Incluso he intentado añadir en los siguientes elementos que empeoró las cosas:
$config->set('HTML.Allowed', 'object[width|height|data],param[name|value],embed[src|type|allowscriptaccess|allowfullscreen|width|height],script[src|type]');
Además, me parece que no puede conseguir marcos flotantes para trabajar no importa qué. He intentado añadir:
$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);
Cualquier ayuda en conseguir todo el combo para trabajar, o incluso etiquetas de script con objeto/param y embed sería muy apreciada !!!
Oh sí, esto no es, obviamente, para todos los usuarios, sólo los usuarios "especiales".
Gracias!
PS - por favor no me enlazar a http://htmlpurifier.org/docs/enduser-customize.html
ACTUALIZACIÓN
he encontrado una solución para añadir marcos flotantes en la parte inferior de la rosca aquí: http://htmlpurifier.org/phorum/read.php?3,4646
La corriente configuración es ahora:
$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()));
ACTUALIZACIÓN DE LA ACTUALIZACIÓN
Si usted está teniendo problemas con mi comentario en el foro HTMLPurifier, puede deberse a que me refiero para el método a tener este aspecto:
public function preFilter($html, $config, $context) {
return preg_replace("/iframe/", "img class=\"MyIframe\" ", preg_replace("/<\/iframe>/", "", $html));
}
"No utilizar HTML Purifier". :-) –
HTML Purificador de rocas! ¿Por qué no querría usarlo? ;) – shmuel613
Para ser realmente correcto, probablemente debería extender 'HTMLPurifier_Filter'. La solución es genial; Estoy usando esto, pero los dominios de la lista blanca en los que confío (por ejemplo, la nueva incrustación iframe de youtube). –