summaryrefslogtreecommitdiff
path: root/inc/common.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/common.php')
-rw-r--r--inc/common.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/inc/common.php b/inc/common.php
index 7aaf8098b..1f7e3f910 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -1206,4 +1206,27 @@ function preg_quote_cb($string){
return preg_quote($string,'/');
}
+/**
+ * Shorten a given string by removing data from the middle
+ *
+ * You can give the string in two parts, teh first part $keep
+ * will never be shortened. The second part $short will be cut
+ * in the middle to shorten but only if at least $min chars are
+ * left to display it. Otherwise it will be left off.
+ *
+ * @param string $keep the part to keep
+ * @param string $short the part to shorten
+ * @param int $max maximum chars you want for the whole string
+ * @param int $min minimum number of chars to have left for middle shortening
+ * @param string $char the shortening character to use
+ */
+function shorten($keep,$short,$max,$min=9,$char='⌇'){
+ $max = $max - utf8_strlen($keep);
+ if($max < $min) return $keep;
+ $len = utf8_strlen($short);
+ if($len <= $max) return $keep.$short;
+ $half = floor($max/2);
+ return $keep.utf8_substr($short,0,$half-1).$char.utf8_substr($short,$len-$half);
+}
+
//Setup VIM: ex: et ts=2 enc=utf-8 :