775a20e87405989f59fa70fc41bca665ae653d8c
[atutor.git] / mods / phpdoc2 / PhpDocumentor / phpDocumentor / Smarty-2.6.0 / libs / plugins / modifier.truncate.php
1 <?php\r
2 /**\r
3  * Smarty plugin\r
4  * @package Smarty\r
5  * @subpackage plugins\r
6  */\r
7 \r
8 \r
9 /**\r
10  * Smarty truncate modifier plugin\r
11  *\r
12  * Type:     modifier<br>\r
13  * Name:     truncate<br>\r
14  * Purpose:  Truncate a string to a certain length if necessary,\r
15  *           optionally splitting in the middle of a word, and \r
16  *           appending the $etc string.\r
17  * @link http://smarty.php.net/manual/en/language.modifier.truncate.php\r
18  *          truncate (Smarty online manual)\r
19  * @param string\r
20  * @param integer\r
21  * @param string\r
22  * @param boolean\r
23  * @return string\r
24  */\r
25 function smarty_modifier_truncate($string, $length = 80, $etc = '...',\r
26                                   $break_words = false)\r
27 {\r
28     if ($length == 0)\r
29         return '';\r
30 \r
31     if (strlen($string) > $length) {\r
32         $length -= strlen($etc);        \r
33         if (!$break_words)\r
34             $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));\r
35       \r
36         return substr($string, 0, $length).$etc;\r
37     } else\r
38         return $string;\r
39 }\r
40 \r
41 /* vim: set expandtab: */\r
42 \r
43 ?>\r