mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-12 04:21:30 +01:00
A more clever truncate function.
This commit is contained in:
@@ -943,7 +943,8 @@ function dolibarr_trunc($string,$size=40,$trunc='right',$stringencoding='')
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Truncate a string to a particular length adding '...' if string larger than length
|
* \brief Truncate a string to a particular length adding '...' if string larger than length.
|
||||||
|
* If length = max length+1, we do no truncate to avoid having just 1 char replaced with '...'.
|
||||||
* \param string String to truncate
|
* \param string String to truncate
|
||||||
* \param size Max string size. 0 for no limit.
|
* \param size Max string size. 0 for no limit.
|
||||||
* \param trunc Where to trunc: right, left, middle
|
* \param trunc Where to trunc: right, left, middle
|
||||||
@@ -962,7 +963,7 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='')
|
|||||||
if ($trunc == 'right')
|
if ($trunc == 'right')
|
||||||
{
|
{
|
||||||
$newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string;
|
$newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string;
|
||||||
if (dol_strlen($newstring,$stringencoding) > $size)
|
if (dol_strlen($newstring,$stringencoding) > ($size+1))
|
||||||
return dol_substr($newstring,0,$size,$stringencoding).'...';
|
return dol_substr($newstring,0,$size,$stringencoding).'...';
|
||||||
else
|
else
|
||||||
return $string;
|
return $string;
|
||||||
@@ -970,7 +971,7 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='')
|
|||||||
if ($trunc == 'middle')
|
if ($trunc == 'middle')
|
||||||
{
|
{
|
||||||
$newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string;
|
$newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string;
|
||||||
if (dol_strlen($newstring,$stringencoding) > 2 && dol_strlen($newstring,$stringencoding) > $size)
|
if (dol_strlen($newstring,$stringencoding) > 2 && dol_strlen($newstring,$stringencoding) > ($size+1))
|
||||||
{
|
{
|
||||||
$size1=round($size/2);
|
$size1=round($size/2);
|
||||||
$size2=round($size/2);
|
$size2=round($size/2);
|
||||||
@@ -982,7 +983,7 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='')
|
|||||||
if ($trunc == 'left')
|
if ($trunc == 'left')
|
||||||
{
|
{
|
||||||
$newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string;
|
$newstring=dol_textishtml($string)?dol_string_nohtmltag($string,1):$string;
|
||||||
if (dol_strlen($newstring,$stringencoding) > $size)
|
if (dol_strlen($newstring,$stringencoding) > ($size+1))
|
||||||
return '...'.dol_substr($newstring,dol_strlen($newstring,$stringencoding) - $size,$size,$stringencoding);
|
return '...'.dol_substr($newstring,dol_strlen($newstring,$stringencoding) - $size,$size,$stringencoding);
|
||||||
else
|
else
|
||||||
return $string;
|
return $string;
|
||||||
|
|||||||
Reference in New Issue
Block a user