Kyberia v2.0
[mirrors/Kyberia-bloodline.git] / inc / smarty / node_methodz / modifier.truncate.php
diff --git a/inc/smarty/node_methodz/modifier.truncate.php b/inc/smarty/node_methodz/modifier.truncate.php
new file mode 100644 (file)
index 0000000..21de9f2
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty truncate modifier plugin
+ *
+ * Type:     modifier<br>
+ * 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.
+ * @link http://smarty.php.net/manual/en/language.modifier.truncate.php
+ *          truncate (Smarty online manual)
+ * @param string
+ * @param integer
+ * @param string
+ * @param boolean
+ * @return string
+ */
+function smarty_modifier_truncate($string, $length = 80, $etc = '...',
+                                  $break_words = false)
+{
+    if ($length == 0)
+        return '';
+
+    if (strlen($string) > $length) {
+        $length -= strlen($etc);
+        if (!$break_words)
+           $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
+
+        return substr($string, 0, $length).$etc;
+    } else
+        return $string;
+}
+
+/* vim: set expandtab: */
+
+?>
This page took 0.1414 seconds and 4 git commands to generate.