+++ /dev/null
-<?php\r
-/**\r
- * Smarty plugin\r
- * @package Smarty\r
- * @subpackage plugins\r
- */\r
-\r
-/**\r
- * Smarty {cycle} function plugin\r
- *\r
- * Type: function<br>\r
- * Name: cycle<br>\r
- * Date: May 3, 2002<br>\r
- * Purpose: cycle through given values<br>\r
- * Input:\r
- * - name = name of cycle (optional)\r
- * - values = comma separated list of values to cycle,\r
- * or an array of values to cycle\r
- * (this can be left out for subsequent calls)\r
- * - reset = boolean - resets given var to true\r
- * - print = boolean - print var or not. default is true\r
- * - advance = boolean - whether or not to advance the cycle\r
- * - delimiter = the value delimiter, default is ","\r
- * - assign = boolean, assigns to template var instead of\r
- * printed.\r
- * \r
- * Examples:<br>\r
- * <pre>\r
- * {cycle values="#eeeeee,#d0d0d0d"}\r
- * {cycle name=row values="one,two,three" reset=true}\r
- * {cycle name=row}\r
- * </pre>\r
- * @link http://smarty.php.net/manual/en/language.function.cycle.php {cycle}\r
- * (Smarty online manual)\r
- * @author Monte Ohrt <monte@ispi.net>\r
- * @author credit to Mark Priatel <mpriatel@rogers.com>\r
- * @author credit to Gerard <gerard@interfold.com>\r
- * @author credit to Jason Sweat <jsweat_php@yahoo.com>\r
- * @version 1.3\r
- * @param array\r
- * @param Smarty\r
- * @return string|null\r
- */\r
-function smarty_function_cycle($params, &$smarty)\r
-{\r
- static $cycle_vars;\r
- \r
- extract($params);\r
-\r
- if (empty($name)) {\r
- $name = 'default';\r
- }\r
-\r
- if (!isset($print)) {\r
- $print = true;\r
- }\r
-\r
- if (!isset($advance)) {\r
- $advance = true; \r
- } \r
-\r
- if (!isset($reset)) {\r
- $reset = false; \r
- } \r
- \r
- if (!in_array('values', array_keys($params))) {\r
- if(!isset($cycle_vars[$name]['values'])) {\r
- $smarty->trigger_error("cycle: missing 'values' parameter");\r
- return;\r
- }\r
- } else {\r
- if(isset($cycle_vars[$name]['values'])\r
- && $cycle_vars[$name]['values'] != $values ) {\r
- $cycle_vars[$name]['index'] = 0;\r
- }\r
- $cycle_vars[$name]['values'] = $values;\r
- }\r
-\r
- if (isset($delimiter)) {\r
- $cycle_vars[$name]['delimiter'] = $delimiter;\r
- } elseif (!isset($cycle_vars[$name]['delimiter'])) {\r
- $cycle_vars[$name]['delimiter'] = ','; \r
- }\r
- \r
- if(!is_array($cycle_vars[$name]['values'])) {\r
- $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']);\r
- } else {\r
- $cycle_array = $cycle_vars[$name]['values']; \r
- }\r
- \r
- if(!isset($cycle_vars[$name]['index']) || $reset ) {\r
- $cycle_vars[$name]['index'] = 0;\r
- }\r
- \r
- if (isset($assign)) {\r
- $print = false;\r
- $smarty->assign($assign, $cycle_array[$cycle_vars[$name]['index']]);\r
- }\r
- \r
- if($print) {\r
- $retval = $cycle_array[$cycle_vars[$name]['index']];\r
- } else {\r
- $retval = null;\r
- }\r
-\r
- if($advance) {\r
- if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) {\r
- $cycle_vars[$name]['index'] = 0; \r
- } else {\r
- $cycle_vars[$name]['index']++;\r
- }\r
- }\r
- \r
- return $retval;\r
-}\r
-\r
-/* vim: set expandtab: */\r
-\r
-?>\r