ФорумПрограммированиеPHP для идиотовРасширения PHP → Smarty и кто его использует

Smarty и кто его использует

  • Ёлочник

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

    Spritz 1 мая 2008 г. 9:20, спустя 9 часов 58 минут 2 секунды


    так вот я думаю что при таком подходе рани или позно захочеться тиснуть в такой шаблон какойнибудь if , ну простите, но я б тиснул, а потом какойнибудь цыкл, потому что так можно сэкономить большой повторяющийся кусок кода…


    можно ведь вставить переменную вместо кода, а сам код вынести в скрипт и результат обработки присвоить переменной которая вставляется в шаблон
  • sap

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

    Spritz 1 мая 2008 г. 9:45, спустя 25 минут 49 секунд

    Согласен. Код в шаблонах - это что-то странное и непонятное (во всяком случае для меня).

    Ну и как вы предлагаете обойтись в шаблонах без ветвлений и циклов?
  • Sinkler

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

    Spritz 1 мая 2008 г. 9:54, спустя 8 минут 39 секунд


    Согласен. Код в шаблонах - это что-то странное и непонятное (во всяком случае для меня).

    Ну и как вы предлагаете обойтись в шаблонах без ветвлений и циклов?

    Неточно выразился.
    В посте, который я цитировал, было написано про вбивание в шаблон абсолютно ненужного там кода (или я чего-то не то прочитал?). От циклов и ветвлений в шаблонах никто не собирается отказываться, ибо потом придётся мешать шаблоны в код, а это хуже. Для этого шаблонизаторы и придумали.
  • sap

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

    Spritz 1 мая 2008 г. 10:01, спустя 7 минут 8 секунд

    Ну, возможно, тогда я неправильно понял =)
  • Sinkler

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

    Spritz 1 мая 2008 г. 14:11, спустя 4 часа 10 минут 17 секунд

    )
  • Trej Gun

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

    Spritz 3 мая 2008 г. 12:18, спустя 1 день 22 часа 6 минут

    Ну и как вы предлагаете обойтись в шаблонах без ветвлений и циклов?


    Это не реально. Хотя ладно есть один способ избавиться от циклов))) рекурсия)))
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 8 ноября 2008 г. 2:06, спустя 188 дней 14 часов 47 минут

    Вы так спорите о шаблонах, нативные не нативные…
    Уж смотря как и для кого…..тоесть какойто товарищь выше сказал уже, как мол шаблон ублюдски дудет смотреться если там много пхп кода…..
    Хорошо если над проектом работаешь ты один…..но если уж хотябы 2е(дизайнер и кодер)?…..как для дизайнера по-вашему будет смотреться это месиво из пхп-кода на хтмл-темплейте?….
    если уж товарищу синклеру ужасно (а он я так понимаю - кодер), то шо говорить за хтмл-верстальщика не говоря уже о дизайнере?…для этого в самых началах мана смарти и наводится понятие разделение логики приложения и представления…
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 8 ноября 2008 г. 3:01, спустя 55 минут 22 секунды

    как для дизайнера по-вашему будет смотреться это месиво из пхп-кода на хтмл-темплейте?


    так же, как и месиво из smarty-кода. Разница только в тегах ([tt]{}[/tt] и [tt]<??>[/tt])
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 8 ноября 2008 г. 4:53, спустя 1 час 51 минуту 49 секунд

    У меня такая конструкция исползуется.
    switch($_GET['page'])
    {

    }


    В зависимости от того какой тип страницы просматривается,
    запускаются необходимые функции и необходимыи переменным присваиваются значения. И title и все остальное.
    А потом подгружается шаблон

    тут у меня 2 варианта
    include("index.tpl"); //или еще какой нибудь.
    или
    echo file_get_contents();

    в нем соответственно:
    <title><?php echo $title;?></title>
    и
    "<title>$title</title>"




    Теперь жду всех мнений по этому.
    Плохо это или хорошо?
  • sap

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

    Spritz 8 ноября 2008 г. 8:51, спустя 3 часа 57 минут 38 секунд

    Rotten, сравнивайте:
    1. Smarty

    {if $photos}
    <table border="0" align="center" width="100%">
    <tr>
    {assign var="i" value="0"}
    {foreach from=$photos item="v"}
    {if $i lt 3}
    <td align="center">
    <a href="/photo/{$v.id}">
    <img src="/preview/{$v.id}" border="0" alt="{$v.title}">
    </a> <br />
    <a href="/photo/{$v.id}"> {$v.title} </a>
    </td>
    {assign var="i" value=$i+1}
    {else}
    </tr>
    <tr>
    <td align="center">
    <a href="/photo/{$v.id}">
    <img src="/preview/{$v.id}" border="0" alt="{$v.title}">
    </a> <br />
    <a href="/photo/{$v.id}"> {$v.title} </a>
    </td>
    {assign var="i" value="1"}
    {/if}
    {/foreach}
    </table>
    {/if}

    2. Нативные:
    <?if ($this->photos):?>
    <table border="0" align="center" width="100%">
    <?for ($j = 0; $j < count ($this->photos); $j+=3):?>
    <tr>
    <?for ($i = j; $i < j + 3; $i++):?>
    <td align="center">
    <a href="/photo/<?=$this->photos[$i]['id']?>">
    <img src="/preview/<?=$this->photos[$i]['id']?>"
    border="0" alt="<?=$this->photos[$i]['title']?>">
    </a> <br />
    <a href="/photo/<?=$this->photos[$i]['id']?>">
    <?=$this->photos[$i]['title']?> </a>
    </td>
    <?endfor?>
    </tr>
    <?endfor?>
    </table>
    <?endif?>

    3. На закуску — откомпилированный Smarty:
    <?php if ($this->_tpl_vars['photos']): ?>
    <table border="0" align="center" width="100%">
    <tr>
    <?php echo smarty_function_assign
    (array('var' => 'i','value' => '0'), $this);?>
    <?php if (count($_from = (array)$this->_tpl_vars['photos'])):
    foreach ($_from as $this->_tpl_vars['v']):
    ?>
    <?php if ($this->_tpl_vars['i'] < 3): ?>
    <td align="center">
    <a href="/photo/
    <?php echo $this->_tpl_vars['v']['id']; ?>
    ">
    <img src="/preview/
    <?php echo $this->_tpl_vars['v']['id']; ?>
    " border="0" alt="<?php echo $this->_tpl_vars['v']['title']; ?>
    ">
    </a> <br />
    <a href="/photo/
    <?php echo $this->_tpl_vars['v']['id']; ?>
    "> <?php echo $this->_tpl_vars['v']['title']; ?>
    </a>
    </td>
    <?php echo smarty_function_assign
    (array('var' => 'i',
    'value' => $this->_tpl_vars['i']+1), $this);?>
    <?php else: ?>
    </tr>
    <tr>
    <td align="center">
    <a href="/photo/
    <?php echo $this->_tpl_vars['v']['id']; ?>
    ">
    <img src="/preview/
    <?php echo $this->_tpl_vars['v']['id']; ?>
    " border="0" alt="<?php echo $this->_tpl_vars['v']['title']; ?>
    ">
    </a> <br />
    <a href="/photo/
    <?php echo $this->_tpl_vars['v']['id']; ?>
    "> <?php echo $this->_tpl_vars['v']['title']; ?>
    </a>
    </td>
    <?php echo smarty_function_assign
    (array('var' => 'i',
    'value' => '1'), $this);?>
    <?php endif; ?>
    <?php endforeach; unset($_from); endif; ?>
    </table>


    Подробнее на эту тему:
    http://s-a-p.in/interactive/theme/about-templates-part-one
    http://s-a-p.in/interactive/theme/about-templates-part-two
  • sap

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

    Spritz 8 ноября 2008 г. 9:18, спустя 27 минут 15 секунд

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 8 ноября 2008 г. 9:19, спустя 36 секунд

    Да, только у меня сразу пхп, а смарти еще свои знаки в пхп переводит и только потом выполняет операции.
  • md5

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

    Spritz 8 ноября 2008 г. 9:25, спустя 6 минут 32 секунды

    синтаксис смарти лучше
    все вы здесь показываете простейшие случаи, когда в нативах у вас <?php for ?> и т.д. все красиво и легко
    у самого используются в последних двух немаленьких проектах нативы, никакой радости или удовлетворения не получил!

    sap, твой шаблон смарти выглядит так из-за невладения мануалом, в смарти существует {cycle}

    в смарти существуют модификаторы, которые выглядят гораздо легче воспринимаются, чем нагромажденные обертки функциями

    вобщем, я не говорю, что смарти-подобные шаблонизаторы это круто, я просто пытаюсь восстановить равенство, когда закидывают гавно смарти, показывая с лучших сторон нативы, которые я считаю грязью

    сейчас вобще прийдет AlexB и скажит, что вы все мальчики, крутые перцы юзают Blitz :)
    (фак о котором он так и не написал, несмотря на многочисленные обещания :))
    все умрут, а я изумруд
  • AlexB

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

    Spritz 8 ноября 2008 г. 9:35, спустя 9 минут 29 секунд


    сейчас вобще прийдет AlexB и скажит, что вы все мальчики, крутые перцы юзают Blitz :)
    (фак о котором он так и не написал, несмотря на многочисленные обещания :))
    Ага, скажу. :)))))
    Каюсь, задержка с моей стороны есть. Тут проблемы в личной жизни большие были, но вроде все налаживается.
    Так что даю еще одно обещание, что скоро, скоро все будет ))))))))))))
  • sap

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

    Spritz 8 ноября 2008 г. 9:46, спустя 10 минут 49 секунд

    md5, покажи мне реализацию деревьев на Смарти.

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