* Name: html_table
* Date: Feb 17, 2003
* 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}
 * 
* @author Monte Ohrt * @version 1.0 * @link http://smarty.php.net/manual/en/language.function.html.table.php {html_table} * (Smarty online manual) * @param array * @param Smarty * @return string */ function smarty_function_html_table($params, &$smarty) { $table_attr = 'border="1"'; $tr_attr = ''; $td_attr = ''; $cols = 3; $trailpad = ' '; extract($params); if (!isset($loop)) { $smarty->trigger_error("html_table: missing 'loop' parameter"); 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 smarty_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]]; } /* vim: set expandtab: */ ?>