AmdY
Санитар PHPClubа
На форуме с: Jan 2007
Cообщений: 1842
Город: Belarus, Minsk
 |
Я считаю что шаблонами должен заниматься программист иначе приходится сильно ограничивать себя.
А какой шаблонизатор, это зависит от того, что будет в шаблонах.
Нет смысла заменять <?= $var ?> на {$var}, особенно если нет компиляции шаблонов, то это только вредит. Другое дело Smarty и Quicky, которые являются инструментом для программиста и которые делают намного больше простого "echo if foreach", мне удобно использовать именно них, но я не завидую тому, кто будет после меня разбираться в конструкциях а-ля "{message type="info"}....{/message}"
Ну и XSLT, очень удобно, что данные в формате XML, их можно затем сунуть хоть в XSLT, хоть во флеш, хоть в сторонний клиент на С++. Использование exslt делает этот вариант ещё мощнее, ещё один плюс - работа с этим добром в браузере. Но, есть одно большое "НО", очень геморно бороться с валидностью, дп и формат довально громоздкий в плане ресурсов.
dark-demon, а вот мой вариант для форм на смарти, а сама описание формы хранится в XML
<div class="formDiv">
{if $form->formValidate}
<div class="error_message">
{foreach from=$form->formValidate item="v"}
{$v.text}
{/foreach}
</div>
{/if}
<div class="formFields">
{$form->begin()}
{foreach from=$form->formFields item="field"}
<div class="formCaption">{if $form->getCaption()}{$form->getCaption()}</div>{/if}
<div class="formField">{$form->next()}</div>
{/foreach}
{$form->end()}
</div>
</div>
dark-demon по поводу селекта, item="field" хранит информацию о текущем поле type, name, class, validate и прочее.
{foreach from=$form->formFields item="field"}
<div class="formCaption">{if $form->getCaption()}{$form->getCaption()}</div>{/if}
{if $field->type=='select'}
<div class="formFieldSelect">{if $field->validate}<span class="red bold">*</span>{/if}{$form->next()}</div>
{else}
<div class="formField">{$form->next()}</div>
{/if}
{/foreach}
__________________
Keep It Simple, Stupid.
Отредактировано AmdY 27.10.07 в 18:36
|