А мне так и не помогли выбрать шаблонизатор, чтобы он крутил циклы с минимальным синтаксисом в шаблоне. =( Ещё кстати проблема с циклами - если в цикле пусто, то "обертыш" всё-равно будет выводится. Для этого в шаблоне приходится добавлять ещё одно условие, что тоже засирает шаблон логикой. А я хочу чтоб в шаблоне всё было минималистично и не засрано. =\ Добавлено спустя 4 минуты 19 секунд: Кстати, а может запилить свой шаблонизатор на регулярках, чтобы он искал элемент с нужным классом и выводил цикл в него, а при пустом цикле убирал элемент? Тогда в шаблон достаточно будет добавить класс, как-нибудь связанный с обработчиком шаблона. Например, можно попробовать связать имя класса с именем массива, который должен выводится в элемент.
чувак, у тебя юношеский максимализм на старости лет Добавлено спустя 42 секунды: так и стоит поступить! никого не слушай, верь своему сердцу! (и перцу)
Fell-x27, принцип конечно же тот же... т.е. если надо что-то проверить, то if, если в цикле прогнать, то for, но в пхп ручками надо всё экранировать, в пхп будет очень избыточнок кол-во симфоволов с открыванием и закрыванием тэгов, а вот наследование и блоки реализовать на пхп будет очень непросто... по этому остаётся твиг а для экзотичности есть фалконовский вольт с почти таким же синтаксисом и возможностями...
Игорь, есть базовый шаблон, в нём все фрагменты оформлены в виде блоков, если нам надо на базе этого же шаблона что-то подменить, то он наследуется и подменяется только нужный блок, очень удобно а вообще я уже даже не представляю как выводить данные без наследования... а копипастить как-то лень, да и вообще не тру это...
дык элементарно, Ватсон есть базовый шаблон, на одной странице надо разместить текст, а на другой вывести список новостей, вот и подменяется блок content, а еще title, чтобы загловки разные были
В общем шаблонизаторы нужны, чтобы исправить проблемы кривожопой архитектуры и последствия быдломакаронной разработки. Ок.
или я ничо не понимаю, или сие наследование решается во вьюхе принципом: if (isset($content)), то чегонибудь с контентом делаем, if (isset($block)) то например тянем ещеодну вьюху, в которой чегонить другое. хрень кароче )
если задать их изначально то можно и короче. if ($content) Но то что описал диджи это просто основная функция шаблона. Одного шаблона.
Пффф... Я у себя сделал модульную систему, которая не натягивает шаблон автоматически, шаблон натягивается в самом модуле, вызовом функции в самом конце. У меня весь контент сначала пишется в переменные, и только в самом конце один раз выводиться в echo, поэтому по ходу контент можно формировать как угодно. Таже самая функция натягивает шаблоны на блоки в сайдбарах, так что можно задать и блокам разное оформление. Пример: http://red-squadron.ru/ Код (PHP): function render_block($title, $content, $template='block') { global $_P, $_S; $output = file_get_contents($_P['path'].'styles/'.$_S['style'].'/templates/'.$template.'.html'); $output = str_replace('{P_TITLE}', $title, $output); $output = str_replace('{P_CONTENT}', $content, $output); return $output; } Добавлено спустя 5 минут 23 секунды: Вот у меня точно такие же мысли возникают. Все шаблонизаторы что я пока попробовал это тот же самый PHP, только с чуть более коротким синтаксисом. Шило на мыло, по-моему, да ещё и в ущерб производительности. Ниужели никто до сих пор не придумал своего уникально синтаксиса, вместо того чтобы просто "перекрашивать" PHP?
Народ, походу, прикалывает делать более лаконичные if-ы, отдавая по паре метров оперативы за них, только и всего.
Не, ну что-то в шаблонизаторах, конечно, есть. У меня есть один заказчик, который любит шаблоны для сайтов писать сам - типа, вы мне сделайте всю логику, и дайте данные в переменных, какие мне нужны, а я выведу. И вот PHP ему не поднять, а смарти он сам умудрился освоить. В админке его самописного сайта правда при редактировании шаблонов он просит выводить подсказки по использованию переменных. Правда, самому мне нравится писать шаблоны на чистом PHP, но со смарти приходится работать из-за некоторых CMS