Hierarchy fixup
[mirrors/Kyberia-bloodline.git] / wwwroot / inc / smarty / node_methodz / function.counter.php
diff --git a/wwwroot/inc/smarty/node_methodz/function.counter.php b/wwwroot/inc/smarty/node_methodz/function.counter.php
new file mode 100644 (file)
index 0000000..80f5721
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {counter} function plugin
+ *
+ * Type:     function<br>
+ * Name:     counter<br>
+ * Purpose:  print out a counter value
+ * @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();
+
+    extract($params);
+
+    if (!isset($name)) {
+               if(isset($id)) {
+                       $name = $id;
+               } else {
+               $name = "default";
+               }
+       }
+
+    if (!isset($counters[$name])) {
+        $counters[$name] = array(
+            'start'=>1,
+            'skip'=>1,
+            'direction'=>'up',
+            'count'=>1
+            );
+    }
+    $counter =& $counters[$name];
+
+    if (isset($start)) {
+        $counter['start'] = $counter['count'] = $start;
+    }
+
+    if (!empty($assign)) {
+        $counter['assign'] = $assign;
+    }
+
+    if (isset($counter['assign'])) {
+        $smarty->assign($counter['assign'], $counter['count']);
+    }
+
+    if (isset($print)) {
+        $print = (bool)$print;
+    } else {
+        $print = empty($counter['assign']);
+    }
+
+    if ($print) {
+        $retval = $counter['count'];
+       } else {
+               $retval = null;
+       }
+
+    if (isset($skip)) {
+        $counter['skip'] = $skip;
+    }
+
+    if (isset($direction)) {
+        $counter['direction'] = $direction;
+    }
+
+    if ($counter['direction'] == "down")
+        $counter['count'] -= $counter['skip'];
+    else
+        $counter['count'] += $counter['skip'];
+
+       return $retval;
+
+}
+
+/* vim: set expandtab: */
+
+?>
This page took 0.12502 seconds and 4 git commands to generate.