Presentation Pattern Catalog
3 Iteration
3-1 Iterate Element Pattern
3-1-1 Description
Iteration which contains _stag, _cont, and _etag represents to iterate the element.
This pattern is named 'Iterate Element' pattern.
3-1-2 Situation
The situation is very popular which requres to print list items. This pattern is very useful for all these situations.
3-1-3 Example Code
Presentation Data:
<table> <tr id="mark:list"> <td id="mark:item">item</td> </tr> </table>
Presentation Logic:
/* iterate element */
#list {
logic: {
foreach ($list as $item) {
_stag();
_cont();
_etag();
}
}
}
#item {
value: $item;
}
Output Script:
<table>
<?php foreach ($list as $item) { ?>
<tr>
<td><?php echo $item; ?></td>
</tr>
<?php } ?>
</table>
3-1-4 Supplement
Kwartz directive kw:d="foreach(list as item)" lets you to use this pattern without presentation logic file.
See reference manual for details.
<table>
<tr kw:d="foreach($list as $item)">
<td kw:d="value($item)">item</td>
</tr>
</table>
3-2 Iterate Content Pattern
3-2-1 Description
Iteration which contains only _cont represents to iterate the content.
This pattern is named 'Iterate Content' pattern.
3-2-2 Situation
This pattern is very useful when creating <dl></dl> list or table which repeats several rows.
3-2-3 Example Code
Presentation Data:
<dl id="mark:list"> <dt id="mark:text">text</dt> <dd id="mark:desc">description</dd> </dl>
Presentation Logic:
/* iterate only content */
#list {
logic: {
_stag();
foreach ($items as $item) {
_cont();
}
_etag();
}
}
#text {
value: $item->text;
}
#desc {
value: $item->desc;
}
Output Script:
<dl>
<?php foreach ($items as $item) { ?>
<dt><?php echo $item->text; ?></dt>
<dd><?php echo $item->desc; ?></dd>
<?php } ?>
</dl>
3-2-4 Supplement
Kwartz directive kw:d=list(list as item lets you to use this pattern without presentation logic file.
See reference manual for details.
<dl kw:d="list($items as $item)"> <dt kw:d="value($item->text)">text</dt> <dd kw:d="value($item->desc)">description</dd> </dl>