alecpl
2010-09-25 0911facde954d60ca3124e03b85b3b9b47c3c6b0
program/include/rcube_shared.inc
@@ -4,8 +4,8 @@
 +-----------------------------------------------------------------------+
 | rcube_shared.inc                                                      |
 |                                                                       |
 | This file is part of the RoundCube PHP suite                          |
 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 |
 | This file is part of the Roundcube PHP suite                          |
 | Copyright (C) 2005-2007, Roundcube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | CONTENTS:                                                             |
@@ -21,7 +21,7 @@
/**
 * RoundCube shared functions
 * Roundcube shared functions
 * 
 * @package Core
 */
@@ -407,20 +407,24 @@
/**
 * Replace the middle part of a string with ...
 * if it is longer than the allowed length
 * Truncate string if it is longer than the allowed length
 * Replace the middle or the ending part of a string with a placeholder
 *
 * @param string Input string
 * @param int    Max. length
 * @param string Replace removed chars with this
 * @param bool   Set to True if string should be truncated from the end
 * @return string Abbreviated string
 */
function abbreviate_string($str, $maxlength, $place_holder='...')
function abbreviate_string($str, $maxlength, $place_holder='...', $ending=false)
{
  $length = mb_strlen($str);
  
  if ($length > $maxlength)
  {
    if ($ending)
      return mb_substr($str, 0, $maxlength) . $place_holder;
    $place_holder_length = mb_strlen($place_holder);
    $first_part_length = floor(($maxlength - $place_holder_length)/2);
    $second_starting_location = $length - $maxlength + $first_part_length + $place_holder_length;
@@ -632,8 +636,8 @@
  if (!empty($array))
    foreach ($array as $key => $child) {
      $keys[] = $key;
      if ($children = array_keys_recursive($child))
        $keys = array_merge($keys, $children);
      foreach (array_keys_recursive($child) as $val)
        $keys[] = $val;
    }
  return $keys;
}