{html_table} является пользовательской функцией, которая распечатывает массив данных в HTML-тэг table. Атрибут cols указывает, сколько в таблице будет колонок. Атрибуты table_attr, tr_attr и td_attr определяют атрибуты соответствующих элементов таблицы - тэгов table, tr и td. Если параметры tr_attr или td_attr являются массивами, их значения будут использоваться циклически. trailpad - это значение, помещаемое в пустые ячейки последней строки, если такие будут.
Имя атрибута | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
loop | array | Да | n/a | массив данных для обработки |
cols | mixed | Нет | 3 | количество колонок в таблице. Если этот атрибут не указан, но указан атрибут rows, то количество колонок автоматически вычисляется исходя из количества строк и количества элементов для отображения, чтобы как раз уместить все элементы. Если оба параметра (и rows, и cols) опущены, cols принимает значение по умолчанию, равное 3. Если параметр является списком или массивом, кол-во колонок рассчитывается исходя из кол-ва элементов в списке или массиве. |
rows | integer | Нет | empty | количество строк в таблице. Если этот атрибут не указан, но указан атрибут cols, то количество строк автоматически вычисляется исходя из кооичества колонок и количества элементов для отображения, чтобы как раз уместить все элементы. |
inner | string | Нет | cols | направление заполнения элементов таблицы из массива. cols означает заполнение элементов колонки за колонкой. rows означает заполнение элементов строка за строкой. |
caption | string | Нет | пусто | текст, используемый в качестве заголовка таблицы. |
table_attr | string | Нет | border="1" | атрибуты для тэга table |
th_attr | string | Нет | пусто | атрибуты для тэга th (значения массива отображаются циклично) |
tr_attr | string | Нет | пусто | атрибуты для тэга tr (значения массива отображаются циклично) |
td_attr | string | Нет | пусто | атрибуты для тэга td (значения массива отображаются циклично) |
trailpad | string | Нет | | значение для заполнения пустых ячеек последней строки (если такие есть) |
hdir | string | Нет | right | направления заполнения каждой строки. доступные значения: right (слева-направо) и left (справа-налево) |
vdir | string | Нет | down | направление заполнения каждой колонки. доступные значения: down (сверху-вниз) и up (снизу-вверх) |
Пример 8.20. {html_table}
<?php $smarty->assign('data',array(1,2,3,4,5,6,7,8,9)); $smarty->assign('tr',array('bgcolor="#eeeeee"','bgcolor="#dddddd"')); $smarty->display('index.tpl'); ?>
Шаблон:
{html_table loop=$data} {html_table loop=$data cols=4 table_attr='border="0"'} {html_table loop=$data cols="first,second,third,fourth" tr_attr=$tr}
Результат выполнения данного примера:
<table border="1"> <tbody> <tr><td>1</td><td>2</td><td>3</td></tr> <tr><td>4</td><td>5</td><td>6</td></tr> <tr><td>7</td><td>8</td><td>9</td></tr> </tbody> </table> <table border="0"> <tbody> <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr> <tr><td>5</td><td>6</td><td>7</td><td>8</td></tr> <tr><td>9</td><td> </td><td> </td><td> </td></tr> </tbody> </table> <table border="1"> <thead> <tr> <th>first</th><th>second</th><th>third</th><th>fourth</th> </tr> </thead> <tbody> <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> </td><td> </td><td> </td></tr> </tbody> </table>