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