Code

Updated smarty to 1.0.9
[gosa.git] / gosa-core / include / smarty / plugins / modifiercompiler.count_characters.php
1 <?php\r
2 /**\r
3  * Smarty plugin\r
4  *\r
5  * @package Smarty\r
6  * @subpackage PluginsModifierCompiler\r
7  */\r
8 \r
9 /**\r
10  * Smarty count_characters modifier plugin\r
11  * \r
12  * Type:     modifier<br>\r
13  * Name:     count_characteres<br>\r
14  * Purpose:  count the number of characters in a text\r
15  * \r
16  * @link http://smarty.php.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)\r
17  * @author Uwe Tews \r
18  * @param array $params parameters\r
19  * @return string with compiled code\r
20  */\r
21 function smarty_modifiercompiler_count_characters($params, $compiler)\r
22 {\r
23     // mb_ functions available?\r
24     if (function_exists('mb_strlen')) {\r
25         // count also spaces?\r
26         if (isset($params[1]) && $params[1] == 'true') {\r
27             return '((mb_detect_encoding(' . $params[0] . ', \'UTF-8, ISO-8859-1\') === \'UTF-8\') ? mb_strlen(' . $params[0] . ', SMARTY_RESOURCE_CHAR_SET) : strlen(' . $params[0] . '))';\r
28         } \r
29         return '((mb_detect_encoding(' . $params[0] . ', \'UTF-8, ISO-8859-1\') === \'UTF-8\') ? preg_match_all(\'#[^\s\pZ]#u\', ' . $params[0] . ', $tmp) : preg_match_all(\'/[^\s]/\',' . $params[0] . ', $tmp))';\r
30     } else {\r
31         // count also spaces?\r
32         if (isset($params[1]) && $params[1] == 'true') {\r
33             return 'strlen(' . $params[0] . ')';\r
34         } \r
35         return 'preg_match_all(\'/[^\s]/\',' . $params[0] . ', $tmp)';\r
36     } \r
37 }\r
38 \r
39 ?>