[ bluesman @ 11.08.2004. 11:58 ] @
Ako ima zainteresovanih...

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);
}
?>


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.
[ NetworkAdmin @ 12.08.2004. 00:26 ] @
Evo moj modifaer za automatsko linkovanje:
Code:

<?php

/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Type:     modifier
 * Name:     makelinks
 * Purpose:  Authomaticaly add links to strings that starts with 
 *           " www." or contains "://" and "@" if the string   
 *           contains email address
 *
 * Install:  Just drop into the plugin directory.
 *
 * Autor:    Zoran Knezhevich ([email protected])
 *
 * Suggestions for further developemant:
 *           Add a new parameter and limit the length of the text
 *           bitween <a> and </a> because sometimes long urls
 *           strech the table
 * -------------------------------------------------------------
 */
function smarty_modifier_makelinks($string, $target="_blank")
{
# part for ftp:// http:// and similar *:// links
    $ret = eregi_replace( "([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", "<a href=\"\\1://\\2\\3\" target=\"$target\">\\1://\\2\\3</a>", $string);
# part for strings that start fith " www." I know it is dirty but do the job
    $ret = eregi_replace("^www."," www.",$ret);
    $ret = eregi_replace( "([[:space:]]|\a+)www.([^[:space:]]*)([[:alnum:]#?/&=])", "\\1<a href=\"http://www.\\2\\3\" target=\"$target\">www.\\2\\3</a>", $ret);
#part for email linking
    $ret = eregi_replace( "(([a-z0-9_]|\\-|\\.)[email protected]([^[:space:]]*)([[:alnum:]-]))", "<a href=\"mailto:\\1\" target=\"_new\">\\1</a>", $ret);
    return($ret);
}

?>
[ NetworkAdmin @ 20.09.2004. 11:12 ] @
Code:
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File:     modifier.number_format.php
* Type:     modifier
* Name:     number_format
* Purpose:  Format a number with grouped thousands
* -------------------------------------------------------------
*/
function smarty_modifier_number_format($string, $a = 0, $b = '',$c = ',')
{
    return number_format($string,$a,$b,$c);
}
?>