Инструменты пользователя

Инструменты сайта


limb3:ru:packages:wact:list_tags

Вывод списков

WACT-теги для вывода списков

Для вывода списков в шаблонах используется группа тегов ListTags.

 <table border="1">
   <tr>
    <th></th>
    <th>Название</th>
    <th>Объем, л</th>
    <th>Вес, кг</th>
   </tr>
 <list:list id="table">
   <list:item>
   <tr>
    <td>{$:ListRowNumber}</td>
    <td>{$name}</td>
    <td>{$volume}</td>
    <td>{$weight}</td>
   </tr>
   </list:item>
  <list:default>
  <tr><td colspan='4'>Список пуст!</td></tr>
  </list:default>
 </list:list>
</table>
  • Тег <list:list> - основной тег, который выводит свое содержимое, если в активный компонент тега передали непустой список (итератор).
  • Тег <list:item> - повторяет определенную порцию шаблона по количеству элементов в итераторе тега <list:list>.
  • Тег <list:default> - выводит свое содержимое только в том случае, если список не содержит ни одного элемента.
  • Тег <list:separator> - используется для разделения одного или группы элементов в списке.
  • Предопределенное свойство {$:ListRowNumber}, которое используется внутри тега <list:item>, отображает номер элемента в списке.

В результате мы можем получить несколько результатов. Например, такой:

НазваниеОбъем, лВес, кг
1 Цистерна АБ-102 2400 340
2 Цистерна АБ-103 2000 300

Или такой:

НазваниеОбъем, лВес, кг
Список пуст!

Вывод данных в несколько столбцов

Для вывода данных в несколько столбцов можно применять тег <list:separator>, который выводит определенный кусок кода раз в несколько элементов списка.

Например:

<list:list id="images">
<table>
<tr>
 <list:item>
   <td>
    <img src='{$path}' border='0' /><br />{$title}
   </td>
   <list:SEPARATOR step="3"></tr><tr></list:SEPARATOR>
 </list:item>
</tr>
</table>
</list:list>

Позволит вывести изображения в 3 колонки.

Если вы заметили, то выбранный нами способ для списков, например, с 10 элементами сгенерирует невалидную верстку, поэтому примеры необходимо немного доработать:

<list:list id="images">
<table>
<tr>
 <list:item>
    <td>
     <img src='{$path}' border='0' /><br />{$title}
    </td>
   <list:SEPARATOR step="3"></tr><tr></list:SEPARATOR>
 </list:item>
 <list:fill upto='3' var='items_left'>
  <td colspan='{$items_left}'>&nbsp;</td>
 </list:fill>
</tr>
</table>
</list:list>

Здесь мы использовали тег <list:fill> (доступен с версии WACT 0.3), который выполняет код шаблона, только если список не содержал количество элементов, кратное числу upto. При этом тег <list:fill> заполняет переменную с именем var и ставит ее в текущий контейнер данных (будьте аккуратны с именем переменной, так как вы можете случайно затереть что-то в текущейм контейнере данных, а <list:list> не является обычным контейнером данных).

В нашем случае мы просто предпочли вывести заглушку в виде <td colspan='2'>. Мы могли бы также воспользоваться тегом <core:repeat> для генерации недостающих ячеек:

<list:list id="images">
<table>
<tr>
 <list:item>
    <td>
     <img src='{$path}' border='0' /><br />{$title}
    </td>
   <list:SEPARATOR step="3"></tr><tr></list:SEPARATOR>
 </list:item>
 <list:fill upto='3' var='items_left'>
   <core:repeat time='{$items_left}'>
   <td>
    <img src='/images/no_image.gif' alt='sorry, no image' />
   </td>
   </core:repeat>
 </list:fill>
</tr>
</table>
</list:list>

Дополнительные примеры

  • Рабочие примеры использования тегов группы <list:list> можно найти в папке limb/wact/examples/tags/list
  • см. примеры для тега <list:list>
  • см. примеры для тега <list:separator>

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   ___  ______   __    ____   ___ 
  / _ |/_  __/  / /   / __/  / _ )
 / __ | / /    / /__ / _/   / _  |
/_/ |_|/_/    /____//___/  /____/
 
limb3/ru/packages/wact/list_tags.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)