5 * @subpackage plugins
\r
10 * Smarty {counter} function plugin
\r
12 * Type: function<br>
\r
14 * Purpose: print out a counter value
\r
15 * @link http://smarty.php.net/manual/en/language.function.counter.php {counter}
\r
16 * (Smarty online manual)
\r
17 * @param array parameters
\r
19 * @return string|null
\r
21 function smarty_function_counter($params, &$smarty)
\r
23 static $counters = array();
\r
27 if (!isset($name)) {
\r
35 if (!isset($counters[$name])) {
\r
36 $counters[$name] = array(
\r
43 $counter =& $counters[$name];
\r
45 if (isset($start)) {
\r
46 $counter['start'] = $counter['count'] = $start;
\r
49 if (!empty($assign)) {
\r
50 $counter['assign'] = $assign;
\r
53 if (isset($counter['assign'])) {
\r
54 $smarty->assign($counter['assign'], $counter['count']);
\r
57 if (isset($print)) {
\r
58 $print = (bool)$print;
\r
60 $print = empty($counter['assign']);
\r
64 $retval = $counter['count'];
\r
70 $counter['skip'] = $skip;
\r
73 if (isset($direction)) {
\r
74 $counter['direction'] = $direction;
\r
77 if ($counter['direction'] == "down")
\r
78 $counter['count'] -= $counter['skip'];
\r
80 $counter['count'] += $counter['skip'];
\r
86 /* vim: set expandtab: */
\r