00001 <?php 00044 function smarty_function_cycle($params, &$smarty) 00045 { 00046 static $cycle_vars; 00047 00048 $name = (empty($params['name'])) ? 'default' : $params['name']; 00049 $print = (isset($params['print'])) ? (bool)$params['print'] : true; 00050 $advance = (isset($params['advance'])) ? (bool)$params['advance'] : true; 00051 $reset = (isset($params['reset'])) ? (bool)$params['reset'] : false; 00052 00053 if (!in_array('values', array_keys($params))) { 00054 if(!isset($cycle_vars[$name]['values'])) { 00055 $smarty->trigger_error("cycle: missing 'values' parameter"); 00056 return; 00057 } 00058 } else { 00059 if(isset($cycle_vars[$name]['values']) 00060 && $cycle_vars[$name]['values'] != $params['values'] ) { 00061 $cycle_vars[$name]['index'] = 0; 00062 } 00063 $cycle_vars[$name]['values'] = $params['values']; 00064 } 00065 00066 $cycle_vars[$name]['delimiter'] = (isset($params['delimiter'])) ? $params['delimiter'] : ','; 00067 00068 if(is_array($cycle_vars[$name]['values'])) { 00069 $cycle_array = $cycle_vars[$name]['values']; 00070 } else { 00071 $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']); 00072 } 00073 00074 if(!isset($cycle_vars[$name]['index']) || $reset ) { 00075 $cycle_vars[$name]['index'] = 0; 00076 } 00077 00078 if (isset($params['assign'])) { 00079 $print = false; 00080 $smarty->assign($params['assign'], $cycle_array[$cycle_vars[$name]['index']]); 00081 } 00082 00083 if($print) { 00084 $retval = $cycle_array[$cycle_vars[$name]['index']]; 00085 } else { 00086 $retval = null; 00087 } 00088 00089 if($advance) { 00090 if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) { 00091 $cycle_vars[$name]['index'] = 0; 00092 } else { 00093 $cycle_vars[$name]['index']++; 00094 } 00095 } 00096 00097 return $retval; 00098 } 00099 00100 /* vim: set expandtab: */ 00101 00102 ?>
| Copyright © 2003 - 2009 MyOOS [Shopsystem]. All rights reserved. MyOOS [Shopsystem] is Free Software released under the GNU/GPL License. Webmaster: info@r23.de (Impressum) |
|
