Skip to content

Instantly share code, notes, and snippets.

@joelmiguelvalente
Created October 23, 2019 18:43
Show Gist options
  • Save joelmiguelvalente/fcf14565a176f1c7144298e1ee71bf19 to your computer and use it in GitHub Desktop.
Save joelmiguelvalente/fcf14565a176f1c7144298e1ee71bf19 to your computer and use it in GitHub Desktop.
<?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 ];
}
}
@joelmiguelvalente
Copy link
Author

joelmiguelvalente commented Oct 23, 2019

Lo agregas a inc/smarty/plugins este es válido para Smarty 3.1.31

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment