fusionpbx/resources/templates/engine/smarty/plugins/modifiercompiler.count_word...

32 lines
989 B
PHP
Raw Permalink Normal View History

2013-11-09 21:02:56 +01:00
<?php
/**
* Smarty plugin
*
2018-11-07 08:18:14 +01:00
* @package Smarty
2013-11-09 21:02:56 +01:00
* @subpackage PluginsModifierCompiler
*/
/**
* Smarty count_words modifier plugin
2018-11-07 08:18:14 +01:00
* Type: modifier
* Name: count_words
2013-11-09 21:02:56 +01:00
* Purpose: count the number of words in a text
*
2023-05-08 17:50:42 +02:00
* @link https://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
2013-11-09 21:02:56 +01:00
* @author Uwe Tews
2018-11-07 08:18:14 +01:00
*
2013-11-09 21:02:56 +01:00
* @param array $params parameters
2018-11-07 08:18:14 +01:00
*
2013-11-09 21:02:56 +01:00
* @return string with compiled code
2018-11-07 08:18:14 +01:00
*/
function smarty_modifiercompiler_count_words($params)
2013-11-09 21:02:56 +01:00
{
if (Smarty::$_MBSTRING) {
// return 'preg_match_all(\'#[\w\pL]+#' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
// expression taken from http://de.php.net/manual/en/function.str-word-count.php#85592
2018-11-07 08:18:14 +01:00
return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/' . Smarty::$_UTF8_MODIFIER . '\', ' .
$params[ 0 ] . ', $tmp)';
2013-11-09 21:02:56 +01:00
}
// no MBString fallback
2023-05-08 17:50:42 +02:00
return 'str_word_count((string) ' . $params[ 0 ] . ')';
2013-11-09 21:02:56 +01:00
}