Пример #1
0
/**
 * 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;
}
Пример #2
0
 /**
  * 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;
 }