* Purpose: make an html table from an array of data * Input: loop = array to loop through * cols = number of columns * table_attr = table attributes * tr_attr = table row attributes (arrays are cycled) * td_attr = table cell attributes (arrays are cycled) * trailpad = value to pad trailing cells with * * Examples: {table loop=$data} * {$table loop=$data cols=4 tr_attr='"bgcolor=red"'} * {$table loop=$data cols=4 tr_attr=$colors} * Taken from the original Smarty * http://smarty.php.net * ------------------------------------------------------------- */ function tpl_function_html_table($params, &$template_object) { $table_attr = 'border="1"'; $tr_attr = ''; $td_attr = ''; $cols = 3; $trailpad = ' '; extract($params); if (!isset($loop)) { throw new Template_Exception("html_table: missing 'loop' parameter", $template_object); return; } $output = "\n"; $output .= "\n"; for($x = 0, $y = count($loop); $x < $y; $x++) { $output .= "\n"; if((!(($x+1) % $cols)) && $x < $y-1) { // go to next row $output .= "\n\n"; } if($x == $y-1) { // last row, pad remaining cells $cells = $cols - $y % $cols; if($cells != $cols) { for($padloop = 0; $padloop < $cells; $padloop++) { $output .= "\n"; } } $output .= "\n"; } } $output .= "
" . $loop[$x] . "
$trailpad
\n"; return $output; } function tpl_function_html_table_cycle($name, $var) { static $names = array(); if(!is_array($var)) { return $var; } if(!isset($names[$name]) || $names[$name] == count($var)-1) { $names[$name] = 0; return $var[0]; } $names[$name]++; return $var[$names[$name]]; } ?>