<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="robots" content="all" />
<title>opt:separator - Open Power Template</title>
<link rel="stylesheet" type="text/css" href="design/generic.css" media="all" />
<link rel="stylesheet" type="text/css" href="design/print.css" media="print" />
<!--[if lte IE 6]><link rel="stylesheet" href="design/ie.css" type="text/css" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="design/ie7.css" type="text/css" /><![endif]-->
</head>
<body>
<div id="wrap">
<div id="header">
<h1>Open Power Template 2.0</h1>
<h2>opt:separator</h2>
<p class="generated">@ 02.09.2010</p>
<p class="location"><a href="index.html"><strong>User manual</strong></a> » <a href="syntax.html">Template syntax</a> » <a href="syntax.instructions.html">Instructions</a> » <a href="syntax.instructions.separator.html">opt:separator</a></p>
</div>
<div id="content"><dl class="location"><dt><a href="syntax.instructions.html">3.7. Instructions</a><br/>3.7.21. opt:separator</dt><dd class="prev">3.7.20. opt:selector<br/><a href="syntax.instructions.selector.html">« Previous</a></dd><dd class="next">3.7.22. opt:show<br/><a href="syntax.instructions.show.html">Next »</a></dd></dl> <h1>3.7.21. opt:separator</h1><p><code>opt:separator</code> instruction can be used only within loop instructions. It allows to define a content that is displayed between every two iterations of the loop. It takes no attributes:</p>
<pre class="xml"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:repeat</span> <span style="color: #000066;">times</span>=<span style="color: #ff0000;">"5"</span><span style="color: #000000; font-weight: bold;">></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:separator<span style="color: #000000; font-weight: bold;">></span></span></span> / <span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:separator<span style="color: #000000; font-weight: bold;">></span></span></span>
{$opt.repeat}
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:repeat<span style="color: #000000; font-weight: bold;">></span></span></span></pre>
<p>The code above produces the following result:</p>
<pre><code>1 / 2 / 3 / 4 / 5
</code></pre>
<p>As we can see, the separator content apears neither before the first element nor after the last one.</p>
<h2>Attribute version</h2>
<p>The separators can be defined with an extra loop instruction attribute, <code>separator</code> that takes any expression as its value. By switching to the <code>str</code> namespace, we may define a static separator, or stay in the default one to read it from variable:</p>
<pre class="xml"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:repeat</span> <span style="color: #000066;">times</span>=<span style="color: #ff0000;">"5"</span> <span style="color: #000066;">str:separator</span>=<span style="color: #ff0000;">" / "</span><span style="color: #000000; font-weight: bold;">></span></span>
{$opt.repeat}
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:repeat<span style="color: #000000; font-weight: bold;">></span></span></span></pre>
<p>This code will produce the same code, as the first example. Below, we can see, how to load the separator from a variable:</p>
<pre class="xml"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:repeat</span> <span style="color: #000066;">times</span>=<span style="color: #ff0000;">"5"</span> <span style="color: #000066;">separator</span>=<span style="color: #ff0000;">"$separatorDef"</span><span style="color: #000000; font-weight: bold;">></span></span>
{$opt.repeat}
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:repeat<span style="color: #000000; font-weight: bold;">></span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:repeat</span> <span style="color: #000066;">times</span>=<span style="color: #ff0000;">"5"</span><span style="color: #000000; font-weight: bold;">></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:separator<span style="color: #000000; font-weight: bold;">></span></span></span>{$separatorDef}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:separator<span style="color: #000000; font-weight: bold;">></span></span></span>
{$opt.repeat}
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:repeat<span style="color: #000000; font-weight: bold;">></span></span></span></pre>
<p>Note that the <code>opt:separator</code> tag allows to create more sophisticated separators constructed from other instructions. In the last example, we see a dynamic separator that grows during the execution:</p>
<pre class="xml"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:repeat</span> <span style="color: #000066;">times</span>=<span style="color: #ff0000;">"5"</span><span style="color: #000000; font-weight: bold;">></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"><opt:separator<span style="color: #000000; font-weight: bold;">></span></span><span style="color: #000000; font-weight: bold;"><opt:repeat</span> <span style="color: #000066;">times</span>=<span style="color: #ff0000;">"$opt.repeat"</span><span style="color: #000000; font-weight: bold;">></span></span>-<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:repeat<span style="color: #000000; font-weight: bold;">></span></span><span style="color: #000000; font-weight: bold;"></opt:separator<span style="color: #000000; font-weight: bold;">></span></span></span>
{$opt.repeat}
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;"></opt:repeat<span style="color: #000000; font-weight: bold;">></span></span></span></pre>
<p>The result:</p>
<pre><code>1-2--3---4----5
</code></pre>
<h4>See also:</h4><ul><li><a href="syntax.topics.sections.html">3.9.1. Sections</a></li><li><a href="syntax.instructions.repeat.html">3.7.17. opt:repeat</a></li><li><a href="syntax.instructions.for.html">3.7.8. opt:for</a></li><li><a href="syntax.instructions.foreach.html">3.7.9. opt:foreach</a></li></ul><dl class="location location-bottom"><dt>3.7.21. opt:separator<br/><a href="syntax.instructions.html">3.7. Instructions</a></dt><dd class="prev"><a href="syntax.instructions.selector.html">« Previous</a><br/>3.7.20. opt:selector</dd><dd class="next"><a href="syntax.instructions.show.html">Next »</a><br/>3.7.22. opt:show</dd></dl> </div>
<div id="footer">
<p>Copyright © <a href="http://www.invenzzia.org/">Invenzzia Group 2008-2009</a></p>
<p>Available under the terms of license: <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License 1.2</a></p>
<p>Generated by <strong>TypeFriendly 0.1.4</strong> by <a href="http://www.invenzzia.org/">Invenzzia</a></p>
</div>
</div>
</body>
</html>