Get Smarty



Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty


Get the juciest casino bonuses at this great website

If you are looking for great entertainment online, then we would like to recommend Find the best casino bonus available and much more that makes your casino experience much more enjoyable!


{html_table} is a custom function that dumps an array of data into an HTML <table>.

Attribute Name Type Required Default Description
loop array Yes n/a Array of data to loop through
cols mixed No 3 Number of columns in the table or a comma-separated list of column heading names or an array of column heading names.if the cols-attribute is empty, but rows are given, then the number of cols is computed by the number of rows and the number of elements to display to be just enough cols to display all elements. If both, rows and cols, are omitted cols defaults to 3. if given as a list or array, the number of columns is computed from the number of elements in the list or array.
rows integer No empty Number of rows in the table. if the rows-attribute is empty, but cols are given, then the number of rows is computed by the number of cols and the number of elements to display to be just enough rows to display all elements.
inner string No cols Direction of consecutive elements in the loop-array to be rendered. cols means elements are displayed col-by-col. rows means elements are displayed row-by-row.
caption string No empty Text to be used for the <caption> element of the table
table_attr string No border="1" Attributes for <table> tag
th_attr string No empty Attributes for <th> tag (arrays are cycled)
tr_attr string No empty attributes for <tr> tag (arrays are cycled)
td_attr string No empty Attributes for <td> tag (arrays are cycled)
trailpad string No &nbsp; Value to pad the trailing cells on last row with (if any)
hdir string No right Direction of each row to be rendered. possible values: right (left-to-right), and left (right-to-left)
vdir string No down Direction of each column to be rendered. possible values: down (top-to-bottom), up (bottom-to-top)
  • The cols attribute determines how many columns will be in the table.

  • The table_attr, tr_attr and td_attr values determine the attributes given to the <table>, <tr> and <td> tags.

  • If tr_attr or td_attr are arrays, they will be cycled through.

  • trailpad is the value put into the trailing cells on the last table row if there are any present.

Example 8.19. {html_table}

$smarty->assign( 'data', array(1,2,3,4,5,6,7,8,9) );
$smarty->assign( 'tr', array('bgcolor="#eeeeee"','bgcolor="#dddddd"') );


The variables assigned from php could be displayed as these three examples demonstrate. Each example shows the template followed by output.

{**** Example One ****}
{html_table loop=$data}

<table border="1">

{**** Example Two ****}
{html_table loop=$data cols=4 table_attr='border="0"'}

<table border="0">

{**** Example Three ****}
{html_table loop=$data cols="first,second,third,fourth" tr_attr=$tr}

<table border="1">
<tr bgcolor="#eeeeee"><td>1</td><td>2</td><td>3</td><td>4</td></tr>
<tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
<tr bgcolor="#eeeeee"><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>


by anonymous on Mar 30, 2012 at 5:14
better than html_table <pre><?php /** * Smarty plugin * * @package Smarty * @subpackage PluginsFunction */ /** * Smarty {html_dataview} function plugin * * Type: function<br> * Name: html_dataview<br> * Date: Jul 2, 2011<br> * Purpose: make an separated to sheet html dataview from an array of data, include javascript to manipulation<br> * * * Examples: * <pre> * $smarty->assign("data",array(array('1','1a','1b'), * array('2','2a','2b'), * array('3','3a','3b'), * array('4','4a','4b'))); * {dataview loop=$data} * {dataview loop=$data rows=2 } * </pre> * * @author NaH <not dot a dot human at gmail dot com> * @author credit to Monte Ohrt <monte at ohrt dot com> * @version 0.0 * @param array $params parameters * Input:<br> * - loop = array to loop through * - rows = number of rows * - heading = table heading values (arrays are cycled) * @param object $template template object * @return string */ function smarty_function_html_dataview($params, $template) { $rows = 1;//default value to row count $heading=array(); $head=FALSE; if (isset($params['rows'])) { $rows = $params['rows']; } if (!isset($params['loop'])&&count($params['loop'])<2) { trigger_error("html_dataview: missing 'loop' parameter",E_USER_WARNING); return; } if (isset($params['heading'])) { $heading=explode(',',$params['heading']); $head=TRUE; } $myblock= $params['loop']; $output = ""; $output2=""; $result=""; $divcount=1;//<div id==> if the not null if (isset($myblock[0])) { foreach ($myblock as $i1 => $n1) //foreach in te first layer of array { if($i1%$rows==0) //if row count in the table equivalent to the my variable $elementintables { if($i1%$rows==0&&$i1==0) //if the first div element declare { $output .= "<div id=".$divcount.">\n<table border='1'>\n<tr>\n"; $divcount++; if($head==TRUE){ $output .="<tr>\n"; foreach ($n1 as $i2 => $n2) { $output .="<th>"; if(isset ($heading[$i2])){ $output .=$heading[$i2];} else{$output .="&nbsp;";} $output .= "</th>"; } $output .="</tr>\n"; } } else //if the other div element declare { $output .= "</tr>\n</table>\n</div>\n<div id='".$divcount."' style='display: none;'>\n<table border='1'>\n<tr>\n"; $divcount++; if($head==TRUE){ $output .="<tr>\n"; foreach ($n1 as $i2 => $n2) { $output .="<th>"; if(isset ($heading[$i2])){ $output .=$heading[$i2];} else{$output .="&nbsp;";} $output .= "</th>"; } $output .="</tr>\n"; } } } else //if row count in the table NOT equivalent to the my variable $elementintables { $output .="<tr>\n"; } foreach ($n1 as $i2 => $n2) { $output .="<td>"; $output .=$n2;$output .= "</td>"; } if($i1==count($myblock)-1) //if the last row in the last table { $output .="</tr>\n"; $output .="</table>\n"; $output .="</div>"; } else //if row count in the table NOT equivalent to the my variable $elementintables { $output .="</tr>\n"; } } $output2 .="<div style=\"width : 60px; overflow : auto;\"><table border='1' class='sample'><tr>";// table contain the clickabled label for($i=1;$i<$divcount;$i++)//the label count equivalent to the my variable $divcount { $output2 .="<td "; if($i!=1){ $output2 .="style='background-color:#CC9999;'";} $output2 .=" id='lab".$i."'><label onclick='replace(\"$i\")'>&nbsp;&nbsp;$i&nbsp;&nbsp; </label></td>\n"; } $output2 .="<tr></table></div>\n"; $output2 .="\n<hr>"; //decoration :))) $result .=$output2 ; $result .=$output ; $result .="<script type='text/javascript'> function replace(u)// function change the visibility of div elements // sorry for the compatible... {for (var i = 1; i < $divcount; i++) { obj = document.getElementById(i); obj2 = document.getElementById('lab'+i); if(i!=u) {'none';'#CC9999'; } else {'block';'#ffffff'; } }} </script>";} return $result; } ?></pre>