From b9a09a251a62f4eacc4afc73d7f179c5f522be6e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jun 2009 12:44:33 +0000 Subject: [PATCH] Try to remove html tags only if required by truncation. Avoid if not required. --- htdocs/lib/functions.lib.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index b9a8690e6d5..5d3b4b26c68 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -863,32 +863,34 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='') global $conf; if ($size==0) return $string; - if (dol_textishtml($string)) $string = dol_string_nohtmltag($string,1); - if (! defined('USE_SHORT_TITLE') || (defined('USE_SHORT_TITLE') && USE_SHORT_TITLE)) + if (! defined('USE_SHORT_TITLE') || USE_SHORT_TITLE) { // We go always here if ($trunc == 'right') { - if (dol_strlen($string,$stringencoding) > $size) - return dol_substr($string,0,$size,$stringencoding).'...'; + $newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string; + if (dol_strlen($newstring,$stringencoding) > $size) + return dol_substr($newstring,0,$size,$stringencoding).'...'; else return $string; } if ($trunc == 'middle') { - if (dol_strlen($string,$stringencoding) > 2 && dol_strlen($string,$stringencoding) > $size) + $newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string; + if (dol_strlen($newstring,$stringencoding) > 2 && dol_strlen($newstring,$stringencoding) > $size) { $size1=round($size/2); $size2=round($size/2); - return dol_substr($string,0,$size1,$stringencoding).'...'.dol_substr($string,dol_strlen($string,$stringencoding) - $size2,$size2,$stringencoding); + return dol_substr($newstring,0,$size1,$stringencoding).'...'.dol_substr($newstring,dol_strlen($newstring,$stringencoding) - $size2,$size2,$stringencoding); } else return $string; } if ($trunc == 'left') { - if (dol_strlen($string,$stringencoding) > $size) - return '...'.dol_substr($string,dol_strlen($string,$stringencoding) - $size,$size,$stringencoding); + $newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string; + if (dol_strlen($newstring,$stringencoding) > $size) + return '...'.dol_substr($newstring,dol_strlen($newstring,$stringencoding) - $size,$size,$stringencoding); else return $string; }