<?php
/**
* gTemplate Plugins
*
* @package gTemplate
* @subpackage Plugins
*/
/**
* gTemplate 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.
*
* @version 1.0
* @author Tamas David (G-Lex) <glex at mittudomain.info>
* @link https://github.com/glex86/g-template-php G-Template Engine on Github
*
* @internal Some source codes are taken from Smarty
* @internal author Monte Ohrt <monte at ohrt dot com>
* @internal link http://smarty.net Smarty
*/
function tpl_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false)
{
if ($length == 0)
return '';
if (strlen($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;
} else {
return substr($string, 0, $length/2) . $etc . substr($string, -$length/2);
}
} else {
return $string;
}
}
|