blob: e51580762166ae3f1dbd27b91290753ccb3a1660 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<html>
<!-- $Id$ -->
<title>mod_dtcl examples</title>
<body bgcolor=white>
<table bgcolor=black width=100%>
<tr>
<td align=center>
<font size=40 color=#ffffff>
<b>mod_dtcl examples</b>
</font>
</td>
</tr>
</table>
<p>
These are some examples, rather limited ones, of what can be done with mod_dtcl.
<p>
<table>
<tr><td><hr><b>Hello world</b></td></tr>
<tr><td bgcolor=gray><pre>
&lt;?
headers setcookie "foo" "bar" # we have to put this before any 'hputs' statements
# once buffering is switched off, it is no longer possible to
# maninuplate headers
buffered off
hputs "Hello world"
?&gt;
</pre>
</td></tr>
<tr><td>
Produces:
<p>
<?
headers setcookie "foo" "bar"
# once buffering is switched off, it is no longer possible to
# maninuplate headers
buffered off
hputs "hello world"
?>
<p>
</td></tr>
<tr><td><hr>
<b>Conditionals:</b>
</td></tr>
<tr><td bgcolor=gray><pre>
&lt;? if { 1 } { ?&gt;
&lt;h2&gt; True &lt;/h2&gt;
&lt;? } ?&gt;
</td></tr></pre>
<tr><td>
Produces:
<p>
<? if { 1 } { ?>
<h2> True </h2>
<? } ?>
</td></tr>
<tr><td><hr><b>Loops:</b>
</td></tr>
<tr><td bgcolor=gray><pre>
&lt;?
set x 0
while { $x &lt; 5 } {
hputs "\$x = $x&lt;br>"
incr x
?&gt;
LOOP&lt;br>
&lt;? } ?&gt;
</pre>
</td></tr>
<tr><td>Produces:<p>
<?
set x 0
while { $x < 5 } {
hputs "\$x = $x<br>"
incr x
?>
LOOP<BR>
<? } ?>
</td></tr>
<tr><td><hr><b>Variables (environmental as well as those passed to the script)</b><p>
</td></tr>
<tr><td bgcolor=gray><pre>
&lt;?
hgetvars
if { [ array exists VARS ] } {
hputs "&lt; ul>"
foreach { vr } [ array names VARS ] {
hputs "&lt;li>(VARS) $vr = $VARS($vr)"
}
hputs "&lt;/ul>"
}
if { [ array exists ENVS ] } {
hputs "&lt;ul>"
foreach { vr } [ array names ENVS ] {
hputs "&lt;li>(ENVS) $vr = $ENVS($vr)"
}
hputs "&lt;/ul>"
}
if { [ array exists COOKIES ] } {
hputs "&lt;ul>"
foreach { vr } [ array names COOKIES ] {
hputs "&lt;li>(COOKIES) $vr = $COOKIES($vr)"
}
hputs "&lt;/ul>"
}
?&gt;
</pre>
</td></tr>
<tr><td>Produces:<p>
<?
hgetvars
if { [ array exists VARS ] } {
hputs "<ul>"
foreach { vr } [ array names VARS ] {
hputs "<li>(VARS) $vr = $VARS($vr)"
}
hputs "</ul>"
}
if { [ array exists ENVS ] } {
hputs "<ul>"
foreach { vr } [ array names ENVS ] {
hputs "<li>(ENVS) $vr = $ENVS($vr)"
}
hputs "</ul>"
}
if { [ array exists COOKIES ] } {
hputs "<ul>"
foreach { vr } [ array names COOKIES ] {
hputs "<li>(COOKIES) $vr = $COOKIES($vr)"
}
hputs "</ul>"
}
?>
</td></tr>
<tr><td><hr><b>Create a table on the fly</b><p>
</td></tr>
<tr><td bgcolor=gray><pre>
&lt;?
set i 1
hputs "&lt;table&gt;\n"
while { $i &lt;= 8 } {
hputs "&lt;tr&gt;\n"
for {set j 1} {$j &lt;= 8} {incr j} {
set num [ expr $i * $j * 4 - 1]
hputs [ format "&lt;td bgcolor=%2x%2x%2x &gt; $num $num $num &lt;/td&gt;\n" $num $num $num ]
}
incr i
hputs "&lt;/tr&gt;\n"
}
hputs "&lt;/table&gt;\n"
?&gt;
</pre>
</td></tr>
<tr><td>Produces:<p>
<?
set i 1
hputs "<table>\n"
while { $i <= 8 } {
hputs "<tr>\n"
for {set j 1} {$j <= 8} {incr j} {
set num [ expr {$i * $j * 4 - 1} ]
hputs [ format "<td bgcolor=%2x%2x%2x > $num $num $num </td>\n" $num $num $num ]
}
incr i
hputs "</tr>\n"
}
hputs "</table>\n"
?>
</td></tr>
<tr><td><hr> <b>In addition</b><br>
There are many, many other things you can do with mod_dtcl. You can,
if everything is compiled right, load tcl modules, like libpgtcl.so
(the Postgresql interface), so that you can interact with a database!
<p>
</td></tr>
</table>
<? dtcl_info ?>
<p>
<a href="index.rvt">Return to the mod_dtcl homepage</a>
</p>
</body>
</html>