Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F392173
modifier.truncate.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
modifier.truncate.php
View Options
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsModifier
*/
/**
* Smarty truncate modifier plugin
*
* Type: modifier<br>
* Name: truncate<br>
* Purpose: Truncate a string to a certain length if necessary,
* optionally splitting in the middle of a word, and
* appending the $etc string or inserting $etc into the middle.
*
* @link http://smarty.php.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @param string $string input string
* @param integer $length length of truncated text
* @param string $etc end string
* @param boolean $break_words truncate at word boundary
* @param boolean $middle truncate in the middle of text
* @return string truncated string
*/
function
smarty_modifier_truncate
(
$string
,
$length
=
80
,
$etc
=
'...'
,
$break_words
=
false
,
$middle
=
false
)
{
if
(
$length
==
0
)
return
''
;
if
(
Smarty
::
$_MBSTRING
)
{
if
(
mb_strlen
(
$string
,
Smarty
::
$_CHARSET
)
>
$length
)
{
$length
-=
min
(
$length
,
mb_strlen
(
$etc
,
Smarty
::
$_CHARSET
));
if
(!
$break_words
&&
!
$middle
)
{
$string
=
preg_replace
(
'/
\s
+?(
\S
+)?$/'
.
Smarty
::
$_UTF8_MODIFIER
,
''
,
mb_substr
(
$string
,
0
,
$length
+
1
,
Smarty
::
$_CHARSET
));
}
if
(!
$middle
)
{
return
mb_substr
(
$string
,
0
,
$length
,
Smarty
::
$_CHARSET
)
.
$etc
;
}
return
mb_substr
(
$string
,
0
,
$length
/
2
,
Smarty
::
$_CHARSET
)
.
$etc
.
mb_substr
(
$string
,
-
$length
/
2
,
$length
,
Smarty
::
$_CHARSET
);
}
return
$string
;
}
// no MBString fallback
if
(
isset
(
$string
[
$length
]))
{
$length
-=
min
(
$length
,
strlen
(
$etc
));
if
(!
$break_words
&&
!
$middle
)
{
$string
=
preg_replace
(
'/
\s
+?(
\S
+)?$/'
,
''
,
substr
(
$string
,
0
,
$length
+
1
));
}
if
(!
$middle
)
{
return
substr
(
$string
,
0
,
$length
)
.
$etc
;
}
return
substr
(
$string
,
0
,
$length
/
2
)
.
$etc
.
substr
(
$string
,
-
$length
/
2
);
}
return
$string
;
}
?>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Feb 22, 20:27 (2 d, 3 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
21972
Default Alt Text
modifier.truncate.php (2 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment