Общий принцип работы системы был задокументирован ранее. Теперь поговорим немного о шаблонизаторе.

В моём представлении каждая страница сайта состоит из виджетов, связанных между собой некоторым оформлением (дизайном). Вот примеры виджетов:

  1. главное меню
  2. меню с подпунктами
  3. баннер
  4. форма авторизации
  5. корзина
  6. область основного контента страницы
  7. и т.д.

Почему я выделил слова область основного контента страницы полужирным шрифтом?
Дело в том, что этот момент ещё не очень хорошо продуман. Скорее всего заголовок H1 и путь к этой странице будут выделены в отдельные виджеты. А вот с листалкой уже не так очевидно, да ещё может возникнуть потребность выводить на одной странице несколько элементов контента (например, парочку фотогалерей и один текст).

Какие же роли играют Шаблонизатор и Виджет?

  • В Шаблонизаторе определяется в каком месте будет выводиться тот или иной Виджет.
  • Виджет определяет как именно он будет выводиться и будет ли вообще он при заданных условиях отображать себя.

Такая схема позволяет разрабатывать виджеты совершенно отдельно от реального приложения и добиться их простого повторного использования. Однако она же и накладывает некоторые ограничения. Например: view-скрипт виджета должен идти с ним в одном комплекте, и для каждого момента в нём должны быть прописаны свои css-классы.