<!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">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Tcl Scripts</title>
    <link rel="stylesheet" href="../css/wondrous/styles.css" type="text/css" />
</head>

<body>
    <div id="container">
        <div id="header">
            <h1><a href="../index.html">Rivet</a></h1>
            <h2 id="slogan">Webscripting for Tcl'ers</h2>
            <div class="clear"></div>
        </div>
        <div id="body">
            <div id="content">
                <h2><headline>Tcl Scripts</headline>
</h2>
                <div>
 <p>
		    Pure Tcl scripts let you do the heavy lifting to control your application. A sensible 
		    design pattern is to put most of your complex logic in these files, and then parse template 
		    files to display the results. This means that those who are creating the HTML files don't 
		    have to know much Tcl, and only need to call a few simple commands.
		</p>
 <p>
  <pre class="programlisting">proc chat::model::getlines {user} {
    set sk [chat::model::getsock]
    puts $sk [list user $user cmd get msg ""]
    if { ! [eof $sk] } {
        gets $sk data
        return "$data"
    } else {
        error "Problem with socket"
    }
}
     
</pre>
 </p>
 <p>
		    For instance scripts are useful when you want to have control of the http protocol and you are not transmitting 
		    text/html data. See the example regarding the <a href="file_download.html">file download</a>

		    or the xml messaging in <a href="ajax.html">Ajax</a>
 development.
		 </p>
</div>



                <div class="contentbottom">
                    <div id="last_modified">Last Modified: 20-07-2010 13:11:09 UTC</div>
                </div>
            </div>

            <div class="sidebar">
                <ul>
                    <li>
                        <h4>News</h4>
                        <ul>
			    <li><span class="newsheader">26 June 2012</span>: <a href="rn-2-0.html">Rivet 2.0.5 released</a></li>
			    <li><span class="newsheader">6 July 2012</span>: <a href="http://www.eurotcl.tcl3d.org/">10th European Tcl/Tk User Meeting</a></li>
			</ul>
                    </li>
                    <li id="rivetexamples">
    <h4 class="">Examples</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a href="hello_world.html" class="">Hello world!</a>
        </li>
        <li class="navitem">
            <a href="shaded_table.html" class="">A shaded table</a>
        </li>
        <li class="navitem">
            <a href="var_access.html" class="">Variable Access</a>
        </li>
        <li class="navitem">
            <a href="file_upload.html" class="">File Upload</a>
        </li>
        <li class="navitem">
            <a href="file_download.html" class="">File Download</a>
        </li>
        <li class="navitem">
            <a href="ajax.html" class="">XML and Ajax</a>
        </li>
        <li class="navitem">
            <a href="calendar.html" class="">Calendar</a>
        </li>
    </ul>
</li>
<li id="main">
    <h4 class="">Rivet</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a href="../index.html" class="">Rivet Homepage</a>
        </li>
        <li class="navitem">
            <a href="http://tcl.apache.org/" target="asf">Apache Tcl Home</a>
        </li>
        <li class="navitem">
            <a href="download.html" class="">Getting Rivet</a>
        </li>
        <li class="navitem">
            <a href="http://tcl.apache.org/rivet/manual/" target="rivetman">Documentation</a>
        </li>
        <li class="navitem">
            <a href="hello_world.html" class="">Examples</a>
        </li>
        <li class="navitem">
            <a href="about.html" class="">About Us - Contact</a>
        </li>
    </ul>
</li>

 
                </ul> 
            </div>
            <div class="clear"></div>
        </div>
    </div>
    <div id="footer">
        <div class="footer-content">
            <p><a href="http://www.apache.org/">Apache Software Foundation</a> | Design by <a href="http://www.spyka.net">Free CSS Templates</a> | <a href="http://www.justfreetemplates.com">Free Web Templates</a></p>
        </div>
    </div>
    <div style="text-align: center; font-size: 0.75em;">Design downloaded from <a href="http://www.freewebtemplates.com/">free website templates</a>.</div></body>
</html>

