Очиститель HTML удалить TinyMCE HTML 5 видео тег
Я использую TinyMCE и HTMLPurifier в приложении Symfony2.
Мне нужно встроить некоторые внутренние видео сайта с TinyMCE. Проблема в том, что HTML Purifier не принимает видео тег HTML5 и удаляет их.
Есть ли кто-то, чтобы сообщить мне, как я могу настроить TinyMCE/HTMLPurifier для разрешения встраивания видео?
1 ответ
Решение
На https://github.com/Exercise/HTMLPurifierBundle я немного поправляю преобразователь, чтобы принять тег видео.
Найти полную конфигурацию HTML5 здесь: https://github.com/kennberg/php-htmlpurfier-html5
<?php
namespace Exercise\HTMLPurifierBundle\Form;
use Symfony\Component\Form\DataTransformerInterface;
class HTMLPurifierTransformer implements DataTransformerInterface
{
private $purifier;
/**
* Constructor.
*
* @param \HTMLPurifier $purifier
*/
public function __construct()
{
//Find full HTML5 config : https://github.com/kennberg/php-htmlpurfier-html5
$config = \HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'HTML 4.01 Transitional');
// Set some HTML5 properties
$config->set('HTML.DefinitionID', 'html5-definitions'); // unqiue id
$config->set('HTML.DefinitionRev', 1);
if ($def = $config->maybeGetRawHTMLDefinition()) {
// http://developers.whatwg.org/the-video-element.html#the-video-element
$def->addElement('video', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', array(
'src' => 'URI',
'type' => 'Text',
'width' => 'Length',
'height' => 'Length',
'poster' => 'URI',
'preload' => 'Enum#auto,metadata,none',
'controls' => 'Bool',
));
$def->addElement('source', 'Block', 'Flow', 'Common', array(
'src' => 'URI',
'type' => 'Text',
));
}
$this->purifier = new \HTMLPurifier($config);
}
/**
* @see Symfony\Component\Form\DataTransformerInterface::transform()
*/
public function transform($value)
{
return $value;
}
/**
* @see Symfony\Component\Form\DataTransformerInterface::reverseTransform()
*/
public function reverseTransform($value)
{
return $this->purifier->purify($value);
}
}
РЕДАКТИРОВАТЬ 2018-04-16
Адаптируйте код, чтобы избежать удаления "src" в последней версии HTML Purifier.
Дополнительные параметры: https://github.com/kennberg/php-htmlpurfier-html5/blob/master/htmlpurifier_html5.php