www.gusucode.com > 74cms PHP骑士人才系统 v3.5.1源码程序 > code/upload/include/template_lite/plugins/function.html_table.php
<?php /* * Template Lite plugin * ------------------------------------------------------------- * Type: function * Name: html_table * Version: 1.0 * Date: Feb 17, 2003 * Author: Monte Ohrt <monte@ispi.net> * 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)) { $template_object->trigger_error("html_table: missing 'loop' parameter"); return; } $output = "<table $table_attr>\n"; $output .= "<tr " . tpl_function_html_table_cycle('tr', $tr_attr) . ">\n"; for($x = 0, $y = count($loop); $x < $y; $x++) { $output .= "<td " . tpl_function_html_table_cycle('td', $td_attr) . ">" . $loop[$x] . "</td>\n"; if((!(($x+1) % $cols)) && $x < $y-1) { // go to next row $output .= "</tr>\n<tr " . tpl_function_html_table_cycle('tr', $tr_attr) . ">\n"; } if($x == $y-1) { // last row, pad remaining cells $cells = $cols - $y % $cols; if($cells != $cols) { for($padloop = 0; $padloop < $cells; $padloop++) { $output .= "<td " . tpl_function_html_table_cycle('td', $td_attr) . ">$trailpad</td>\n"; } } $output .= "</tr>\n"; } } $output .= "</table>\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]]; } ?>