<?php 
/** 
 * Smarty plugin 
 * 
 * @package    Smarty 
 * @subpackage PluginsModifierCompiler 
 */ 
 
/** 
 * Smarty unescape modifier plugin 
 * Type:     modifier<br> 
 * Name:     unescape<br> 
 * 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]; 
    } 
} 
 
 |