summaryrefslogtreecommitdiff
path: root/roundcubemail
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-09-25 13:47:51 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-09-25 13:47:51 +0000
commitf040936b07cf9a93d594c4d1ee94de7d81589216 (patch)
tree103f6fb44d5967169aa5341a7eb6784ddf937e5d /roundcubemail
parent4095c1544a3ba233d11f87231db1f0a080cac489 (diff)
- Truncate message subject when setting page title
git-svn-id: https://svn.roundcube.net/trunk@3991 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail')
-rw-r--r--roundcubemail/program/include/rcube_shared.inc10
-rw-r--r--roundcubemail/program/steps/mail/show.inc2
2 files changed, 8 insertions, 4 deletions
diff --git a/roundcubemail/program/include/rcube_shared.inc b/roundcubemail/program/include/rcube_shared.inc
index 845230d6c..429969eb7 100644
--- a/roundcubemail/program/include/rcube_shared.inc
+++ b/roundcubemail/program/include/rcube_shared.inc
@@ -407,20 +407,24 @@ function get_offset_time($offset_str, $factor=1)
/**
- * 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;
diff --git a/roundcubemail/program/steps/mail/show.inc b/roundcubemail/program/steps/mail/show.inc
index 3d42de61a..382733f5e 100644
--- a/roundcubemail/program/steps/mail/show.inc
+++ b/roundcubemail/program/steps/mail/show.inc
@@ -41,7 +41,7 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) {
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);