Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Обработка древовидного массива со Smarty

Чулан
Вчера столкнулся с проблемой. Имею массив, типа:

1 => array(
  'title' => 'название 1',
  'sub' => array(
    2 => array(
      'title' => название 2',
      'sub' => array(
        3 => array(
          'title' => 'название 3'
        )
      )
    )
  )
);

Обработка его средствами smarty получилась никакая — не поддерживает он бесконечных циклов внутри какой-либо функции. На уровне PHP это сделать не проблема — нужно просто прогнать весь массив через одну функцию вывода, в которой при нахождении подэлементов вновь делать вызов этой же функции, только уже с массивом подэлементов и дальше по аналогии.

Может кто реализовывал вывод таких древовидных массивов с помощью смарти? :)

Update: Смотрим вариант, найденный мной на каком-то форуме.
Читать дальше →
Всего голосов 8: ↑3 и ↓5 -2
Просмотры 531
Комментарии 14

Про использование чужого кода. Плагин «пейджер» для smarty.

Чулан
Недавно в очередной раз под звук участливых замечаний «не изобретай велосипед» нарвался на глюки чужого кода. В данном случае это был полуофициальный плагин «пейджер» для smarty, который работал жутко криво (я даже не стал разбираться почему, т.к. всё равно бестолку). В прошлый раз я написал свой класс для конвертации JSON <-> Object, который действительно правильно преобразовывал все типы, не херил UTF-8 и правильно сообщал если что не так, а не тупо возвращал пустоту. В позапрошлый — два часа попыток заставить drag'n'drop из mootools делать то что надо мне, привели к написанию за 40 минут собственного drag'n'drop для JS.

В этот раз всё закончилось аналогично — был написан свой «пейджер», который субъективно получился куда короче, понятнее, юзабельнее. Вызов моего плагина требует намного меньше лишних параметров, помещается в одну строку, дружественен к семантическому коду с раскрашиванием через CSS. Фишечек в нём тоже поменьше (а они нужны?).

Вот он, если кому интересно.

При этом я уверен, что у многих других людей к моему плагину может возникнуть не меньше претензий чем у меня к тому, от которого я отказался. Потому что это чужой код.

Выводы: Свой код, особенно если он приспособлен для повторного использования всегда лучше чем такой-же, но взятый со стороны. Если кто-то ещё скажет мне «не изобретай велосипед» — снисходительно посмотрю на него сверху вниз. А то любят тут умничать, блин…
Всего голосов 17: ↑11 и ↓6 +5
Просмотры 292
Комментарии 19

Реабилитация XML/XSLT технологий

CMS *
Здравствуй, Хабр. Некоторое время назад мы внедрили у себя в CMS наряду с уже имевшимся к тому моменту собственным шаблонизатором, еще и XSLT. Поскольку есть в XSLT большие и реальные преимущества и для разработчиков, и для хозяев студий, и даже для владельцев сайтов. Но реакция наших партнеров разделилась на противоположные мнения: одни давно ожидали этого и были рады появлению такой возможности, другие поставили под сомнение востребованность XSLT, приводя в качестве аргумента низкую производительность, которую якобы влечет за собой использование XSLT.
Понятно, что у всего нового всегда есть сторонники и противники, и рассудит их время. Поэтому не было особого смысла развязывать религиозную войну XSLT vs tpl или Smarty на тот момент. Но мы обнаружили, что оказывается, один из лидеров российского рынка CMS с завидным упорством все пишет и пишет о якобы несостоятельности XSLT как массовой технологии и готов рассматривать ее только в контексте специфичных задач. А это негативно влияет на умы некоторых непосвященных разработчиков об XSLT.

Читать дальше →
Всего голосов 56: ↑53 и ↓3 +50
Просмотры 9.9K
Комментарии 206

Шаблонизаторы для HTML.

