| 
<?php/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */
 /**
 * Smarty unescape modifier plugin
 * Type:     modifier
 * Name:     unescape
 * Purpose:  unescape html entities
 *
 * @author Rodney Rehm
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
 function smarty_modifiercompiler_unescape($params)
 {
 if (!isset($params[ 1 ])) {
 $params[ 1 ] = 'html';
 }
 if (!isset($params[ 2 ])) {
 $params[ 2 ] = '\'' . addslashes(Smarty::$_CHARSET) . '\'';
 } else {
 $params[ 2 ] = "'{$params[ 2 ]}'";
 }
 switch (trim($params[ 1 ], '"\'')) {
 case 'entity':
 case 'htmlall':
 if (Smarty::$_MBSTRING) {
 return 'mb_convert_encoding(' . $params[ 0 ] . ', ' . $params[ 2 ] . ', \'HTML-ENTITIES\')';
 }
 return 'html_entity_decode(' . $params[ 0 ] . ', ENT_NOQUOTES, ' . $params[ 2 ] . ')';
 case 'html':
 return 'htmlspecialchars_decode(' . $params[ 0 ] . ', ENT_QUOTES)';
 case 'url':
 return 'rawurldecode(' . $params[ 0 ] . ')';
 default:
 return $params[ 0 ];
 }
 }
 
 |