parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

re: наш ответ вашим :)

Никита Козин 08.02.2006 12:38 / 08.02.2006 13:14

@main[]
# создаем тестовую табличку:
$t[^table::create{id
^for[i](1;17){=$i=
}}]

# пример работы метода:
<table border="1" cellspacing="0" cellpadding="5" width="300" style="font-size: x-small">
	^cmenu[$t](2){<tr^if((^t.offset[] / $cols) % 2){ bgcolor="#efefef"}>}{
		<td>$t.id</td>
	}{
		<td><br></td>
	}[</tr>]
</table>
# end @main[]

# table - исходная таблица
# cols - количество ячеек в строке
# tr_start и tr_stop - открывающий и закрывающий тег <tr>
# code - код, для каждой ячейки
# code_empty - код для оставшихся пустых ячеек (не обязательный параметр)
#              если не задан - пустые ячейки не выводятся (они излишни в XML)
@cmenu[table;cols;tr_start;code;code_empty;tr_end][_tr_end]
$_tr_end[^if(def $tr_end){$tr_end}{$code_empty}]
$caller.cols($cols)
^table.menu{
	^if(!(^table.offset[] % $cols)){$tr_start}
	$code
	^if(^table.offset[] == $table - 1 && def $tr_end){
		^for[n](1;$cols * ^math:ceiling($table / $cols) - $table){$code_empty}
	}
	^if(^table.offset[] % $cols == $cols - 1){$_tr_end}
}
# end @cmenu[]
2Misha v.3
Может быть в FAQ, рядом с @foreach-ем?...