Evo jednog na brzaka, mali, jednostavan ali koristan. Kada dozvoljavate korisnicima da upisuju sve i svasta kod vas na sajt, sigurno se desilo da neko upise "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Pa posto to jako ruzno izgleda, mozete uz pomoc ovog plugina sve reci duze od odredjene duzine da pretvorite u AAAAAAAAAAAAAAA... pa onda browser nece da se izgubi kada prikazuje taj red.
Code:
<?php
/**
* Type: modifier
* Name: gpb_prevent_flood
* Purpose: prevent flooding for long words like "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
* to extend display outsite an area
* @param string
* @param string
* @return string
*/
function smarty_modifier_gpb_prevent_flood($string, $len = '30')
{
if (empty($string))
return trim($string);
// split text by ' ',\r,\n,\f,\t
$split_array = preg_split('/\s+/',$string);
if ($len < 10)
$len = 10; // glupo je da se skracuju reci manje od 10 karaktera
$ret = array();
foreach ($split_array as $str)
{
if (strlen($str) > $len)
$ret[] = substr ($str, 0,$len)."...";
else
$ret[] = $str;
}
return implode(" ", $ret);
}
?>
<?php
/**
* Type: modifier
* Name: gpb_prevent_flood
* Purpose: prevent flooding for long words like "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
* to extend display outsite an area
* @param string
* @param string
* @return string
*/
function smarty_modifier_gpb_prevent_flood($string, $len = '30')
{
if (empty($string))
return trim($string);
// split text by ' ',\r,\n,\f,\t
$split_array = preg_split('/\s+/',$string);
if ($len < 10)
$len = 10; // glupo je da se skracuju reci manje od 10 karaktera
$ret = array();
foreach ($split_array as $str)
{
if (strlen($str) > $len)
$ret[] = substr ($str, 0,$len)."...";
else
$ret[] = $str;
}
return implode(" ", $ret);
}
?>
Napomena, za sve pluginove koje ja napisem mislim da je dobra ideja da se cuvaju u posebnom folderu u odnosu na smarty/plugins, i ja im jos dam neko ime, kao sto je ovde gpb_...
@usage:
Ovo je izlaz {$tekst|gpb_gpb_prevent_flood:20}
Ovo bi recimo preseklo sve reci duze od 20 karaktera i dodalo ... na kraju.
Goran Pilipović fka bluesman