From 77fd1f51a3c5f5a52f72ef8a299fe368228e2285 Mon Sep 17 00:00:00 2001 From: vdigital Date: Fri, 23 May 2008 21:05:41 +0000 Subject: git-svn-id: http://piwigo.org/svn/trunk@2357 68402e56-0260-453c-a942-63ccdbb3a9ee --- .../smarty/libs/plugins/modifier.truncate.php | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 BSF/include/smarty/libs/plugins/modifier.truncate.php (limited to 'BSF/include/smarty/libs/plugins/modifier.truncate.php') diff --git a/BSF/include/smarty/libs/plugins/modifier.truncate.php b/BSF/include/smarty/libs/plugins/modifier.truncate.php new file mode 100644 index 000000000..35c89690a --- /dev/null +++ b/BSF/include/smarty/libs/plugins/modifier.truncate.php @@ -0,0 +1,50 @@ + + * Name: truncate
+ * Purpose: Truncate a string to a certain length if necessary, + * optionally splitting in the middle of a word, and + * appending the $etc string or inserting $etc into the middle. + * @link http://smarty.php.net/manual/en/language.modifier.truncate.php + * truncate (Smarty online manual) + * @author Monte Ohrt + * @param string + * @param integer + * @param string + * @param boolean + * @param boolean + * @return string + */ +function smarty_modifier_truncate($string, $length = 80, $etc = '...', + $break_words = false, $middle = false) +{ + if ($length == 0) + return ''; + + if (strlen($string) > $length) { + $length -= min($length, strlen($etc)); + if (!$break_words && !$middle) { + $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1)); + } + if(!$middle) { + return substr($string, 0, $length) . $etc; + } else { + return substr($string, 0, $length/2) . $etc . substr($string, -$length/2); + } + } else { + return $string; + } +} + +/* vim: set expandtab: */ + +?> -- cgit v1.2.3