ФорумПрограммированиеPHP для идиотовРасширения PHP → Smarty. Обход цикла и определение каждой 4-ой итерации

Smarty. Обход цикла и определение каждой 4-ой итерации

  • adw0rd

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

    Spritz 9 ноября 2009 г. 2:20

    Подскажите, как мне определять каждую 4-ую итерацию в смарти, чтобы вставлять разделитель?

    В Django это выглядит так:

    <li {% if forloop.counter0|divisibleby:&quot;4&quot; %} style=&quot;clear:both&quot; {% endif %}>
    <a href=&quot;/book/{{ book.id }}/&quot;><img src=&quot;/{{ book.preview }}&quot; />
    <h2>{{ book.title }}</h2></a>
    </li>
    adw/0
  • phpdude

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

    Spritz 9 ноября 2009 г. 2:24, спустя 3 минуты 41 секунду

    http://smarty.net/manual/ru/language.function.foreach.php



    Циклы {foreach} также имеют собственные переменные, которые содержат свойства {foreach}. Они обозначаются так: {$smarty.foreach.foreachname.varname} {$smarty.foreach.foreachname.varname}, где foreachname - это название цикла (значение атрибута name).

    iteration

    iteration используется для отображения текущего номера итерации цикла. Итерации всегда начинаются с 1 и увеличиваются на одну при каждом прохождении цикла.
    first

    first устанавливается в true, если текущая итерация первая.
    last

    last устанавливается в true, если текущая итерация последняя.
    show

    Атрибут show может принимать логические значения (истина или ложь). Если ложь, то цикл foreach не будет отображаться. Если присутствует тэг foreachelse, то он будет отображен.
    {+++15+++} не за что)
    Сапожник без сапог
  • adw0rd

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

    Spritz 9 ноября 2009 г. 2:27, спустя 3 минуты 20 секунд

    phpdude, это я уже читал, но это не ответ на вопрос. Как тут определить каждую 4-ую итерацию?
    {foreach from=$products item=product}
    title: {$product.title}<br />
    generic: {$product.generic}<br />
    strength: {$product.strength}<br />
    strength_comment: {$product.strength_comment}<br />
    price: {$product.price}<br />
    <br />
    {/foreach}
    {+++79+++} Как сюда вставить конструкцию

    {% if forloop.counter0|divisibleby:&quot;4&quot; %}ЭТО 4-АЯ ИТЕРАЦИЯ {% endif %}
    adw/0
  • adw0rd

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

    Spritz 9 ноября 2009 г. 2:32, спустя 5 минут 28 секунд

    Нашел, что-то примерно такое:

    {if $smarty.section.i.index is div by 4}
    4-ая
    {/if}
    adw/0
  • adw0rd

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

    Spritz 9 ноября 2009 г. 2:41, спустя 8 минут 17 секунд

    Еще так можно:
    {if $smarty.foreach.products.index % 4 == 0}
    adw/0
  • adw0rd

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

    Spritz 9 ноября 2009 г. 2:46, спустя 5 минут 25 секунд

    Но вообще, лучше использовать iteration, а не index, ибо index как правило начинается с нуля.
    Вот готовый пример сценария:


    {foreach from=$products item=product name=products}

    title: {$product.title}<br />
    generic: {$product.generic}<br />
    strength: {$product.strength}<br />
    strength_comment: {$product.strength_comment}<br />
    price: {$product.price}<br />

    {if $smarty.foreach.products.iteration % 4 == 0}
    — this {$smarty.foreach.products.iteration} iteration —<br>
    {/if}

    {/foreach}
    adw/0
  • phpdude

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

    Spritz 9 ноября 2009 г. 3:05, спустя 18 минут 39 секунд

    {if $smarty.foreach.products.iteration % 4 == 0}

    прости, я просто дума что a % b ты сам сообразишь ))))))))))))))))))

    зы: без обид чмоке)
    Сапожник без сапог
  • 15 января 2017 г. 5:19, спустя 2624 дня 2 часа 14 минут

    Пользователь был удалён, сообщения недоступны


  • 15 января 2017 г. 15:26, спустя 10 часов 7 минут 13 секунд

    Пользователь был удалён, сообщения недоступны


  • 16 января 2017 г. 0:40, спустя 9 часов 14 минут 4 секунды

    Пользователь был удалён, сообщения недоступны


  • 16 января 2017 г. 13:41, спустя 13 часов 14 секунд

    Пользователь был удалён, сообщения недоступны


  • 27 июня 2017 г. 1:45, спустя 161 день 11 часов 3 минуты

    Пользователь был удалён, сообщения недоступны


  • 4 июля 2017 г. 7:24, спустя 7 дней 5 часов 38 минут

    Пользователь был удалён, сообщения недоступны


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