I am trying to pass some XML tags (abcdef>) through htmlpurifier. Since the tags itself are not supported, I am trying to add an element first and then adding it to allowedElements. However this is not working, i'm just getting a blank page. Any ideas please on what I am doing wrong, or if there is an easier way to achieve what i am looking for.
$config = HTMLPurifier_Config::createDefault();
$config->set('Core', 'Encoding', "UTF-8");
$config->set('HTML', 'DefinitionID', 'pinaki-test');
$config->set('HTML', 'DefinitionRev', 3);
$config->set('Cache', 'DefinitionImpl', null); // remove this later!
$config->set('Cache', 'SerializerPath', "/var/cache/htmlpurify");
$def = $config->getHTMLDefinition(true);
$def->addElement("tag1", false, 'Empty', 'Common', array());
$def->addElement("tag2", false, 'Empty', 'Common', array());
$config->set('HTML', 'AllowedElements', array("tag1", "tag2"));
Let know if anyone needs any other details.
Note: The library is working fine without adding the elements.
You should turn on error reporting; makes dev a lot easier!
Fixing a bunch of errors (the "cannot edit configuration after finalization means all your configs need to be before you getHTMLDefinition; deprecated API means that you should change your config set format but is harmless), then you get a blank string. Then you need to make sure your new elements are in the allowed elements of someone else, an easy way to do this is mark them Inline. I doubt the AllowedElements attribute is what you want, because it will exclude all other elements...