forked from extern/egroupware
handle text/plain in preview
This commit is contained in:
parent
ccc75e2bc7
commit
99797c3639
@ -3504,6 +3504,53 @@ class mail_bo
|
|||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function wordwrap($str, $cols, $cut, $dontbreaklinesstartingwith=false)
|
||||||
|
{
|
||||||
|
$lines = explode("\n", $str);
|
||||||
|
$newStr = '';
|
||||||
|
foreach($lines as $line)
|
||||||
|
{
|
||||||
|
// replace tabs by 8 space chars, or any tab only counts one char
|
||||||
|
//$line = str_replace("\t"," ",$line);
|
||||||
|
//$newStr .= wordwrap($line, $cols, $cut);
|
||||||
|
$allowedLength = $cols-strlen($cut);
|
||||||
|
if (strlen($line) > $allowedLength &&
|
||||||
|
($dontbreaklinesstartingwith==false ||
|
||||||
|
($dontbreaklinesstartingwith &&
|
||||||
|
strlen($dontbreaklinesstartingwith)>=1 &&
|
||||||
|
substr($line,0,strlen($dontbreaklinesstartingwith)) != $dontbreaklinesstartingwith
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
$s=explode(" ", $line);
|
||||||
|
$line = "";
|
||||||
|
$linecnt = 0;
|
||||||
|
foreach ($s as $k=>$v) {
|
||||||
|
$cnt = strlen($v);
|
||||||
|
// only break long words within the wordboundaries,
|
||||||
|
// but it may destroy links, so we check for href and dont do it if we find one
|
||||||
|
// we check for any html within the word, because we do not want to break html by accident
|
||||||
|
if($cnt > $allowedLength && stripos($v,'href=')===false && stripos($v,'onclick=')===false && $cnt == strlen(html_entity_decode($v)))
|
||||||
|
{
|
||||||
|
$v=wordwrap($v, $allowedLength, $cut, true);
|
||||||
|
}
|
||||||
|
// the rest should be broken at the start of the new word that exceeds the limit
|
||||||
|
if ($linecnt+$cnt > $allowedLength) {
|
||||||
|
$v=$cut.$v;
|
||||||
|
#$linecnt = 0;
|
||||||
|
$linecnt =strlen($v)-strlen($cut);
|
||||||
|
} else {
|
||||||
|
$linecnt += $cnt;
|
||||||
|
}
|
||||||
|
if (strlen($v)) $line .= (strlen($line) ? " " : "").$v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$newStr .= $line . "\n";
|
||||||
|
}
|
||||||
|
return $newStr;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getMessageRawHeader
|
* getMessageRawHeader
|
||||||
* get parsed headers from message
|
* get parsed headers from message
|
||||||
|
@ -1688,7 +1688,7 @@ blockquote[type=cite] {
|
|||||||
$singleBodyPart['body'] = utf8_encode($singleBodyPart['body']);
|
$singleBodyPart['body'] = utf8_encode($singleBodyPart['body']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//error_log($singleBodyPart['body']);
|
//error_log(__METHOD__.__LINE__.array2string($singleBodyPart));
|
||||||
#$CharSetUsed = mb_detect_encoding($singleBodyPart['body'] . 'a' , strtoupper($singleBodyPart['charSet']).','.strtoupper(mail_bo::$displayCharset).',UTF-8, ISO-8859-1');
|
#$CharSetUsed = mb_detect_encoding($singleBodyPart['body'] . 'a' , strtoupper($singleBodyPart['charSet']).','.strtoupper(mail_bo::$displayCharset).',UTF-8, ISO-8859-1');
|
||||||
|
|
||||||
if($singleBodyPart['mimeType'] == 'text/plain')
|
if($singleBodyPart['mimeType'] == 'text/plain')
|
||||||
@ -1727,7 +1727,7 @@ blockquote[type=cite] {
|
|||||||
// since we do not display the message as HTML anymore we may want to insert good linebreaking (for visibility).
|
// since we do not display the message as HTML anymore we may want to insert good linebreaking (for visibility).
|
||||||
//error_log($newBody);
|
//error_log($newBody);
|
||||||
// dont break lines that start with > (> as the text was processed with htmlentities before)
|
// dont break lines that start with > (> as the text was processed with htmlentities before)
|
||||||
//TODO:$newBody = "<pre>".felamimail_bo::wordwrap($newBody,90,"\n",'>')."</pre>";
|
$newBody = "<pre>".mail_bo::wordwrap($newBody,90,"\n",'>')."</pre>";
|
||||||
//$newBody = "<pre>".$newBody."</pre>";
|
//$newBody = "<pre>".$newBody."</pre>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2118,7 +2118,7 @@ blockquote[type=cite] {
|
|||||||
*
|
*
|
||||||
* @return xajax response
|
* @return xajax response
|
||||||
*/
|
*/
|
||||||
function loadEmailBody($_messageID)
|
function loadEmailBody($_messageID=null)
|
||||||
{
|
{
|
||||||
if (!$_messageID) $_messageID = $_GET['_messageID'];
|
if (!$_messageID) $_messageID = $_GET['_messageID'];
|
||||||
if(mail_bo::$debug); error_log(__METHOD__."->".$_flag.':'.print_r($_messageID,true));
|
if(mail_bo::$debug); error_log(__METHOD__."->".$_flag.':'.print_r($_messageID,true));
|
||||||
|
Loading…
Reference in New Issue
Block a user