| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | <?php/** * Smarty plugin * @package Smarty * @subpackage plugins *//** * Smarty {counter} function plugin * * Type:     function<br> * Name:     counter<br> * Purpose:  print out a counter value * @author Monte Ohrt <monte at ohrt dot com> * @link http://smarty.php.net/manual/en/language.function.counter.php {counter} *       (Smarty online manual) * @param array parameters * @param Smarty * @return string|null */function smarty_function_counter($params, &$smarty){    static $counters = array();    $name = (isset($params['name'])) ? $params['name'] : 'default';    if (!isset($counters[$name])) {        $counters[$name] = array(            'start'=>1,            'skip'=>1,            'direction'=>'up',            'count'=>1            );    }    $counter =& $counters[$name];    if (isset($params['start'])) {        $counter['start'] = $counter['count'] = (int)$params['start'];    }    if (!empty($params['assign'])) {        $counter['assign'] = $params['assign'];    }    if (isset($counter['assign'])) {        $smarty->assign($counter['assign'], $counter['count']);    }        if (isset($params['print'])) {        $print = (bool)$params['print'];    } else {        $print = empty($counter['assign']);    }    if ($print) {        $retval = $counter['count'];    } else {        $retval = null;    }    if (isset($params['skip'])) {        $counter['skip'] = $params['skip'];    }        if (isset($params['direction'])) {        $counter['direction'] = $params['direction'];    }    if ($counter['direction'] == "down")        $counter['count'] -= $counter['skip'];    else        $counter['count'] += $counter['skip'];        return $retval;    }/* vim: set expandtab: */?>
 |