/** * include/enable HTMLPurifier * * @access private * @param $config - optional config array passed to HTMLPurifier * @return object **/ private static function getPurifier($config = NULL) { if (is_object(self::$purifier)) { return self::$purifier; } if (!class_exists('HTMLPurifier', false)) { $path = CAT_Helper_Directory::getInstance()->sanitizePath(CAT_PATH . '/modules/lib_htmlpurifier/htmlpurifier/library/HTMLPurifier.auto.php'); if (!file_exists($path)) { CAT_Object::getInstance()->printFatalError('Missing library HTMLPurifier!'); } include $path; } $pconfig = HTMLPurifier_Config::createDefault(); if ($config && is_array($config)) { foreach ($config as $key => $val) { $pconfig->set($key, $val); } } $pconfig->set('AutoFormat.Linkify', TRUE); $pconfig->set('URI.Disable', false); // allow most HTML but not all (no forms, for example) $pconfig->set('HTML.Allowed', 'a[href|title],abbr[title],acronym[title],b,blockquote[cite],br,caption,cite,code,dd,del,dfn,div,dl,dt,em,h1,h2,h3,h4,h5,h6,i,img[src|alt|title|class],ins,kbd,li,ol,p,pre,s,strike,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var'); self::$purifier = new HTMLPurifier($pconfig); return self::$purifier; }