Разрешение пользовательского атрибута для элемента с htmlpurifier

Застрял на полпути через мой маленький процесс, нужна помощь с этим последним шагом.

Необходимо добавить пользовательский элемент, чтобы принять пользовательский book элемент, который будет передан через форму textarea.

$dirty = 'you should check this out: <book author="me">my book title</book>!';

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', 'book');
$def = $config->getHTMLDefinition(true);
$def->addElement('book',  'Inline', 'Inline', 'Common');
$purifier = new HTMLPurifier($config);
echo $purifier->purify($dirty);

Возвращает:
you should check this out: <book>my book title</book>!

Но это убирает author="me"

Если я добавлю в htmlpurifier стандартное разрешение attr, например:

`$config->set('HTML.Allowed', 'book[author]');`

возвращает ошибку:
Attribute 'author' in element 'book' not supported

Мне нужно, чтобы author="me" может быть включен или не включен.

Может кто-нибудь, пожалуйста, поделитесь кодом изменения / дополнения мне нужно, чтобы получить author="me" быть разрешенным — спасибо!

Я использую htmlpurifier 4.6.0

2

Решение

Вы пытались использовать $def->addAttribute('book', 'author', 'CDATA'); после вашего $def->addElement(...) вызов?

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]