Простейший шаблонизатор.

Тема в разделе "PHP", создана пользователем Mendel, 1 фев 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Mendel

    Mendel

    Регистр.:
    27 янв 2008
    Сообщения:
    217
    Симпатии:
    64
    * Название: templ_lite
    * Автор: Mendel, zzzlab.com
    * Версия: 1.00
    * основные функции: Простейший шаблонизатор. Самый минимальный набор функций. Простота и скорость.
    * Описание: Берется основной файл шаблона /templ/skin.tpl
    в нем находим псевдотег <MYBODY> и заменяем его на содержимое файла с именем переданным в параметрах, расширением .tpl и лежащим в папке templ. Далее берем из глобального массива все переменные и тупо заменяем на их значение все {имя переменной}.
    Примеры в архиве.
     

    Вложения:

    • lite.rar
      Размер файла:
      1,3 КБ
      Просмотров:
      40
  2. Mendel

    Mendel

    Регистр.:
    27 янв 2008
    Сообщения:
    217
    Симпатии:
    64
    Теперь после простейшего идет чуть более функциональный, но все равно очень простой.
    * Название: templ
    * Автор: Mendel, zzzlab.com
    * Версия: 3.00
    * основные функции: Простой шаблонизатор. Простейшие массивы, простейший if, понятие "скины". Простота и скорость.
    * Описание: Берется основной файл шаблона /templ/skin.tpl
    в нем находим псевдотег <MYBODY> и заменяем его на содержимое файла с именем переданным в параметрах, расширением .tpl и лежащим в папке templ. Далее берем из глобального массива все переменные и тупо заменяем на их значение все {имя переменной}. Более подробное описание в архиве, включая пример.
     

    Вложения:

    • full.rar
      Размер файла:
      5,3 КБ
      Просмотров:
      61
    mayken нравится это.
  3. pll

    pll Создатель

    Регистр.:
    29 дек 2007
    Сообщения:
    28
    Симпатии:
    5
    На мой взгляд не есть гут смешивать стили управляющих конструкций.

    используем для одних { и }
    а для других < и >

    HTML:
    
    <IF=user_loged>
    Здравствуйте <b>{user_loged_name}</b>! <br>
    </IF=user_loged>
    
     
  4. Mendel

    Mendel

    Регистр.:
    27 янв 2008
    Сообщения:
    217
    Симпатии:
    64
    В readme по этому поводу сказанно - сделанно специально исходя из того чтобы файлы шаблонов в браузере были максимально похожи на реальную страничку. Ну а <MYBODY> по такой логике должен быть конечно не тегом, но он один, и чтобы иетуитивно было понятно где какой стиль я его сделал тэгом. (Все переменные в фигурных скобках, все остальное в треугольных).
     
  5. modesco

    modesco Создатель

    Регистр.:
    4 июн 2007
    Сообщения:
    38
    Симпатии:
    1
    а какой смысл файлам шаблона максимально быть похожими на html страничку? наоборот намного удобнее, если сразу видно где html, а где условные конструкции и переменные
     
  6. Mendel

    Mendel

    Регистр.:
    27 янв 2008
    Сообщения:
    217
    Симпатии:
    64
    Чтобы их было проще редактировать.
    Мне так удобнее.
    Поскольку этот шаблонизатор стоит уже далеко не в одном десятке проектов, то естественно меняться это не будет, хотябы по чисто историческим причинам. Поэтому обсуждение этого вопроса не имеет смысла.
     
  7. pll

    pll Создатель

    Регистр.:
    29 дек 2007
    Сообщения:
    28
    Симпатии:
    5
    Вопрос проще для кого ?
    Для себя, наверно Да!
    Для работы в команде или использование другими людьми - думаю не оч.

    Действительно если это пишется для себя дальнейшее обсуждение не имеет смысла.
     
  8. Mendel

    Mendel

    Регистр.:
    27 янв 2008
    Сообщения:
    217
    Симпатии:
    64
    :mad: Ведь не хотел же флудить.... а прийдется. :)
    В шаблонизаторе всего 5 конструкций: переменные, <array>.<if>,<inc>,<MYBODY>. Неужели комуто может быть сложно запомнить что переменные оформлены в одном стиле, а служебные конструкции в другом? Не понимаю. Это и удобно иногда просто в браузере открыть скин какойто, или шаблон, чтобы понять а кто это, чем читать код. Далее - читая код легко видно где переменные а где конструкции. Нет ограничений в названии пременных - хоть table называй. При этом в браузере выводятся только те веши в место которых чтото будет подставлена, а те вещи которые только управляют выводом не выводятся. Это моя позиция.

    Теперь объясните мне чем это неудобно для команды и других людей? Только конкретные аргументы а не общие фразы.
    PS: не один из тех кто писал скины под этот шаблонизатор не жаловался. :) Хотя может вы и правы, и может если убедите то в новых версиях сделаю иначе... Если уже есть две версии шаблонизатора (в смысле lite и полная), то может и третья появится :)
     
  9. mentanos

    mentanos Постоялец

    Регистр.:
    27 дек 2007
    Сообщения:
    128
    Симпатии:
    35
    в javascript прекрасно уживаются переменные и обозначения управляющих конструкций без всякого разделения формата их вида.

    какому идиоту придет в голову назвать переменную именем IF?

    спрашивается, что в "Простейшем шаблонизаторе" делают сразу два вида конструкций - {} и <> - есть ли в них необходимость? очевидно, необходимости нет. а раз нет необходимости, то конструкция должна быть одна - {}.

    дополнительно: с какой радости ты предлагаешь юзерам шаблонизатора слешить спецсимволы {} не обычным \, а обратным /?
     
  10. Алексей Рябченко

    Алексей Рябченко Постоялец

    Регистр.:
    9 фев 2008
    Сообщения:
    75
    Симпатии:
    2
    может вопрос и идеотский но можно, что бы не такие {} дуги, а $$, [[]] вот так например
     
Статус темы:
Закрыта.