<!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.
<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
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/.
<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
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
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>