Использование атрибутов data- * с помощью HTMLPurifier

В настоящее время я использую этот код с HTMLPurifier, чтобы разрешать атрибуты тега data-*:

    $def = $config->getHTMLDefinition(true);
    $def->addAttribute('div', 'data-aaa', 'Text');
    $def->addAttribute('div', 'data-bbb', 'Text');
    // ...

Есть ли способ разрешить все атрибуты data-* сразу, желательно во всех HTML-тегах? (они не являются проблемой безопасности в моем случае - насколько я знаю, конечно)

Ответ 1

Нет, это невозможно без изменения стратегии атрибутов проверки.

Ответ 2

Это не полное решение, но я смог глобально отобразить отдельные атрибуты data- с последующим кодом, позволяя им размещаться на любом элементе без необходимости перечислять каждый тип элемента для каждого атрибута.

$def = $config->getHTMLDefinition(true);
$def->info_global_attr['data-aaa-xxx'] = new HTMLPurifier_AttrDef_Text;
$def->info_global_attr['data-bbb-yyy'] = new HTMLPurifier_AttrDef_Text;
$def->info_global_attr['data-ccc-zzz'] = new HTMLPurifier_AttrDef_Text;