/** * Smarty - HTML Purifier block plugin * * File: block.purify.php<br> * Type: block<br> * Name: purify<br> * Date: Oct 20, 2010<br> * Purpose: Purify template output.<br> * Install: Drop into the plugin directory, call * <code>{purify}HTML fragment{/purify}</code> * from template. * * @param array $params * <pre> * Params: assign: string (null) * </pre> * @param string $content * @param Smarty * @return string purified content */ function smarty_block_purify($params, $content, &$smarty) { if (is_null($content)) { return; } $assign = null; foreach ($params as $_key => $_val) { switch ($_key) { case 'assign': $$_key = (string)$_val; break; default: $smarty->trigger_error("purify: unknown attribute '$_key'"); } } $purifier = Piwik_HTMLPurifier::getInstance(); $output = $purifier->purify($content); return $assign ? $smarty->assign($assign, $output) : $output; }
/** * Returns the singleton HTMLPurifier or a mock object * * @return HTMLPurifier|Piwik_HTMLPurifier */ public static function getInstance() { if (self::$instance == null) { if (file_exists(PIWIK_INCLUDE_PATH . '/libs/HTMLPurifier.php')) { if (!class_exists('HTMLPurifier_Bootstrap', false)) { HTMLPurifier_Bootstrap::registerAutoload(); } $config = HTMLPurifier_Config::createDefault(); $config->set('Cache.SerializerPath', PIWIK_USER_PATH . '/tmp/purifier'); self::$instance = new HTMLPurifier($config); } else { $c = __CLASS__; self::$instance = new $c(); } } return self::$instance; }