За последние 24 часа нас посетили 49497 программистов и 1695 роботов. Сейчас ищут 1290 программистов ...

Вопрос. Шаблонизатор с несколькими условиями

Тема в разделе "Прочие вопросы по PHP", создана пользователем EvelRus, 17 окт 2009.

  1. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Ребят, помогите навоять шаблонизатор, даже не знаю с чего начать... в общем задача:

    Хочу сделать tpl файл с формой регистрации в формате:
    Код (Text):
    1. <body>
    2. <form action="" name="">
    3. <!-- {*FORM_BEGIN*} -->
    4. {INPUT_NAME}: <input type="{INPUT_TYPE}" name="{INPUT_NAME_INPUT}" value="{INPUT_VALUE}" >
    5. <!-- {*FORM_END*} -->
    6. </form>
    7. </body>
    Где {INPUT_NAME} и все такие берется из БД, но задача... выполнить все что находиться между <!-- {*FORM_BEGIN*} --> и <!-- {*FORM_END*} -->заданное количество раз (по кол-ву элементов в БД), а ткаже с учетом некоторых модификаторов, например какие-то поля обязательны для заполнения, какие-то появляются при регистрации и так далее... все данные о типе, виде вывода находятся в БД

    Собственно вопрос, как это организовать?

    Смарти не предлагать )

    UP: желательно без наворотов ООП, ибо я его не знаю совсем
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Может лучше ООП все же выучить?

    Или выкинь FORM_BEGIN
    и воткни нормальный for/foreach в темплейт.
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    вот это подробнее
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Мгм. А что тут подробнее? Режешь темплейт на две части.
    1 - основная разметка.
    2 - небольшие блоки которые требуют отдельной обработки (например, повторения в цикле).

    В основной разметке
    PHP:
    1. <?php
    2. for() {
    3.    render('partial.tpl', $vars);
    4. }
    5. ?>
    В блоке
    Код (Text):
    1. {INPUT_NAME}: <input type="{INPUT_TYPE}" name="{INPUT_NAME_INPUT}" value="{INPUT_VALUE}" >
     
  5. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Можешь посмотреть как это организовано в ZF

    Layout + View + View_Helper_Partial
     
  6. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    не нашел описания функции render ((((
     
  7. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    да я ее от балды написал просто пример.

    Она выполняет подстановку из $vars в плейсхолдеры. Если ты хочешь ими пользоваться.

    http://framework.zend.com/manual/en/zen ... lpers.html