| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
							- <?php
 
- /**
 
-  * Smarty shared plugin
 
-  *
 
-  * @package Smarty
 
-  * @subpackage PluginsShared
 
-  */
 
- if(!function_exists('smarty_mb_wordwrap')) {
 
-     /**
 
-      * Wrap a string to a given number of characters
 
-      *
 
-      * @link http://php.net/manual/en/function.wordwrap.php for similarity
 
-      * @param string  $str   the string to wrap
 
-      * @param int     $width the width of the output
 
-      * @param string  $break the character used to break the line
 
-      * @param boolean $cut   ignored parameter, just for the sake of
 
-      * @return string wrapped string
 
-      * @author Rodney Rehm
 
-      */
 
-     function smarty_mb_wordwrap($str, $width=75, $break="\n", $cut=false)
 
-     {
 
-         // break words into tokens using white space as a delimiter
 
-         $tokens = preg_split('!(\s)!S' . Smarty::$_UTF8_MODIFIER, $str, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
 
-         $length = 0;
 
-         $t = '';
 
-         $_previous = false;
 
-         foreach ($tokens as $_token) {
 
-             $token_length = mb_strlen($_token, Smarty::$_CHARSET);
 
-             $_tokens = array($_token);
 
-             if ($token_length > $width) {
 
-                 // remove last space
 
-                 $t = mb_substr($t, 0, -1, Smarty::$_CHARSET);
 
-                 $_previous = false;
 
-                 $length = 0;
 
-                 if ($cut) {
 
-                     $_tokens = preg_split('!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER, $_token, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
 
-                     // broken words go on a new line
 
-                     $t .= $break;
 
-                 }
 
-             }
 
-             foreach ($_tokens as $token) {
 
-                 $_space = !!preg_match('!^\s$!S' . Smarty::$_UTF8_MODIFIER, $token);
 
-                 $token_length = mb_strlen($token, Smarty::$_CHARSET);
 
-                 $length += $token_length;
 
-                 if ($length > $width) {
 
-                     // remove space before inserted break
 
-                     if ($_previous && $token_length < $width) {
 
-                         $t = mb_substr($t, 0, -1, Smarty::$_CHARSET);
 
-                     }
 
-                     // add the break before the token
 
-                     $t .= $break;
 
-                     $length = $token_length;
 
-                     // skip space after inserting a break
 
-                     if ($_space) {
 
-                         $length = 0;
 
-                         continue;
 
-                     }
 
-                 } else if ($token == "\n") {
 
-                     // hard break must reset counters
 
-                     $_previous = 0;
 
-                     $length = 0;
 
-                 } else {
 
-                     // remember if we had a space or not
 
-                     $_previous = $_space;
 
-                 }
 
-                 // add the token
 
-                 $t .= $token;
 
-             }
 
-         }
 
-         return $t;
 
-     }
 
- }
 
- ?>
 
 
  |