Чулан
В эту неделю довольно много писали про шаблонизаторы, преимущественно Smarty и XSLT. В то же самое время ваш покорный слуга усиленно думал над тем, какой бы шаблонизатор использовать на своих проектах, и пришел к неутешительному выводу что ему ничего не нравиться. Далее будет рассмотрены основные методы написания шаблонов, расписано что в них нехорошего и предложен свой взгляд на проблему.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1.6K
Комментарии 16

Шаблонизатор на php

Разработка веб-сайтов *
Вообще писать особо не умею, обычно выходит только код, но постараюсь :)
Вот не прижилось во мне свойство использовать чужые готовые решения при разработке сайтов и по этому многое пишу сам, возможно по аналогии, но зато с полным пониманием и надеждой на то, что в будущем смогу разобраться в этом коде. Как-то получил вопрос мол зачем пишешь свой движок если есть куча готовых, бери и модернизируй для своей цели: подключай модули, настраивай и забивай бд. Ответить по сути не смог, но идею передал – нравится мне кодить да и вообще разбираться в новом.
Ну собственно о чём я. В очередной переделке своего движка решил уже написать что-то вроде шаблонизатора. Раньше был вариант, но настолько не удобный, что приходилось много править, за многим следить.

Почитал статьи на эту тему и как-то ничего нового не нашёл, кроме одной реализации.
Читать дальше →
Всего голосов 20: ↑9 и ↓11 -2
Просмотры 8.7K
Комментарии 44

Вся правда о шаблонизаторах

PHP *
Статейка старенькая, но думаю до сих пор актуальная

Cлишком часто я в последнее время слышу слово «шаблонизатор». Не утихают споры между сторонниками разных шаблонных движков. Одни говорят что логика в шаблонах это хорошо, другие считают что это зло. Даже сейчас очень часто встречаются проекты, написанные вообще без применения какого либо шаблонизатора. Но в этой статье я не буду предпринимать попыток стать на сторону одной из сторон. Я не буду вам доказывать преимущества ни одного из подходов. Я просто постараюсь рассказать обо всех из них с точки зрения теории. Эта статья не о конкретных программных продуктах, а о способах выделения логики представления в ваших приложениях.
Читать дальше →
Всего голосов 18: ↑9 и ↓9 0
Просмотры 34K
Комментарии 48

smarty перестал дружить с php.net?

