ФорумПрограммированиеPHP для идиотовРасширения PHP → как сгенерить вложенный список(неограниченной вложенности) с помщью XTPL

как сгенерить вложенный список(неограниченной вложенности) с помщью XTPL

  • set

    Сообщения: 4 Репутация: N Группа: Кто попало

    Spritz 25 июня 2009 г. 17:57

    сталкнулся с проблемой
    хотелось бы получить список неограниченной вложенности
    используя шаблон xtpl


    что то типа такого… меню короче
    Item1
    Item2
    Item2.1
    Item2.2
    Item2.3
    Item2.4
    Item2.4.1
    Item2.4.2
    Item2.4.3
    Item2.4.4
    Item2.4.5
    Item2.5
    Item3
    Item4

    на первый взгляд все вроде элементарно
    написал шаблон

    <!– BEGIN: leftmenu –>
    <!– BEGIN:mroot –>
    <ul class="mroot">
    <!– BEGIN:mrootrow –>
    <li><a class="mroot" href="{MENULINK}">{MENUTEXT}</a>
    <!– END:mrootrow –>
    </ul>
    <!– END:mroot –>

    <!– BEGIN:msection –>
    <ul class="msection">
    <!– BEGIN:msectionrow –>
    <li><a href="{MENULINK}">{MENUTEXT}</a>
    <!– END:msectionrow –>
    </ul>
    <!– END:msection –>
    <!– END: leftmenu –>


    написал функцию которая рекурсивно вызываю саму себе пробегает по всем вложенным спискам… только вот ведь какая засана- шаблоны то парсятся блоками… и выходит что списки не вкладываются в друг друка а выводятся друг за другом… неужели придется разбивать шаблон на более мелкие части… Google и поиск по сайту мало чем помогли

    задача достаточно распространенная, и я подумал вдруг кто сталкивался с подобной заморочкой…
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 17:58, спустя 1 минуту 10 секунд

    set, юзай xslt шаблонизатор и не еби мог с блочными)
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 18:03, спустя 5 минут 34 секунды

    set, помоему хтемплейтом так незя
    Спустя 130 сек.
    смотри

    function parse($array){
    foreach($array as $k => $v)
    if (is_array($v))
    parse($v)
    else
    $t->assign($v)
    $t->parse("*.tpl")
    }


    пробуй
  • set

    Сообщения: 4 Репутация: N Группа: Кто попало

    Spritz 25 июня 2009 г. 18:19, спустя 15 минут 6 секунд

    я примерно так и делал… неполучается…
    без <ul> все в столбик вперемешку
    c <ul> блок за блоком (нет вложенности)
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 19:00, спустя 40 минут 59 секунд

    set, там была функция для принудительной отдачи чтото типа out
    Спустя 15 сек.
    пробуй
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 22:06, спустя 3 часа 6 минут 40 секунд

    если не получается зайди в дверь, зайди через окно.
    переформулируй задачу таким образом, чтобы у тебя был один цикл без рекурсии + обработчики специальных случаев: начало под-меню и конец под-меню.
    понадобится функция препроцессор разворачивающая граф в плоский список. каждый элемент списка будет иметь признаки начало/конец, может быть еще имя класса.
    понятно выразился?
    ιιlllιlllι унц-унц
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 11:47, спустя 13 часов 40 минут 38 секунд

    artoodetoo, ебанись какой граф?! тут вышка тока у 4 человек
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 11:50, спустя 3 минуты 9 секунд

    CTAPbIu_MABP, у 4 человек и меня)))
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 11:54, спустя 3 минуты 55 секунд

    md5, 4 это вместе с тобой
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 12:18, спустя 24 минуты 34 секунды

    CTAPbIu_MABP, у меня почти, я перед дипломом ушел :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 12:24, спустя 5 минут 57 секунд

    adw0rd, почти не считается
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 12:28, спустя 3 минуты 6 секунд


    adw0rd, почти не считается
    +1 )
    все умрут, а я изумруд
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 12:57, спустя 29 минут 14 секунд

    CTAPbIu_MABP, по крайней мере я знаю что такое графы, имеется в виду
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 26 июня 2009 г. 13:10, спустя 13 минут 9 секунд

    adw0rd, да я тоже знаю что это не титул, но посчитать не смогу
  • set

    Сообщения: 4 Репутация: N Группа: Кто попало

    Spritz 26 июня 2009 г. 15:56, спустя 2 часа 46 минут 13 секунд


    artoodetoo, ебанись какой граф?! тут вышка тока у 4 человек


    аха… тада у пяти человек…  давно это было
    хотя то что предлагает artoodetoo вполне понятно и я уже так пробовал (передварительно переписав шаблон)…
    без рекурсии или с ней все упирается в XTemplate… похоже что гдето я ошибаюсь в принципах работы шаблонизатора. а вот где? пока не понял…

Пожалуйста, авторизуйтесь, чтобы написать комментарий!