diff options
Diffstat (limited to 'libs/plugins/modifier.debug_print_var.php')
| -rw-r--r-- | libs/plugins/modifier.debug_print_var.php | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/libs/plugins/modifier.debug_print_var.php b/libs/plugins/modifier.debug_print_var.php index 013337ae..bac589c1 100644 --- a/libs/plugins/modifier.debug_print_var.php +++ b/libs/plugins/modifier.debug_print_var.php @@ -12,12 +12,11 @@ * Type: modifier<br> * Name: debug_print_var<br> * Purpose: formats variable contents for display in the console - * - * @link http://smarty.php.net/manual/en/language.modifier.debug.print.var.php debug_print_var (Smarty online manual) + * * @author Monte Ohrt <monte at ohrt dot com> - * @param array $ |object - * @param integer $ - * @param integer $ + * @param array|object $var variable to be formatted + * @param integer $depth maximum recursion depth if $var is an array + * @param integer $length maximum string length if $var is a string * @return string */ function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40) @@ -37,6 +36,7 @@ function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40) $depth--; } break; + case 'object' : $object_vars = get_object_vars($var); $results = '<b>' . get_class($var) . ' Object (' . count($object_vars) . ')</b>'; @@ -47,6 +47,7 @@ function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40) $depth--; } break; + case 'boolean' : case 'NULL' : case 'resource' : @@ -61,23 +62,40 @@ function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40) } $results = '<i>' . $results . '</i>'; break; + case 'integer' : case 'float' : $results = htmlspecialchars((string) $var); break; + case 'string' : $results = strtr($var, $_replace); - if (strlen($var) > $length) { - $results = substr($var, 0, $length - 3) . '...'; - } + if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { + if (mb_strlen($var, SMARTY_RESOURCE_CHAR_SET) > $length) { + $results = mb_substr($var, 0, $length - 3, SMARTY_RESOURCE_CHAR_SET) . '...'; + } + } else { + if (strlen($var) > $length) { + $results = substr($var, 0, $length - 3) . '...'; + } + } + $results = htmlspecialchars('"' . $results . '"'); break; + case 'unknown type' : default : $results = strtr((string) $var, $_replace); - if (strlen($results) > $length) { - $results = substr($results, 0, $length - 3) . '...'; - } + if (SMARTY_MBSTRING /* ^phpunit */&&empty($_SERVER['SMARTY_PHPUNIT_DISABLE_MBSTRING'])/* phpunit$ */) { + if (mb_strlen($results, SMARTY_RESOURCE_CHAR_SET) > $length) { + $results = mb_substr($results, 0, $length - 3, SMARTY_RESOURCE_CHAR_SET) . '...'; + } + } else { + if (strlen($results) > $length) { + $results = substr($results, 0, $length - 3) . '...'; + } + } + $results = htmlspecialchars($results); } |
