Здесь есть список php template engines. Smarty очень даже есть чем заменить! tashik.habrahabr.ru/blog/9582.html#comments
Обработка древовидного массива со Smarty
1 min
1KВчера столкнулся с проблемой. Имею массив, типа:
1 => array(
'title' => 'название 1',
'sub' => array(
2 => array(
'title' => название 2',
'sub' => array(
3 => array(
'title' => 'название 3'
)
)
)
)
);
Обработка его средствами smarty получилась никакая — не поддерживает он бесконечных циклов внутри какой-либо функции. На уровне PHP это сделать не проблема — нужно просто прогнать весь массив через одну функцию вывода, в которой при нахождении подэлементов вновь делать вызов этой же функции, только уже с массивом подэлементов и дальше по аналогии.
Может кто реализовывал вывод таких древовидных массивов с помощью смарти? :)
Update: Смотрим вариант, найденный мной на каком-то форуме.
1 => array(
'title' => 'название 1',
'sub' => array(
2 => array(
'title' => название 2',
'sub' => array(
3 => array(
'title' => 'название 3'
)
)
)
)
);
Обработка его средствами smarty получилась никакая — не поддерживает он бесконечных циклов внутри какой-либо функции. На уровне PHP это сделать не проблема — нужно просто прогнать весь массив через одну функцию вывода, в которой при нахождении подэлементов вновь делать вызов этой же функции, только уже с массивом подэлементов и дальше по аналогии.
Может кто реализовывал вывод таких древовидных массивов с помощью смарти? :)
Update: Смотрим вариант, найденный мной на каком-то форуме.
-2
Разыскивается быстрый шаблонный движок для php
1 min
982futurico в поисках)
Желательно найти smarty-подобный движок, написанный на C, как модуль для php. Спасибо за внимание.
Желательно найти smarty-подобный движок, написанный на C, как модуль для php. Спасибо за внимание.
+10
Про использование чужого кода. Плагин «пейджер» для smarty.
1 min
573Недавно в очередной раз под звук участливых замечаний «не изобретай велосипед» нарвался на глюки чужого кода. В данном случае это был полуофициальный плагин «пейджер» для smarty, который работал жутко криво (я даже не стал разбираться почему, т.к. всё равно бестолку). В прошлый раз я написал свой класс для конвертации JSON <-> Object, который действительно правильно преобразовывал все типы, не херил UTF-8 и правильно сообщал если что не так, а не тупо возвращал пустоту. В позапрошлый — два часа попыток заставить drag'n'drop из mootools делать то что надо мне, привели к написанию за 40 минут собственного drag'n'drop для JS.
В этот раз всё закончилось аналогично — был написан свой «пейджер», который субъективно получился куда короче, понятнее, юзабельнее. Вызов моего плагина требует намного меньше лишних параметров, помещается в одну строку, дружественен к семантическому коду с раскрашиванием через CSS. Фишечек в нём тоже поменьше (а они нужны?).
Вот он, если кому интересно.
При этом я уверен, что у многих других людей к моему плагину может возникнуть не меньше претензий чем у меня к тому, от которого я отказался. Потому что это чужой код.
Выводы: Свой код, особенно если он приспособлен для повторного использования всегда лучше чем такой-же, но взятый со стороны. Если кто-то ещё скажет мне «не изобретай велосипед» — снисходительно посмотрю на него сверху вниз. А то любят тут умничать, блин…
В этот раз всё закончилось аналогично — был написан свой «пейджер», который субъективно получился куда короче, понятнее, юзабельнее. Вызов моего плагина требует намного меньше лишних параметров, помещается в одну строку, дружественен к семантическому коду с раскрашиванием через CSS. Фишечек в нём тоже поменьше (а они нужны?).
Вот он, если кому интересно.
При этом я уверен, что у многих других людей к моему плагину может возникнуть не меньше претензий чем у меня к тому, от которого я отказался. Потому что это чужой код.
Выводы: Свой код, особенно если он приспособлен для повторного использования всегда лучше чем такой-же, но взятый со стороны. Если кто-то ещё скажет мне «не изобретай велосипед» — снисходительно посмотрю на него сверху вниз. А то любят тут умничать, блин…
+5
Использование Smarty в Zend Framework
1 min
761Вот тут описан пример использования Smarty совместно c Zend Framework.
Естественно, Америку не открыл :-), но надеюсь, что кому-нибудь пригодится.
Естественно, Америку не открыл :-), но надеюсь, что кому-нибудь пригодится.
+1
Реабилитация XML/XSLT технологий
7 min
10KЗдравствуй, Хабр. Некоторое время назад мы внедрили у себя в CMS наряду с уже имевшимся к тому моменту собственным шаблонизатором, еще и XSLT. Поскольку есть в XSLT большие и реальные преимущества и для разработчиков, и для хозяев студий, и даже для владельцев сайтов. Но реакция наших партнеров разделилась на противоположные мнения: одни давно ожидали этого и были рады появлению такой возможности, другие поставили под сомнение востребованность XSLT, приводя в качестве аргумента низкую производительность, которую якобы влечет за собой использование XSLT.
Понятно, что у всего нового всегда есть сторонники и противники, и рассудит их время. Поэтому не было особого смысла развязывать религиозную войну XSLT vs tpl или Smarty на тот момент. Но мы обнаружили, что оказывается, один из лидеров российского рынка CMS с завидным упорством все пишет и пишет о якобы несостоятельности XSLT как массовой технологии и готов рассматривать ее только в контексте специфичных задач. А это негативно влияет на умы некоторых непосвященных разработчиков об XSLT.
Понятно, что у всего нового всегда есть сторонники и противники, и рассудит их время. Поэтому не было особого смысла развязывать религиозную войну XSLT vs tpl или Smarty на тот момент. Но мы обнаружили, что оказывается, один из лидеров российского рынка CMS с завидным упорством все пишет и пишет о якобы несостоятельности XSLT как массовой технологии и готов рассматривать ее только в контексте специфичных задач. А это негативно влияет на умы некоторых непосвященных разработчиков об XSLT.
+50
Шаблонизаторы для HTML.
5 min
3.2KВ эту неделю довольно много писали про шаблонизаторы, преимущественно Smarty и XSLT. В то же самое время ваш покорный слуга усиленно думал над тем, какой бы шаблонизатор использовать на своих проектах, и пришел к неутешительному выводу что ему ничего не нравиться. Далее будет рассмотрены основные методы написания шаблонов, расписано что в них нехорошего и предложен свой взгляд на проблему.
+7
Шаблонизатор на php
5 min
8.9KВообще писать особо не умею, обычно выходит только код, но постараюсь :)
Вот не прижилось во мне свойство использовать чужые готовые решения при разработке сайтов и по этому многое пишу сам, возможно по аналогии, но зато с полным пониманием и надеждой на то, что в будущем смогу разобраться в этом коде. Как-то получил вопрос мол зачем пишешь свой движок если есть куча готовых, бери и модернизируй для своей цели: подключай модули, настраивай и забивай бд. Ответить по сути не смог, но идею передал – нравится мне кодить да и вообще разбираться в новом.
Ну собственно о чём я. В очередной переделке своего движка решил уже написать что-то вроде шаблонизатора. Раньше был вариант, но настолько не удобный, что приходилось много править, за многим следить.
Почитал статьи на эту тему и как-то ничего нового не нашёл, кроме одной реализации.
Вот не прижилось во мне свойство использовать чужые готовые решения при разработке сайтов и по этому многое пишу сам, возможно по аналогии, но зато с полным пониманием и надеждой на то, что в будущем смогу разобраться в этом коде. Как-то получил вопрос мол зачем пишешь свой движок если есть куча готовых, бери и модернизируй для своей цели: подключай модули, настраивай и забивай бд. Ответить по сути не смог, но идею передал – нравится мне кодить да и вообще разбираться в новом.
Ну собственно о чём я. В очередной переделке своего движка решил уже написать что-то вроде шаблонизатора. Раньше был вариант, но настолько не удобный, что приходилось много править, за многим следить.
Почитал статьи на эту тему и как-то ничего нового не нашёл, кроме одной реализации.
-2
Вся правда о шаблонизаторах
10 min
35KСтатейка старенькая, но думаю до сих пор актуальная
Cлишком часто я в последнее время слышу слово «шаблонизатор». Не утихают споры между сторонниками разных шаблонных движков. Одни говорят что логика в шаблонах это хорошо, другие считают что это зло. Даже сейчас очень часто встречаются проекты, написанные вообще без применения какого либо шаблонизатора. Но в этой статье я не буду предпринимать попыток стать на сторону одной из сторон. Я не буду вам доказывать преимущества ни одного из подходов. Я просто постараюсь рассказать обо всех из них с точки зрения теории. Эта статья не о конкретных программных продуктах, а о способах выделения логики представления в ваших приложениях.
Cлишком часто я в последнее время слышу слово «шаблонизатор». Не утихают споры между сторонниками разных шаблонных движков. Одни говорят что логика в шаблонах это хорошо, другие считают что это зло. Даже сейчас очень часто встречаются проекты, написанные вообще без применения какого либо шаблонизатора. Но в этой статье я не буду предпринимать попыток стать на сторону одной из сторон. Я не буду вам доказывать преимущества ни одного из подходов. Я просто постараюсь рассказать обо всех из них с точки зрения теории. Эта статья не о конкретных программных продуктах, а о способах выделения логики представления в ваших приложениях.
0
smarty перестал дружить с php.net?
1 min
692Очень странно — захожу на smarty.php.net и созерцаю там вместо веб-сайта популярного шаблонизатора страницу об ошибках в php (http://bugs.php.net).
Интересно, к чему бы это?
(Официальный сайт Smarty так же доступен по адресу www.smarty.net)
Интересно, к чему бы это?
(Официальный сайт Smarty так же доступен по адресу www.smarty.net)
+7
Шаблонизаторы
2 min
14K
В очередной раз подниму тему Template Engine в PHP. Боюсь, будет холивар…
+17
Top 25 Шаблонных движков
3 min
9.8K
Translation
(по версии WhenPenguinsAttack.Com)
После длительного поиска хорошего шаблонного движка на PHP, Justin Silverton составил следующий список с краткими описаниями.
После длительного поиска хорошего шаблонного движка на PHP, Justin Silverton составил следующий список с краткими описаниями.
+2
Наследование шаблонов в Smarty
4 min
11KКогда-то, давным-давно, мне пришлось использовать небезызвестный шаблонизатор Smarty. Сначала я, понятное дело, возмущался и кричал, какая же гадость эта заливная рыба Smarty, а потом «распробовал» и втянулся. Те удобства, которые он давал, с лихвой компенсировали мысли о том, что есть и более быстрые шаблонные движки.
Шаблоны я обычно строил с помощью инклюдов: в начале подключался header.tpl, в конце — footer.tpl, в середине ещё что-нибудь нужное. В целом разметка получалась довольно аккуратной, но не проходило ощущение, что не хватает чего-то важного. Окончательно понимание этого чего-то появилось, когда мне случилось написать простенькое приложение на Django. И это «что-то», как все поняли, оказалось наследованием шаблонов. Простая, как и всё гениальное, идея позволяла существенно упростить шаблоны и избавиться от дублирующих блоков.
Шаблоны я обычно строил с помощью инклюдов: в начале подключался header.tpl, в конце — footer.tpl, в середине ещё что-нибудь нужное. В целом разметка получалась довольно аккуратной, но не проходило ощущение, что не хватает чего-то важного. Окончательно понимание этого чего-то появилось, когда мне случилось написать простенькое приложение на Django. И это «что-то», как все поняли, оказалось наследованием шаблонов. Простая, как и всё гениальное, идея позволяла существенно упростить шаблоны и избавиться от дублирующих блоков.
+40
Наследование шаблонов в Smarty — альтернативный подход
6 min
1.5KПо следам хабратопика Наследование шаблонов в Smarty хочу рассказать как около полутора лет назад я решил подобную задачу. В оличие от marazmiki с Django я знаком не был (хотя сейчас занимаюсь изучением именно его). Но крайне поверхностно был знаком с механизмом Master Pages из ASP.NET. Механизм заключается в том, что у нас есть практически полноценная страница, у которой отсутствует только блок с основным контентом.
Немного прикинув придумалось решение через стандарные функции Smarty и механизм наследования в PHP.
Немного прикинув придумалось решение через стандарные функции Smarty и механизм наследования в PHP.
+1
Мои плагины для Smarty
7 min
4KНедавно в блоге PHP пролетала статья про наследование шаблонов в Smarty, которая навела меня на мысль: я уже на протяжении нескольких лет использую Smarty в качестве основного шаблонизатора и у меня накопилось множество написанных мною плагинов для расширения базового функционала. Почему бы не поделиться с сообществом своими наработками и послушать других? Я думаю, у многих есть чем поделиться по этой теме…
+17
Мои плагины для Smarty. Часть 2
7 min
4.9KУчитывая наличие интереса к этой теме у сообщества, продолжаю знакомить со своими плагинами для Smarty. С первой частью можно ознакомиться здесь.
+7
Smarty-плагин для Gravatar
2 min
996
+6
Вышел alpha-релиз Smarty 3
2 min
1KОказывается, третьего дня, то есть 17 октября сего года, вышел альфа-релиз многими любимого (и многими же презираемого) шаблонизатора Smarty.
Интерфейс шаблонизатора особо не изменился. Это всё те же
Внутренности же претерпели более существенные изменения:
Интерфейс шаблонизатора особо не изменился. Это всё те же
display()
, fetch()
и assign()
, которые покрывают процентов 99 всех потребностей. Монструознное assign_by_ref()
почило в бозе. Туда ему и дорога ;)Внутренности же претерпели более существенные изменения:
+40
приемы работы с шаблонизатором
3 min
1.2KВложенный шаблон должен задать title
чаще всего встречал такую проблему: в середине страницы выводится блок, этот блок задает Title, но реально Title уже выведен в head как быть?
+5
Обзор шаблонизатора Quicky: Производительность и Гибкость
5 min
4.7KQuicky — hi-end шаблонизатор, написанный на PHP отличающийся гибкой функциональностью, и в то же время, высокой производительностью. За основу взят синтаксис и функционал Smarty.
содержание:
— переход со Смарти, на Quicky
— — чем Quicky лучше Smarty?
— Quicky быстрее PHP-native?
— Quicky темная сторона силы.
— Комьюнити Quicky. (теперь все тут http://code.google.com/p/quicky/)
— Богатые возможности Quicky.
— Вместо заключения. Личное мнение.
+51