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

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

  • Ёлочник

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

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


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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

    )
  • Trej Gun

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

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

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


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

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

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

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

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

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

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


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

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

    Spritz 8 ноября 2008 г. 7: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

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

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

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

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

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

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

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

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

  • Professor

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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