alecpl
2010-09-25 0911facde954d60ca3124e03b85b3b9b47c3c6b0
- Truncate message subject when setting page title


2 files modified
12 ■■■■■ changed files
program/include/rcube_shared.inc 10 ●●●● patch | view | raw | blame | history
program/steps/mail/show.inc 2 ●●● patch | view | raw | blame | history
program/include/rcube_shared.inc
@@ -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;
program/steps/mail/show.inc
@@ -41,7 +41,7 @@
  if (!empty($MESSAGE->headers->charset))
    $IMAP->set_charset($MESSAGE->headers->charset);
  $OUTPUT->set_pagetitle($MESSAGE->subject);
  $OUTPUT->set_pagetitle(abbreviate_string($MESSAGE->subject, 128, '...', true));
  // give message uid to the client
  $OUTPUT->set_env('uid', $MESSAGE->uid);