PHP *
Очень странно — захожу на smarty.php.net и созерцаю там вместо веб-сайта популярного шаблонизатора страницу об ошибках в php (http://bugs.php.net).
Интересно, к чему бы это?

(Официальный сайт Smarty так же доступен по адресу www.smarty.net)
Всего голосов 1: ↑4 и ↓-3 +7
Просмотры 618
Комментарии 28

Top 25 Шаблонных движков

PHP *
Перевод
(по версии WhenPenguinsAttack.Com)

После длительного поиска хорошего шаблонного движка на PHP, Justin Silverton составил следующий список с краткими описаниями.

Читать дальше →
Всего голосов 14: ↑8 и ↓6 +2
Просмотры 9.3K
Комментарии 31

Наследование шаблонов в Smarty

PHP *
Когда-то, давным-давно, мне пришлось использовать небезызвестный шаблонизатор Smarty. Сначала я, понятное дело, возмущался и кричал, какая же гадость эта заливная рыба Smarty, а потом «распробовал» и втянулся. Те удобства, которые он давал, с лихвой компенсировали мысли о том, что есть и более быстрые шаблонные движки.

Шаблоны я обычно строил с помощью инклюдов: в начале подключался header.tpl, в конце — footer.tpl, в середине ещё что-нибудь нужное. В целом разметка получалась довольно аккуратной, но не проходило ощущение, что не хватает чего-то важного. Окончательно понимание этого чего-то появилось, когда мне случилось написать простенькое приложение на Django. И это «что-то», как все поняли, оказалось наследованием шаблонов. Простая, как и всё гениальное, идея позволяла существенно упростить шаблоны и избавиться от дублирующих блоков.

А почему бы не реализовать подобный механизм в Smarty?
Всего голосов 65: ↑52.5 и ↓12.5 +40
Просмотры 11K
Комментарии 54

Наследование шаблонов в Smarty — альтернативный подход

PHP *
По следам хабратопика Наследование шаблонов в Smarty хочу рассказать как около полутора лет назад я решил подобную задачу. В оличие от marazmiki с Django я знаком не был (хотя сейчас занимаюсь изучением именно его). Но крайне поверхностно был знаком с механизмом Master Pages из ASP.NET. Механизм заключается в том, что у нас есть практически полноценная страница, у которой отсутствует только блок с основным контентом.

Немного прикинув придумалось решение через стандарные функции Smarty и механизм наследования в PHP.
Читать дальше →
Всего голосов 11: ↑6 и ↓5 +1
Просмотры 1.3K
Комментарии 3

Мои плагины для Smarty

PHP *
Недавно в блоге PHP пролетала статья про наследование шаблонов в Smarty, которая навела меня на мысль: я уже на протяжении нескольких лет использую Smarty в качестве основного шаблонизатора и у меня накопилось множество написанных мною плагинов для расширения базового функционала. Почему бы не поделиться с сообществом своими наработками и послушать других? Я думаю, у многих есть чем поделиться по этой теме…
Читать дальше →
Всего голосов 41: ↑29 и ↓12 +17
Просмотры 3.8K
Комментарии 21

Мои плагины для Smarty. Часть 2

PHP *
Учитывая наличие интереса к этой теме у сообщества, продолжаю знакомить со своими плагинами для Smarty. С первой частью можно ознакомиться здесь.
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 4.7K
Комментарии 13

Smarty-плагин для Gravatar

PHP *
Многим известно про популярный сервис — Gravatar. Кратко напомню его суть — любой пользователь может зарегистрироваться там, загрузить свой аватар и связать его со своим e-mail адресом. Сервис Gravatar предоставляет возможность получить аватар любого зарегистрированного пользователя. Данный плагин позволяет построить адрес для аватара пользователя в Smarty шаблонах.
Подробнее о плагине...
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 919
Комментарии 0

Вышел alpha-релиз Smarty 3

PHP *
Оказывается, третьего дня, то есть 17 октября сего года, вышел альфа-релиз многими любимого (и многими же презираемого) шаблонизатора Smarty.

Интерфейс шаблонизатора особо не изменился. Это всё те же display(), fetch() и assign(), которые покрывают процентов 99 всех потребностей. Монструознное assign_by_ref() почило в бозе. Туда ему и дорога ;)

Внутренности же претерпели более существенные изменения:
Читать дальше →
Всего голосов 72: ↑56 и ↓16 +40
Просмотры 976
Комментарии 138

приемы работы с шаблонизатором

PHP *

Вложенный шаблон должен задать title


чаще всего встречал такую проблему: в середине страницы выводится блок, этот блок задает Title, но реально Title уже выведен в head как быть?
Читать дальше →
Всего голосов 31: ↑18 и ↓13 +5
Просмотры 1.1K
Комментарии 68

Обзор шаблонизатора Quicky: Производительность и Гибкость

PHP *
Quicky — hi-end шаблонизатор, написанный на PHP отличающийся гибкой функциональностью, и в то же время, высокой производительностью. За основу взят синтаксис и функционал Smarty.


содержание:
переход со Смарти, на Quicky
— — чем Quicky лучше Smarty?
Quicky быстрее PHP-native?
Quicky темная сторона силы.
Комьюнити Quicky. (теперь все тут http://code.google.com/p/quicky/)
Богатые возможности Quicky.
Вместо заключения. Личное мнение.
Читать дальше →
Всего голосов 89: ↑70 и ↓19 +51
Просмотры 4.6K
Комментарии 239