Updated for YAZ 1.7. HTML output tidy up. Added LOC target.
[egate.git] / doc / web.sgml
index d3d48a0..c56f103 100644 (file)
@@ -1,13 +1,14 @@
 <!doctype linuxdoc system>
 
 <!--
-  $Id: web.sgml,v 1.2 1996/06/06 10:34:34 adam Exp $
+  $Id: web.sgml,v 1.6 2001/02/26 14:32:36 adam Exp $
 -->
 
 <article>
 <title>Web/Z39.50 gateway guide
-<author>Europagate, 1996
-<date>$Revision: 1.2 $
+<author>Europagate, 1996 <htmlurl url="http://europagate.dtv.dk"
+ name="http://europagate.dtv.dk">
+<date>$Revision: 1.6 $
 <abstract>
 This document describes a Web server that provides access to the
 Z39.50 protocol.
@@ -18,10 +19,10 @@ Z39.50 protocol.
 <sect>Introduction
 
 <p>
-The EUROPAGATE project developed two Z39.50 gatways that served as
+The <htmlurl url="http://europagate.dtv.dk" name="EUROPAGATE">
+project developed two Z39.50 gatways that served as
 Z39.50 clients: an email gateway and a web gateway. This document
-describes how to compile and install the web gateway. For information
-about the email gateway see the document egate.txt.
+describes how to compile and install the web gateway.
 
 <sect>Installation
 
@@ -33,19 +34,24 @@ Z39.50 protocol.
 
 YAZ and IrTcl can be found at the FTP host:
 
-<htmlurl url="ftp://ftp.indexdata.dk/index/yaz"
- name="ftp://ftp.indexdata.dk/index/yaz">
+<htmlurl url="ftp://ftp.indexdata.dk/pub/yaz/"
+ name="ftp://ftp.indexdata.dk/pub/yaz/">
+
+or via HTTP at:
+
+<htmlurl url="http://ftp.indexdata.dk/pub/yaz/"
+ name="http://ftp.indexdata.dk/pub/yaz/">
 
 You also need the Tcl package which can be found at:
 
 <htmlurl url="ftp://ftp.sunlabs.com/pub/tcl"
- name="ftp://ftp.sunlabs.com/pub/tcl">
+ name="http://dev.scriptics.com/">
 
-Unpack <tt>egate.tar.gz</tt> and edit the top level
+Unpack <tt>web-z39-...tar.gz</tt> and edit the top level
 <tt/Makefile/. Specify where the YAZ package can be found by setting
 the the include path <tt/ZINC/, and the YAZ library <tt/ZLIB/.
 Some systems need extra socket libraries - in this case set the
-<tt/ELIB/ variable. You need also to define the location of Tcl:
+<tt/ELIBS/ variable. You need also to define the location of Tcl:
 <tt/TCLLIB/ and <tt/TCLINC/ - and the location of IrTcl:
 <tt/IRTCLLIB/ and <tt/IRTCLINC/.
 
@@ -56,13 +62,13 @@ compiling. The CGI program, <tt/egwcgi/, will be installed in the
 <tt/CGIDIR/ directory. HTML - and images files are installed in
 the <tt/HTDOCS/ and the <tt/GIFDIR/ directories respectively.
 
-The shell variables <tt/CC/ and <tt/CFLAGS/ are used by the
-<tt/Makefile/ so you may modify these in your shell before compiling.
+You may wish to define the <tt/CC/ or <tt/CFLAGS/ variables in the
+<tt/Makefile/ or set them in your shell.
 
-Now, type <tt/make web/
+Now, type <tt/make/
 
 If the compilation succeeds, you should install the software in target
-directories, by issuing: <tt/make install.web/.
+directories, by issuing: <tt/make install/.
 
 A HTML file called <tt/egwindex.html/ should be installed in your
 <tt/HTDOCS/ directory. The page contains miscellaneous starting links
@@ -129,10 +135,10 @@ IrTcl library.
 The <tt/z39util.tcl/ file declares a lot of Tcl functions to
 facilitate Z39.50 communication as well as other utilities.
 
-<tag/*.egw/ Web scripts with embedded Tcl - located in the <tt/EGWDIR/
-directory. Normally, each script correspond to one type of Web
-page. For example, the <tt/query.egw/ script contacts a single
-target and displays a search form; the <tt/search.egw/ script
+<tag/*.egw/ HTML files with embedded Tcl - located in the <tt/EGWDIR/
+directory. Normally, each file corresponds to one type of Web
+page. For example, the <tt/query.egw/ file contacts a single
+target and displays a search form; the <tt/search.egw/ file
 makes a Z39.50 search/present and displays the result.
 
 <tag/ztargets.conf/ Target configuration file. A sort of profile is
@@ -158,6 +164,42 @@ variables.
 only includes information about Z39.50 communication.
 </descrip>
 
+<sect1>Tcl Scripts
+
+<p>
+
+The scripts with the extension <tt/egw/ are HTML files with embedded Tcl. 
+Tcl code is initiated with a left curly brace <tt/{/ and is terminated
+with a right curly brace <tt/}/. The Tcl code is executed on the
+top level, i.e. variables are accessed in the global scope.
+Standard Tcl commands, IrTcl commands to access the Z39.50
+communication layer, and
+an extra set of "gateway" commands are available in the embedded Tcl code.
+The extra set of commands are used to communicate with the Europagate
+software. These are:
+
+<descrip>
+<tag/html/ Concatenates the arguments and transfers them to the HTTP server.
+The data may be cached. They are not written until the <tt/egw_flush/ is
+invoked.
+<tag/egw_form/ Inspects CGI form variables.
+<tag/egw_parms/ Inspects URL variables.
+<tag/egw_flush/ Flushes all HTML output.
+<tag/egw_log/ Logs messages.
+<tag/egw_enc/ Encodes URL data.
+<tag/egw_wait/ Waits for events. One of the following events
+will terminate this command: data from a Z39.50 server,
+data from the CGI module, or timeout.
+</descrip>
+
+Note, that except from the <tt/html/ command all commands have a 
+<tt/egw_/ - prefix.
+Apart from the new commands, the following global variables are set:
+<descrip>
+<tag/sessionId/ ID of the current user session (integer).
+<tag/env/ Array of environment variables - this is standard Tcl, really.
+</descrip>
+
 <sect>LICENSE
 
 <p>