Шаблон - это программа, выполняющая логику представления. Вот пример шаблона на языке PHP:что есть шаблон в истинном значении?
Привет, меня зовут <b><?=$name?><b>!
Я живу в городе <?=$town?>. У меня много друзей:
<ul>
<? foreach($friends as $friend): ?>
<li><?=$friend?></li>
<? endforeach; ?>
<ul>
<? if($girls): ?>
...и подруг!
<? else: ?>
а вот подруг нет(((
<? endif; ?>
/search?<tmpl_if name="keyword">keyword=<tmpl_var name="keyword">&</tmpl_if><tmpl_if name="range">range=<tmpl_var name="range">&</tmpl_if>
$url= '/search?';
foreach( $params as $name => $val ) $url.= $name . '=' . $val . '&';
Шаблон - это образец, специальная нотация, разметка, но никак не программаШаблон - это программа, выполняющая логику представления.
function tpl_makeSearchUrl($params)
{
foreach ($params as $name => $val)
{
$url.= $name . '=' . $val . '&';
}
}
<a href="/search?<?=tpl_makeSearchUrl($params)?>"></a>
А кто говорит о ПРОГРАММЕ? Где ты в моем шаблоне видишь программу? Это - логика представления. От неё никуда не деться. Это только что было видно в примере dark-demon.Шаблон - это образец, специальная нотация, разметка, но никак не программа
/search?<tmpl_if name="keyword">keyword=<tmpl_var name="keyword">&</tmpl_if><tmpl_if name="range">range=<tmpl_var name="range">&</tmpl_if>sort=<tmpl_var name="sort" default="date">&
И что теперь? Как и в соседней теме, "весь SQL в функции выносить"? Вот тебе банальный пример:вот ты сам используешь внешнюю функцию-хэлпер, которую выносишь за пределы шаблона
<? if ($status == 'ОК'): ?>
<font color=green>Все хорошо</font>
<? elseif ($status == 'ALERT'): ?>
<font color=red>Все плохо, мы все умрем</font>
<? endif; ?>
<span class="status-{status}">
{message}
</span>
может формально тут нет логики представления но что-бы работать с таким шаблоном нужно эту логику выуживать с тех классов что обрабатывают этот шаблон. Шаблон по моему мнению и есть логика представления и где как не в шаблоне она должна присутсвовать. А писать еще кучу прослоек между логикой отображения и шаблоном как по мне то это не улучшает ни читаемость шаблона ни скорость приложения (ИМХО)ну, например, так:
<span class="status-{status}">
{message}
</span>
верстальщик гипотетический должен иметь возможность менять цвета. прикажете леть в код приложения? тогда это уже не шаблоны, а их профанация.ну, например, так:
Для того чтобы поменять цвета, ему нужно лезть в css файл, там же подставляется не цвет а класс "<span class="status-{status}">".верстальщик гипотетический должен иметь возможность менять цвета. прикажете леть в код приложения?
Опять же, задаём соответствующий класс для строки. Вообще, при использовании компонентов и событийно-ориентированного подхода, вся логика представления красиво укладывается в событие onShow, и не надо далеко ходить.А если выводим результат поиска строчка серым строчка белым
может вы просто не умеете вести дискуссию...вы упорно не хотите слышать аргументов.
Это шаблонизатор является программой, а "Шаблон - это образец, специальная нотация, разметка, но никак не программа".Шаблон это не какая-то штука с дырками, это программа исполняющая логику представления.
Вот жесть то!Для того чтобы поменять цвета, ему нужно лезть в css файл, там же подставляется не цвет а класс "<span class="status-{status}">".
А вот если понадобиться добавить ещё один статус, тогда понадобятся изменения в коде,а как же, это ведь изменение функциональности.