diff --git a/libs/plugins/function.html_table.php b/libs/plugins/function.html_table.php new file mode 100644 index 00000000..b24da486 --- /dev/null +++ b/libs/plugins/function.html_table.php @@ -0,0 +1,85 @@ + + * 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) + * cellpad = 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} + * ------------------------------------------------------------- + */ +function smarty_function_html_table($params, &$smarty) +{ + $table_attr = 'border=1'; + $tr_attr = ''; + $td_attr = ''; + $cols = 3; + $cellpad = ' '; + + extract($params); + + if (!isset($loop)) { + $smarty->trigger_error("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] . "
$cellpad
\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: */ + +?> diff --git a/plugins/function.html_table.php b/plugins/function.html_table.php new file mode 100644 index 00000000..b24da486 --- /dev/null +++ b/plugins/function.html_table.php @@ -0,0 +1,85 @@ + + * 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) + * cellpad = 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} + * ------------------------------------------------------------- + */ +function smarty_function_html_table($params, &$smarty) +{ + $table_attr = 'border=1'; + $tr_attr = ''; + $td_attr = ''; + $cols = 3; + $cellpad = ' '; + + extract($params); + + if (!isset($loop)) { + $smarty->trigger_error("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] . "
$cellpad
\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: */ + +?>