head	1.1;
access;
symbols
	caudium_1_4_9:1.1
	caudium_1_4_8:1.1
	caudium_1_4_7:1.1
	caudium_1_4_6:1.1
	caudium_1_2_35:1.1
	caudium_1_2_34:1.1
	caudium_1_4_5:1.1
	caudium_1_4_4:1.1
	caudium_1_4_3:1.1
	caudium_1_4_2:1.1
	caudium_1_5_1:1.1
	caudium_1_4_1:1.1
	stable_1_4:1.1.0.6
	caudium_1_3_33:1.1
	caudium_1_3_32:1.1
	caudium_1_3_31:1.1
	caudium_1_3_30:1.1
	caudium_1_3_29:1.1
	caudium_1_2_33:1.1
	caudium_1_2_32:1.1
	caudium_1_3_23:1.1
	caudium_1_3_22:1.1
	caudium_1_3_21:1.1
	caudium_1_3_20:1.1
	caudium_1_3_19:1.1
	caudium_1_3_18:1.1
	caudium_1_2_31:1.1
	caudium_1_2_30:1.1
	caudium_1_2_29:1.1
	caudium_1_2_28:1.1
	caudium_1_3_17:1.1
	caudium_1_3_16:1.1
	caudium_1_2_27:1.1
	caudium_1_2_26:1.1
	caudium_1_2_25:1.1
	caudium_1_2_24:1.1
	caudium_1_0_57:1.1
	caudium_1_0_56:1.1
	caudium_1_3_15:1.1
	caudium_1_3_14:1.1
	caudium_1_2_23:1.1
	caudium_1_2_22:1.1
	caudium_1_2_21:1.1
	caudium_1_2_20:1.1
	caudium_1_0_55:1.1
	caudium_1_0_54:1.1
	caudium_1_3_13:1.1
	caudium_1_3_12:1.1
	caudium_1_3_11:1.1
	caudium_1_3_10:1.1
	caudium_1_2_19:1.1
	caudium_1_2_18:1.1
	caudium_1_3_9:1.1
	caudium_1_3_8:1.1
	caudium_1_3_7:1.1
	caudium_1_3_6:1.1
	caudium_1_2_17:1.1
	caudium_1_2_16:1.1
	caudium_1_2_15:1.1
	caudium_1_2_14:1.1
	caudium_1_2_12:1.1
	caudium_1_2_10:1.1
	caudium_1_3_5:1.1
	caudium_1_3_4:1.1
	caudium_1_2_9:1.1
	caudium_1_2_8:1.1
	caudium_1_3_3:1.1
	caudium_1_2_7:1.1
	caudium_1_2_6:1.1
	caudium_1_0_53:1.1
	caudium_1_0_52:1.1
	caudium_1_0_51:1.1
	caudium_1_0_50:1.1
	caudium_1_0_45:1.1
	caudium_1_0_44:1.1
	caudium_1_0_43:1.1
	caudium_1_0_42:1.1
	Caudium_1_3_2:1.1
	caudium_1_2_5:1.1
	caudium_1_2_4:1.1
	caudium_1_0_41:1.1
	caudium_1_0_40:1.1
	caudium_1_0_39:1.1
	Caudium_1_0_38:1.1
	caudium_1_2_3:1.1
	caudium_1_2_2:1.1
	caudium_1_3_1:1.1
	caudium_1_2_1:1.1
	stable_1_2:1.1.0.2
	caudium_1_0_37:1.1
	caudium_1_0_36:1.1
	caudium_1_1_5:1.1
	caudium_1_1_4:1.1
	caudium_1_1_3:1.1
	caudium_1_1_2:1.1
	caudium_1_0_34:1.1
	caudium_1_0_32:1.1
	caudium_1_0_30:1.1
	caudium_1_0_28:1.1
	caudium_1_0_24:1.1
	caudium_1_0_22:1.1
	caudium_1_0_20:1.1
	caudium_1_0_18:1.1
	caudium_1_0_17:1.1
	caudium_1_0_16:1.1
	caudium_1_0_15:1.1
	caudium_1_0_14:1.1
	caudium_1_0_13:1.1
	caudium_1_0_12:1.1
	caudium_1_0_11:1.1
	caudium_1_0_10:1.1
	stable_1_0:1.1.0.4
	caudium_1_0_9:1.1
	caudium_1_0_8:1.1
	caudium_1_0_7:1.1
	caudium_1_0_6:1.1
	caudium_1_0_5:1.1
	caudium_1_0_4:1.1
	caudium_1_0_3:1.1
	caudium_1_0_2:1.1;
locks; strict;
comment	@# @;


1.1
date	2000.07.31.18.18.31;	author neotron;	state Exp;
branches;
next	;


desc
@@


1.1
log
@added tags...
@
text
@<kbd>{recursive-output [inside=<i>string,...</i>] [outside=<i>string,...</i>] [multisep=<i>string</i>] [limit=<i>n</i>]}<br>
...<br>
{recurse}<br>
...<br>
{/recursive-output}</kbd>

<p>This container provides a way to implement recursive output, which
is mainly useful when you want to create arbitrarily nested trees from
some external data, e.g. an SQL database. Put simply, the {recurse}
tag is replaced by everything inside and including the
{recursive-output} container. Although simple in theory, it tends to
get a little bit messy in practice.

<p>To make it work you have to pay some attention to the parsing order
of the involved tags. After the {recursive-output} container have
replace every {recurse} with itself, the whole thing is parsed again.
Therefore, to make it terminate, you must always put the {recurse}
inside a conditional container (typically an {if}) that does not
preparse its contents.

<p>So far so good, but you'll almost always want to use some sort of
output container, e.g. {formoutput} or {sqloutput}, together with this
tag, which makes it slightly more complex due to the necessary
treatment of the quote characters. Since the contents of
{recursive-output} is expanded two levels at any time, each level
needs its own set of quotes. To accomplish this, {recursive-output}
can rotate two quote sets which are specified by the `inside' and
`outside' arguments. Each time a {recurse} is replaced, every string
in the `inside' set is replaced by the string in the corresponding
position in the `outside' set, then the two sets trade places. Thus,
you should put all quote characters you use inside {recursive-output}
in the `inside' set and some other characters that doesn't clash with
anything in the `outside' set. You might also have to quote the quote
characters when writing these sets, which is done by doubling them.

<p>If `multisep' is given, its value is used as the separator between
the strings in the two sets. It defaults to ','.

<p>The `limit' argument specifies the maximum nesting depth. As a
safeguard it defaults to 100.
@
