From d05fb1fc4ccb23743a5049be6283600518e46cbb Mon Sep 17 00:00:00 2001 From: mohrt Date: Mon, 3 Jun 2002 16:53:26 +0000 Subject: [PATCH] fixed cycle function to respect delimiter setting after initial setting --- NEWS | 2 ++ libs/plugins/function.cycle.php | 16 +++++++++------- plugins/function.cycle.php | 16 +++++++++------- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/NEWS b/NEWS index 6498a0b5..7ee1cb68 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ + - fixed cycle function to respect delimiter setting + after initial setting (Monte) - update $GLOBALS references to work properly with track_globals settings (Michal Prinke, Monte) - fixed bug in math function with call to assign diff --git a/libs/plugins/function.cycle.php b/libs/plugins/function.cycle.php index e5a1b727..d81fcbfc 100644 --- a/libs/plugins/function.cycle.php +++ b/libs/plugins/function.cycle.php @@ -46,11 +46,7 @@ function smarty_function_cycle($params, &$smarty) if (!isset($advance)) { $advance = true; } - - if (!isset($delimiter)) { - $delimiter = ','; - } - + if (!in_array('values', array_keys($params))) { if(!isset($cycle_vars[$name]['values'])) { $smarty->trigger_error("cycle: missing 'values' parameter"); @@ -64,8 +60,14 @@ function smarty_function_cycle($params, &$smarty) $cycle_vars[$name]['values'] = $values; } + if (isset($delimiter)) { + $cycle_vars[$name]['delimiter'] = $delimiter; + } elseif (!isset($cycle_vars[$name]['delimiter'])) { + $cycle_vars[$name]['delimiter'] = ','; + } + if(!is_array($cycle_vars[$name]['values'])) { - $cycle_array = explode($delimiter,$cycle_vars[$name]['values']); + $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']); } else { $cycle_array = $cycle_vars[$name]['values']; } @@ -73,7 +75,7 @@ function smarty_function_cycle($params, &$smarty) if(!isset($cycle_vars[$name]['index']) || $reset ) { $cycle_vars[$name]['index'] = 0; } - + if (isset($assign)) { $print = false; $smarty->assign($assign, $cycle_array[$cycle_vars[$name]['index']]); diff --git a/plugins/function.cycle.php b/plugins/function.cycle.php index e5a1b727..d81fcbfc 100644 --- a/plugins/function.cycle.php +++ b/plugins/function.cycle.php @@ -46,11 +46,7 @@ function smarty_function_cycle($params, &$smarty) if (!isset($advance)) { $advance = true; } - - if (!isset($delimiter)) { - $delimiter = ','; - } - + if (!in_array('values', array_keys($params))) { if(!isset($cycle_vars[$name]['values'])) { $smarty->trigger_error("cycle: missing 'values' parameter"); @@ -64,8 +60,14 @@ function smarty_function_cycle($params, &$smarty) $cycle_vars[$name]['values'] = $values; } + if (isset($delimiter)) { + $cycle_vars[$name]['delimiter'] = $delimiter; + } elseif (!isset($cycle_vars[$name]['delimiter'])) { + $cycle_vars[$name]['delimiter'] = ','; + } + if(!is_array($cycle_vars[$name]['values'])) { - $cycle_array = explode($delimiter,$cycle_vars[$name]['values']); + $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']); } else { $cycle_array = $cycle_vars[$name]['values']; } @@ -73,7 +75,7 @@ function smarty_function_cycle($params, &$smarty) if(!isset($cycle_vars[$name]['index']) || $reset ) { $cycle_vars[$name]['index'] = 0; } - + if (isset($assign)) { $print = false; $smarty->assign($assign, $cycle_array[$cycle_vars[$name]['index']]);