Search code examples
phptinymcehtmlpurifier

Can't get htmlpurifier to allow some tinymce styles to go through


I'm having problems setting htmlPurifier to allow (not filter out) the accepted css styles.

php code:

$text = trim(html_entity_decode($text));
require_once("../htmlpurifier/library/HTMLPurifier.auto.php");
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed','p[style],ol[style],li[style],ul[style],b,u,strike,br,span[style]');
$config->set('CSS.AllowedProperties', array('text-decoration' => true,'font-family' => true,'font-size' => true,'text-align' => true,'padding-left' => true,'padding-right' => true,'padding-top' => true,'padding-bottom' => true,'color' => true,'background-color' => true));
$config->set('AutoFormat.RemoveEmpty', true);
$config->set('URI.DisableExternalResources', true);
$purifier = new HTMLPurifier($config);
$text = $purifier->purify("".$text);

Input text (tinyMCE output):

<p style=\"text-align: left;\">
    <span style=\"font-family: arial, helvetica, sans-serif; font-size: small;\">
       Lorem ipsum dolor sit amet, conse\'ctetur adipiscing elit. Nunc sit amet ipsum pulvinar elit euismod porta.
    </span>
</p>

Actual Output:

<p>
    <span>
        Lorem ipsum dolor sit amet, conse\'ctetur adipiscing elit. Nunc sit amet ipsum pulvinar elit euismod porta.
    </span>
</p>

Expected Output:

<p style="text-align:left">
    <span style="font-family:arial, helvetica, sans-serif;font-size:small">
       Lorem ipsum dolor sit amet, conse'ctetur adipiscing elit. Nunc sit amet ipsum pulvinar elit euismod porta.
    </span>
</p>

Any help or comment would be appreciated!!


Solution

  • Turn off magic quotes. (This space intentionally left blank.)