Это своего рода специальная комбинация тегов, которую я хочу разрешить в HTMLPurifier, но не могу заставить эту комбинацию работать .
Я могу заставить работать теги сценария, но затем теги вставки удаляются (я включаю теги сценария с помощью HTML.Trusted = true). Когда я возвращаю теги вставки, теги сценария удаляются (я удаляю HTML. Надежно). Вот моя конфигурация:
$config->set('HTML.Trusted', true);
$config->set('HTML.SafeEmbed', true);
$config->set('HTML.SafeObject', true);
$config->set('Output.FlashCompat', true);
Я даже попытался добавить следующее, что усугубило ситуацию:
$config->set('HTML.Allowed', 'object[width|height|data],param[name|value],embed[src|type|allowscriptaccess|allowfullscreen|width|height],script[src|type]');
Кроме того, я не могу заставить работать iframe, несмотря ни на что. Я попытался добавить:
$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);
Любая помощь по обеспечению работы всей комбинации или даже тегов сценариев с object / param и embed была бы БОЛЬШЕ оценена !!!
О да, это явно не для всех пользователей, только для "особых" пользователей.
Спасибо!
PS - пожалуйста, не связывайте меня с http://htmlpurifier.org/docs/enduser-customize.html
ОБНОВЛЕНИЕ
Я нашел решение для добавления окон iframe в конце цепочки здесь: http://htmlpurifier.org/phorum/read.php?3,4646
Текущая конфигурация сейчас:
$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() ));
ОБНОВЛЕНИЕ ДО ОБНОВЛЕНИЯ
Если у вас возникли проблемы с моим комментарием на форуме HTMLPurifier это может быть потому, что я имею в виду, что метод выглядит следующим образом:
public function preFilter($html, $config, $context) {
return preg_replace("/iframe/", "img class=\"MyIframe\" ", preg_replace("/<\/iframe>/", "", $html));
}