cvs: smarty / NEWS /libs/plugins modifier.truncate.php

"Monte Ohrt" <[email protected]>
Newsgroups gmane.comp.php.cvs.smarty
Message-ID <cvsmohrt1118690549@cvsserver>
mohrt		Mon Jun 13 15:22:29 2005 EDT

  Modified files:              
    /smarty	NEWS 
    /smarty/libs/plugins	modifier.truncate.php 
  Log:
  add "middle" parameter to truncate modifier
  
  
http://cvs.php.net/diff.php/smarty/NEWS?r1=1.502&r2=1.503&ty=u
Index: smarty/NEWS
diff -u smarty/NEWS:1.502 smarty/NEWS:1.503
--- smarty/NEWS:1.502	Fri May  6 10:27:19 2005
+++ smarty/NEWS	Mon Jun 13 15:22:28 2005
@@ -1,3 +1,4 @@
+  - add "middle" parameter to truncate (monte)
   - make form input label ids optional (monte)
   - add error message for empty if/elseif statements (eykanal,
     monte)
http://cvs.php.net/diff.php/smarty/libs/plugins/modifier.truncate.php?r1=1.4&r2=1.5&ty=u
Index: smarty/libs/plugins/modifier.truncate.php
diff -u smarty/libs/plugins/modifier.truncate.php:1.4 smarty/libs/plugins/modifier.truncate.php:1.5
--- smarty/libs/plugins/modifier.truncate.php:1.4	Fri Dec 19 10:22:55 2003
+++ smarty/libs/plugins/modifier.truncate.php	Mon Jun 13 15:22:29 2005
@@ -13,29 +13,35 @@
  * Name:     truncate<br>
  * Purpose:  Truncate a string to a certain length if necessary,
  *           optionally splitting in the middle of a word, and
- *           appending the $etc string.
+ *           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)
  * @param string
  * @param integer
  * @param string
  * @param boolean
+ * @param boolean
  * @return string
  */
 function smarty_modifier_truncate($string, $length = 80, $etc = '...',
-                                  $break_words = false)
+                                  $break_words = false, $middle = false)
 {
     if ($length == 0)
         return '';
 
     if (strlen($string) > $length) {
         $length -= strlen($etc);
-        if (!$break_words)
+        if (!$break_words && !$middle) {
             $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
-      
-        return substr($string, 0, $length).$etc;
-    } else
+        }
+        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: */

-- 
Smarty CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.