Очередное столкновение логики представления с логикой приложения.
Количество колонок при выводе в несколько колонок - это чьё?
Это задаёт дизигнер в тз? Это задаёт вестала в шаблоне? Это задаёт программер в хз?..
Дано:
шаблон системы "plain php".
Выводим массив в несколько колонок. Как определять конец уолонки?
Концептуально чисто будет использовать стандартный пхп код
<? if (!(++$count % $cols)): ?></tr><tr><? endif ?>
Однако, следуя принципу неумножения сущностей (который является основным при создании шаблонного движка (и которым пренебрегли создатели смарти)), добавлять непонятный оператор в код шаблона не хочется.
что делать?
Пока придумал что-то вроде
function new_col($counter,$cols)
с одной стороны, совсем неизвестная функция, самописная.
С другой - название можно сделать совсем говорящим.
Опять же, верстальщик может управлть количеством колонок сам.
Других вариантов, признаться не вижу...
Традиционный вопрос - как это делается в других движках?
Да, попутно вопрос.
<? if (!(++$count % $cols)): ?></tr><tr><? endif ?>
- это грубый хак. получается невалидный хтмл. Оставляет незакрытый tr.
в лучшем случае - пустую строчку tr без td.
вешать проверку и на верхний tr и на нижний - меня просто убивает. код в каждой строчке шаблона. за что боролись, называется.
но, видимо, это единственный вариант...
пример:
часть флейма вынесена в http://phpclub.ru/talk/showthread.php?s=&threadid=66555
Количество колонок при выводе в несколько колонок - это чьё?
Это задаёт дизигнер в тз? Это задаёт вестала в шаблоне? Это задаёт программер в хз?..
Дано:
шаблон системы "plain php".
Выводим массив в несколько колонок. Как определять конец уолонки?
Концептуально чисто будет использовать стандартный пхп код
<? if (!(++$count % $cols)): ?></tr><tr><? endif ?>
Однако, следуя принципу неумножения сущностей (который является основным при создании шаблонного движка (и которым пренебрегли создатели смарти)), добавлять непонятный оператор в код шаблона не хочется.
что делать?
Пока придумал что-то вроде
function new_col($counter,$cols)
с одной стороны, совсем неизвестная функция, самописная.
С другой - название можно сделать совсем говорящим.
Опять же, верстальщик может управлть количеством колонок сам.
Других вариантов, признаться не вижу...
Традиционный вопрос - как это делается в других движках?
Да, попутно вопрос.
<? if (!(++$count % $cols)): ?></tr><tr><? endif ?>
- это грубый хак. получается невалидный хтмл. Оставляет незакрытый tr.
в лучшем случае - пустую строчку tr без td.
вешать проверку и на верхний tr и на нижний - меня просто убивает. код в каждой строчке шаблона. за что боролись, называется.
но, видимо, это единственный вариант...
пример:
PHP:
<div align="center">
<a href="?<?=$prev_num?>"><<< предыдущая</a> | <a href="?<?=$next_num?>">следующая >>></a><br>
<img src="<?=$bigpic?>" <?=$bigsize?>><br>
<table width=0 border=0 bgcolor=#eeeeee cellpadding=7 cellspacing=3>
<tr>
<? foreach($thumbnails as $i => $thumb): ?>
<td width=170 bgcolor=#cccccc valign="middle" align="center">
<a href="?<?=$i?>"><img src="<?=$thumb ?>" border="0"></a>
</td>
<? if (!(++$count % $cols)):?></tr><tr><? endif ?>
<? endforeach ?>
</tr>
</table>
</div>