summaryrefslogtreecommitdiff
path: root/lib/smarty3/plugins/modifier.capitalize.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/smarty3/plugins/modifier.capitalize.php')
-rw-r--r--lib/smarty3/plugins/modifier.capitalize.php82
1 files changed, 63 insertions, 19 deletions
diff --git a/lib/smarty3/plugins/modifier.capitalize.php b/lib/smarty3/plugins/modifier.capitalize.php
index 6513a04..c5fc400 100644
--- a/lib/smarty3/plugins/modifier.capitalize.php
+++ b/lib/smarty3/plugins/modifier.capitalize.php
@@ -5,11 +5,10 @@
* @package Smarty
* @subpackage PluginsModifier
*/
-
/**
* Smarty capitalize modifier plugin
- * Type: modifier<br>
- * Name: capitalize<br>
+ * Type: modifier
+ * Name: capitalize
* Purpose: capitalize words in the string
* {@internal {$string|capitalize:true:true} is the fastest option for MBString enabled systems }}
*
@@ -29,50 +28,75 @@ function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = fals
$upper_string = mb_convert_case($string, MB_CASE_TITLE, Smarty::$_CHARSET);
} else {
// uppercase word breaks
- $upper_string = preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER,
- 'smarty_mod_cap_mbconvert_cb', $string);
+ $upper_string = preg_replace_callback(
+ "!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER,
+ 'smarty_mod_cap_mbconvert_cb',
+ $string
+ );
}
// check uc_digits case
if (!$uc_digits) {
- if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches,
- PREG_OFFSET_CAPTURE)) {
+ if (preg_match_all(
+ "!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER,
+ $string,
+ $matches,
+ PREG_OFFSET_CAPTURE
+ )
+ ) {
foreach ($matches[ 1 ] as $match) {
$upper_string =
- substr_replace($upper_string, mb_strtolower($match[ 0 ], Smarty::$_CHARSET), $match[ 1 ],
- strlen($match[ 0 ]));
+ substr_replace(
+ $upper_string,
+ mb_strtolower($match[ 0 ], Smarty::$_CHARSET),
+ $match[ 1 ],
+ strlen($match[ 0 ])
+ );
}
}
}
$upper_string =
- preg_replace_callback("!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_mbconvert2_cb',
- $upper_string);
+ preg_replace_callback(
+ "!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER,
+ 'smarty_mod_cap_mbconvert2_cb',
+ $upper_string
+ );
return $upper_string;
}
-
// lowercase first
if ($lc_rest) {
$string = strtolower($string);
}
// uppercase (including hyphenated words)
$upper_string =
- preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_ucfirst_cb',
- $string);
+ preg_replace_callback(
+ "!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER,
+ 'smarty_mod_cap_ucfirst_cb',
+ $string
+ );
// check uc_digits case
if (!$uc_digits) {
- if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches,
- PREG_OFFSET_CAPTURE)) {
+ if (preg_match_all(
+ "!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER,
+ $string,
+ $matches,
+ PREG_OFFSET_CAPTURE
+ )
+ ) {
foreach ($matches[ 1 ] as $match) {
$upper_string =
substr_replace($upper_string, strtolower($match[ 0 ]), $match[ 1 ], strlen($match[ 0 ]));
}
}
}
- $upper_string = preg_replace_callback("!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_ucfirst2_cb',
- $upper_string);
+ $upper_string = preg_replace_callback(
+ "!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER,
+ 'smarty_mod_cap_ucfirst2_cb',
+ $upper_string
+ );
return $upper_string;
}
-/*
+/**
*
* Bug: create_function() use exhausts memory when used in long loops
* Fix: use declared functions for callbacks instead of using create_function()
@@ -80,21 +104,41 @@ function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = fals
*
* @author Kyle Renfrow
*/
+/**
+ * @param $matches
+ *
+ * @return string
+ */
function smarty_mod_cap_mbconvert_cb($matches)
{
return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 2 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
}
+/**
+ * @param $matches
+ *
+ * @return string
+ */
function smarty_mod_cap_mbconvert2_cb($matches)
{
return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 3 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
}
+/**
+ * @param $matches
+ *
+ * @return string
+ */
function smarty_mod_cap_ucfirst_cb($matches)
{
return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 2 ]));
}
+/**
+ * @param $matches
+ *
+ * @return string
+ */
function smarty_mod_cap_ucfirst2_cb($matches)
{
return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 3 ]));