ТопольМ
Новичок со стажем
это ни о чем не говорит!xslt - стандарт w3c!
что мешает генерировать то что тебе нужно?
нде, похоже, я опоздал...
это ни о чем не говорит!xslt - стандарт w3c!
Ну это то понятно, но с другой стороны, если таких примеров превосходства много, то можно говорить и о превосходстве самого шаблонизатора.вот только надо понимать, что именно в них Smarty лучше чем native php. И только в них. А не в целом.
Я совсем недавно заинтересовался шаблонами, не озвучишь парочку ? Или может быть статья есть какая-то сравнительная.примеры эти стандартные, всем давно известные.
Да, проблема имеет место быть.пример хрестоматийный - ограничение верстальщику доступа к коду
Хм, это смотря какое дерево.пример недавний - вывод дерева. на чистом пхп надо писать рекурсивную функцию В ШАБЛОНЕ.
$tree = array(
array('level' => 0, 'value' => 'Новости'),
array('level' => 1, 'value' => 'Вчера'),
array('level' => 1, 'value' => 'Сегодня'),
array('level' => 2, 'value' => '1'),
array('level' => 2, 'value' => '2'),
);
<? foreach($tree as $item): ?>
<?=str_repeat(" ", $item['level'])?>- <?=$item['value']?><br />
<? endforeach; ?>
- Новости
- Вчера
- Сегодня
- 1
- 2
Ты про str_repeat ? Можно ее засунуть в хэлпер.я считаю, что набор используемых в шаблоне операторов пхп сдолжен быть жёстко ограничен.
в противном случае получится всё тот же винегрет
<?=$html->repeat(" ", $item['level'])?>
Ну не знаю, не знаю. Например, обычный вывод древовидных комментариев:не обязательна, но код в результате начинает очень мало отличаться от чистого, без хтмл, кода на пхп.
<? foreach($comments as $comment): ?>
<div class="comment" style="padding-left: <?=$comment['level']*10?>">
<?=$comment['text']?>
</div>
<? endforeach; ?>
это вы просто такой вывод сделали.Ну, с выводом дерева мы разобрались, еще какие-нибудь примеры будут ?
тут дело не столько в недоверии, сколько в разграничении епархий.Если настолько не доверять верстальщикам, то можно придумать решение.
Принимать решения приходиться не только при получении запроса и его парсинга, но и при выводе результата. Простой пример: гостю ты отображаешь форму авторизации, а авторизованному пользователю форму выхода и информацию о нем, и это всё на одной странице. И решение о выводе должно осуществляться в темплейте. Другое дело, что само решение должно приниматься на основании готовых данных.а почему я должен раздваивать код, выносить какую-то логику из контроллера
Ты полагаешь это временной трудностью.в связи с насущными задачами не смог выдержать парадигму и ударился во все тяжкие.
этот вопрос должен встать ДО того, как ты вообще начнёшь пользоваться шаблонами.встанет перед подсознанием вопрос: а почему я должен раздваивать код,
хохо.Честно говоря немного непривычно, что в смарти можно ставить условия. То есть в xtpl просто определяешь нужные блоки и в контроллёре вызываешь парсинг
<!-- BEGIN: row -->
<tr>
<td>{ROW_NR}</td>
<td>{DATA.ID}</td>
<td>{DATA.NAME}</td>
<td>{DATA.AGE}</td>
</tr>
<!-- END: row -->
<!-- BEGIN: books -->
{author}{title}
<!-- END: books -->
<!-- BEGIN: nobooks -->
<p>There are no books to display.</p>
<!-- END: nobooks -->