За последние 24 часа нас посетили 26589 программистов и 1545 роботов. Сейчас ищут 910 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем Freakmeister, 5 дек 2013.

  1. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    хех ;)) сказал "А", так подкрепи сырцом ;)
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    у меня буквы кончаются
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Готово!
    [​IMG]
     
  4. Freakmeister

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

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    А мне так и не помогли выбрать шаблонизатор, чтобы он крутил циклы с минимальным синтаксисом в шаблоне. =(
    Ещё кстати проблема с циклами - если в цикле пусто, то "обертыш" всё-равно будет выводится. Для этого в шаблоне приходится добавлять ещё одно условие, что тоже засирает шаблон логикой. А я хочу чтоб в шаблоне всё было минималистично и не засрано. =\

    Добавлено спустя 4 минуты 19 секунд:
    Кстати, а может запилить свой шаблонизатор на регулярках, чтобы он искал элемент с нужным классом и выводил цикл в него, а при пустом цикле убирал элемент? Тогда в шаблон достаточно будет добавить класс, как-нибудь связанный с обработчиком шаблона. Например, можно попробовать связать имя класса с именем массива, который должен выводится в элемент.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чувак, у тебя юношеский максимализм на старости лет

    Добавлено спустя 42 секунды:
    так и стоит поступить! никого не слушай, верь своему сердцу! (и перцу)
     
  6. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
  7. Freakmeister

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

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    d1gi, та же абракадабра, как и смарти. Если цикл пуст, то ul останется.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Пэхэпэ пехепе
    Пехепе пэхэпэ...
     
  9. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Мне кажется, или все это делается на чистом php вот точно так же? ВТФ?
     
  11. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    Fell-x27, принцип конечно же тот же... т.е. если надо что-то проверить, то if, если в цикле прогнать, то for, но в пхп ручками надо всё экранировать, в пхп будет очень избыточнок кол-во симфоволов с открыванием и закрыванием тэгов, а вот наследование и блоки реализовать на пхп будет очень непросто... по этому остаётся твиг :) а для экзотичности есть фалконовский вольт с почти таким же синтаксисом и возможностями...
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Наследование шаблонов вряд ли.
    только не понимаю когда оно надо
     
  13. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    Игорь, есть базовый шаблон, в нём все фрагменты оформлены в виде блоков, если нам надо на базе этого же шаблона что-то подменить, то он наследуется и подменяется только нужный блок, очень удобно :) а вообще я уже даже не представляю как выводить данные без наследования... а копипастить как-то лень, да и вообще не тру это...
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я просто не вкурю когда надо менять
     
  15. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    дык элементарно, Ватсон :) есть базовый шаблон, на одной странице надо разместить текст, а на другой вывести список новостей, вот и подменяется блок content, а еще title, чтобы загловки разные были :)
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В общем шаблонизаторы нужны, чтобы исправить проблемы кривожопой архитектуры и последствия быдломакаронной разработки. Ок.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Погоди. Ты серьёзно ЭТО называешь наследованием? о_О
     
  18. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    ага ;)) приведи пример кода, как бы ты сделал :)
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Для начала я бы хотел уточнить что ты подразумеваешь под разными заголовками
     
  20. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    или я ничо не понимаю, или сие наследование решается во вьюхе принципом:
    if (isset($content)), то чегонибудь с контентом делаем, if (isset($block)) то например тянем ещеодну вьюху, в которой чегонить другое.
    хрень кароче )
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если задать их изначально то можно и короче. if ($content)

    Но то что описал диджи это просто основная функция шаблона. Одного шаблона.
     
  22. Freakmeister

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

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Пффф... Я у себя сделал модульную систему, которая не натягивает шаблон автоматически, шаблон натягивается в самом модуле, вызовом функции в самом конце. У меня весь контент сначала пишется в переменные, и только в самом конце один раз выводиться в echo, поэтому по ходу контент можно формировать как угодно. Таже самая функция натягивает шаблоны на блоки в сайдбарах, так что можно задать и блокам разное оформление. Пример: http://red-squadron.ru/

    Код (PHP):
    1. function render_block($title, $content, $template='block') {
    2. global $_P, $_S;
    3.     $output = file_get_contents($_P['path'].'styles/'.$_S['style'].'/templates/'.$template.'.html');
    4.     
    5.     $output = str_replace('{P_TITLE}', $title, $output);
    6.     $output = str_replace('{P_CONTENT}', $content, $output);
    7.     
    8. return $output;
    9. }
    Добавлено спустя 5 минут 23 секунды:
    Вот у меня точно такие же мысли возникают. Все шаблонизаторы что я пока попробовал это тот же самый PHP, только с чуть более коротким синтаксисом. Шило на мыло, по-моему, да ещё и в ущерб производительности. Ниужели никто до сих пор не придумал своего уникально синтаксиса, вместо того чтобы просто "перекрашивать" PHP?
     
  23. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Народ, походу, прикалывает делать более лаконичные if-ы, отдавая по паре метров оперативы за них, только и всего.
     
  24. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
  25. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Не, ну что-то в шаблонизаторах, конечно, есть. У меня есть один заказчик, который любит шаблоны для сайтов писать сам - типа, вы мне сделайте всю логику, и дайте данные в переменных, какие мне нужны, а я выведу. И вот PHP ему не поднять, а смарти он сам умудрился освоить. В админке его самописного сайта правда при редактировании шаблонов он просит выводить подсказки по использованию переменных.

    Правда, самому мне нравится писать шаблоны на чистом PHP, но со смарти приходится работать из-за некоторых CMS