[docs] xmldocs - docelic modified 11 files

docs at icdevgroup.org docs at icdevgroup.org
Sat Sep 17 17:24:03 EDT 2005


User:      docelic
Date:      2005-09-17 21:24:02 GMT
Modified:  bin      generic-autogen
Modified:  docbook  .cvsignore
Modified:  howtos   custom-sendmail-routine daemon-control
Modified:           implement-banners log-files
Modified:           obtain-and-run-interchange quantity-in-basket
Modified:           validate
Modified:  refs     total-cost.tag
Removed:   howtos   professional-support
Log:
- docbook/.cvsignore: add icfiles.ent

- refs/total-cost.tag: one more

- howtos/* and bin/generic-autogen:
 rearranged howtos to DocBook XML qandaentry type. Much better looking
 and less code. (Although some things still need to be done on visual
 layout)

Revision  Changes    Path
1.14      +10 -32    xmldocs/bin/generic-autogen


rev 1.14, prev_rev 1.13
Index: generic-autogen
===================================================================
RCS file: /var/cvs/xmldocs/bin/generic-autogen,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- generic-autogen	15 Jun 2005 10:30:10 -0000	1.13
+++ generic-autogen	17 Sep 2005 21:24:01 -0000	1.14
@@ -33,9 +33,13 @@
 
 <glossdef><para>
 ",
+	howtos => "<qandaentry>
+<question><para>
+",
 );
 my %footer = ( # item tail
 	glossary => "\n</para>\n</glossdef>\n</glossentry>\n\n",
+	howtos => "\n</para>\n</answer>\n</qandaentry>\n\n",
 );
 
 # HEAD
@@ -52,41 +56,15 @@
 my $howtos = <<__ENDP__;
 <?xml version="1.0" standalone="no"?>
 
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook-Interchange XML V4.2//EN"
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook-Interchange XML V4.2//EN"
   "../docbook/docbookxi.dtd">
 
-<book id="howtos">
+<article id="howtos">
+	<title>Interchange Documentation: HOW-TO Collection</title>
 
-	<bookinfo>
+<qandadiv>
+	<title>HOW-TO Collection</title>
 
-		<title>Interchange HOWTOs collection</title>
-
-		<legalnotice>
-			<para>
-			Copyright (C) 2004, Interchange Development Group
-			</para>
-			<para>
-			This documentation is free; you can redistribute it and/or modify
-			it under the terms of the GNU General Public License as published by
-			the Free Software Foundation; either version 2 of the License, or
-			(at your option) any later version.
-			</para>
-			<para>
-			It is distributed in the hope that it will be useful,
-			but WITHOUT ANY WARRANTY; without even the implied warranty of
-			MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-			GNU General Public License for more details.
-			</para>
-		</legalnotice>
-
-	</bookinfo>
-
-	<!--
-	<preface>
-		<title>Foreword</title>
-		<para></para>
-	</preface>
-	-->
 __ENDP__
 
 # OPEN GLOSSARY ENTITIES
@@ -150,7 +128,7 @@
 		print "Processing $howto\n" if $verbose;
 		$document .= join "", @{ $items{$howto} };
 	}
-	$document .= '</book>';
+	$document .= '</qandadiv></article>';
 }
 
 



1.2       +1 -0      xmldocs/docbook/.cvsignore


rev 1.2, prev_rev 1.1
Index: .cvsignore
===================================================================
RCS file: /var/cvs/xmldocs/docbook/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	15 Nov 2004 15:15:10 -0000	1.1
+++ .cvsignore	17 Sep 2005 21:24:01 -0000	1.2
@@ -1 +1,2 @@
 auto*.ent
+icfiles.ent



1.6       +32 -58    xmldocs/howtos/custom-sendmail-routine


rev 1.6, prev_rev 1.5
Index: custom-sendmail-routine
===================================================================
RCS file: /var/cvs/xmldocs/howtos/custom-sendmail-routine,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- custom-sendmail-routine	15 Jun 2005 10:30:12 -0000	1.5
+++ custom-sendmail-routine	17 Sep 2005 21:24:01 -0000	1.6
@@ -1,41 +1,19 @@
-<chapter id="DefineCustomSendmailRoutine">
+Define Custom Sendmail Routine
+</para></question>
 
-	<chapterinfo>
-		<title>Define Custom Sendmail Routine</title>
+<answer><para>
+Someone <ulink url="http://www.icdevgroup.org/pipermail/interchange-users/2004-July/039811.html">
+was wondering</ulink> how to optimize the order processing on a busy site.
+It was observed that about once in every ten times, the
+<filename>etc/mail_receipt</filename> takes a few <emphasis>extra</emphasis>
+seconds before it's mailed out.
+</para><para>
+The delay occured because in the code used, the &conf-SendMailProgram; ran in
+foreground so the ordering process "stalled" for a few seconds (or at least
+that's how the average customer saw it). The critical section was reduced to:
+</para>
 
-		<keywordset>
-			<keyword>custom</keyword>
-			<keyword>send</keyword>
-			<keyword>mail</keyword>
-			<keyword>routine</keyword>
-			<keyword>delay</keyword>
-		</keywordset>
-
-		<authorgroup>
-			<author>
-				<firstname>Mike</firstname>
-				<surname>Heins</surname>
-				<affiliation>
-					<email>mheins at perusion.net</email>
-				</affiliation>
-			</author>
-		</authorgroup>
-
-	</chapterinfo>
-
-	<sect1 id='customsendmail_introduction'>
-		<title>Introduction</title>
-		<para>
-		HOW-TO version: $Id: custom-sendmail-routine,v 1.5 2005/06/15 10:30:12 docelic Exp $
-		</para>
-		<para>
-		Someone <ulink url="http://www.icdevgroup.org/pipermail/interchange-users/2004-July/039811.html">was wondering</ulink> how to optimize the order processing on a busy site. It was observed that about once in every ten times, the <filename>etc/mail_receipt</filename> takes a few <emphasis>extra</emphasis> seconds before it's mailed out.
-		</para>
-		<para>
-		The delay occured because in the code used, the <option>SendMailProgram</option> ran in foreground so the ordering process "stalled" for a few seconds (or at least that's how the average customer saw it). The critical section was reduced to:
-		</para>
-
-		<screen>
+<screen>
 <![CDATA[
 [email to="[scratch to_email], __MAIL_RECEIPT_CC__"
        subject="__COMPANY__ Order #[value mv_order_number]: [scratch subject_end]"
@@ -45,19 +23,18 @@
 
 [/email]
 ]]>
-		</screen>
-	</sect1>
 
-	<sect1 id='customsendmail_solution'>
-		<title>Solution</title>
-		<para>
-		To eliminate this "delay", you could use a custom script that accepts the message on standard input (STDIN), and then calls <application>Sendmail</application> in the background.
-		</para> <para>
-		Save the script with the following contents to <filename>/usr/local/bin/sendmail-bg</filename>:
-		</para>
+</screen>
+<para>
+To eliminate this "delay", you could use a custom script that accepts the
+message on standard input (STDIN), and then calls
+<application>Sendmail</application> in the background.
+</para> <para>
+Save the script with the following contents to
+<filename>/usr/local/bin/sendmail-bg</filename>:
+</para>
 
-		<programlisting>
-<![CDATA[
+<programlisting><![CDATA[
 #!/usr/bin/perl
 
 #use strict;
@@ -81,18 +58,15 @@
 
 if($?) { die "Failed to fork sendmail: $!\n" }
 
-]]>
-		</programlisting>
+]]></programlisting>
 
-	<para>
-	And of course, don't forget to add/modify the <option>SendMailProgram</option> directive:
-	</para>
+<para>
+And of course, don't forget to add/modify the &conf-SendMailProgram; directive
+in &ccf;:
+</para>
 
-	<programlisting>
+<programlisting>
 SendMailProgram /usr/local/bin/sendmail-bg
-	</programlisting>
-
-	</sect1>
-
-</chapter>
+</programlisting>
 
+<para>



1.5       +49 -95    xmldocs/howtos/daemon-control


rev 1.5, prev_rev 1.4
Index: daemon-control
===================================================================
RCS file: /var/cvs/xmldocs/howtos/daemon-control,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- daemon-control	7 Sep 2005 16:29:16 -0000	1.4
+++ daemon-control	17 Sep 2005 21:24:01 -0000	1.5
@@ -1,96 +1,54 @@
-<chapter id="daemon-control">
+Control Interchange Daemon Process
+</para></question>
 
-	<chapterinfo>
-		<title>Control Interchange Daemon</title>
+<answer><para>
+Knowing how to manage the Interchange daemon is one of the very basic
+administration tasks.
+</para><para>
+Interchange is (re)started by invoking:
+</para>
+<itemizedlist>
+	<listitem vendor='deb'><para>
+		<userinput>/etc/init.d/interchange restart</userinput> (Debian GNU)
+	</para></listitem>
+	<listitem vendor='rh'><para>
+		<userinput>/etc/rc.d/init.d/interchange restart</userinput> (Red Hat)
+	</para></listitem>
+	<listitem vendor='tarball'><para>
+		<userinput>/usr/local/interchange/bin/interchange -r</userinput>
+		(tarball)
+	</para></listitem>
+</itemizedlist>
+<para>
+Specific catalogs are reconfigured by invoking:
+</para>
+<itemizedlist>
+	<listitem vendor='deb;rh'><para>
+		<userinput>/usr/sbin/interchange -reconfig
+		<replaceable>CATNAME</replaceable></userinput> 
+		(Debian GNU and Red Hat)
+	</para></listitem>
+	<listitem><para>
+		<userinput>/usr/local/interchange/bin/interchange -reconfig
+		<replaceable>CATNAME</replaceable></userinput> (tarball)
+	</para></listitem>
+</itemizedlist>
+<para>
+Why would you want to reconfigure a catalog?
+Most of the time, the changes you make to the HTML files or databases
+are directly visible on the next access to your site. However, that is not
+the case with more "serious" files such as catalog
+configurations (<filename>catalog.cfg</filename>) or profiles
+(<filename>etc/profiles*</filename>).
+</para><para>
+To take changes from those files "on air", you must reconfigure a catalog.
+</para>
+<para>
+Changes to global <filename>interchange.cfg</filename> can only be updated
+by restarting Interchange completely.
 
-		<keywordset>
-			<keyword>control</keyword>
-			<keyword>start</keyword>
-			<keyword>stop</keyword>
-			<keyword>restart</keyword>
-			<keyword>reconfig</keyword>
-			<keyword>unix</keyword>
-			<keyword>init</keyword>
-			<keyword>sbin</keyword>
-			<keyword>daemon</keyword>
-			<keyword>script</keyword>
-			<keyword>run</keyword>
-		</keywordset>
-
-		<!--
-		<authorgroup>
-			<author>
-				<firstname>Mike</firstname>
-				<surname>Heins</surname>
-				<affiliation>
-					<email>mheins at perusion.net</email>
-				</affiliation>
-			</author>
-		</authorgroup>
-		-->
-
-	</chapterinfo>
-
-	<sect1 id='daemon-control_introduction'>
-		<title>Introduction</title>
-		<para>
-		HOW-TO version: $Id: daemon-control,v 1.4 2005/09/07 16:29:16 docelic Exp $
-		</para>
-		<para>
-		Knowing how to manage the Interchange daemon is one of the very basic
-		administration tasks.
-		</para>
-	</sect1>
-
-	<sect1 id='daemon-control_solution'>
-		<title>Solution</title>
-
-		<para>
-		Interchange is (re)started by invoking:
-		</para>
-		<itemizedlist>
-			<listitem vendor='deb'><para>
-				<userinput>/etc/init.d/interchange restart</userinput> (Debian GNU)
-			</para></listitem>
-			<listitem vendor='rh'><para>
-				<userinput>/etc/rc.d/init.d/interchange restart</userinput> (Red Hat)
-			</para></listitem>
-			<listitem vendor='tarball'><para>
-				<userinput>/usr/local/interchange/bin/interchange -r</userinput>
-				(tarball)
-			</para></listitem>
-		</itemizedlist>
-		<para>
-		Specific catalogs are reconfigured by invoking:
-		</para>
-		<itemizedlist>
-			<listitem vendor='deb;rh'><para>
-				<userinput>/usr/sbin/interchange -reconfig
-				<replaceable>CATNAME</replaceable></userinput> 
-				(Debian GNU and Red Hat)
-			</para></listitem>
-			<listitem><para>
-				<userinput>/usr/local/interchange/bin/interchange -reconfig
-				<replaceable>CATNAME</replaceable></userinput> (tarball)
-			</para></listitem>
-		</itemizedlist>
-		<para>
-		Why would you want to reconfigure a catalog?
-		Most of the time, the changes you make to the HTML files or databases
-		are directly visible on the next access to your site. However, that is not
-		the case with more "serious" files such as catalog
-		configurations (<filename>catalog.cfg</filename>) or profiles
-		(<filename>etc/profiles*</filename>).
-		</para><para>
-		To take changes from those files "on air", you must reconfigure a catalog.
-		</para>
-		<para>
-		Changes to global <filename>interchange.cfg</filename> can only be updated
-		by restarting Interchange completely.
-		</para>
-
-		<!-- TODO mention kill, pkill, killall, pidfile -->
-		<!-- 
+<!-- TODO mention kill, pkill, killall, pidfile -->
+<!-- 
 \NOTE: You can adjust time globally for an Interchange installation by
 setting the $ENV{TZ} variable on many systems. Set TZ in your environment
 and then restart Interchange:
@@ -105,8 +63,4 @@
 
 On most modern UNIX systems, all times will now be in the PST zone.
 -->
-
-	</sect1>
-
-</chapter>
 



1.6       +178 -214  xmldocs/howtos/implement-banners


rev 1.6, prev_rev 1.5
Index: implement-banners
===================================================================
RCS file: /var/cvs/xmldocs/howtos/implement-banners,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- implement-banners	15 Jun 2005 10:30:12 -0000	1.5
+++ implement-banners	17 Sep 2005 21:24:01 -0000	1.6
@@ -1,218 +1,182 @@
-<chapter id="implementbanners">
+Implement Banner Ads
+</para></question>
 
-	<chapterinfo>
-		<title>Implement Banner Ads</title>
-
-		<keywordset>
-			<keyword>banner</keyword>
-			<keyword>weight</keyword>
-			<keyword>random</keyword>
-			<keyword>rotate</keyword>
-			<keyword>ad</keyword>
-			<keyword>sequential</keyword>
-		</keywordset>
-
-		<!--<authorgroup>
-			<author>
-				<firstname>Davor</firstname>
-				<surname>Ocelic</surname>
-				<affiliation>
-					<email>docelic at icdevgroup.org</email>
-				</affiliation>
-			</author>
-		</authorgroup>-->
-
-
-	</chapterinfo>
-
-	<sect1 id='implementbanners_introduction'>
-		<title>Introduction</title>
-		<para>
-		HOW-TO version: $Id: implement-banners,v 1.5 2005/06/15 10:30:12 docelic Exp $
-		</para>
-		<para>
-		Banner display in &IC; is implemented using the <tag>banner</tag> tag.
-		There are two terms which need to be understood first:
-		</para>
-		<itemizedlist>
-			<listitem><para>
-			Banner display - term referring to general banner display. Actual code
-			behavior might be affected by the
-			<arg choice='plain'>category</arg> or
-			<arg choice='plain'>weighted</arg> attributes passed to the tag.
-			</para></listitem>
-			<listitem><para>
-			Banner rotation - term referring to selecting exactly one banner, if
-			there are multiple banners defined in the
-			<database class='field'>banner</database> database field. Those
-			multiple banners are displayed in sequential order, with a separate
-			counter kept for each client.
-			</para></listitem>
-		</itemizedlist>
-		<para>
-		Additionally, we need to clarify the difference between
-		<emphasis>categorized</emphasis>
-		and <emphasis>rotated</emphasis> display.
-		Categorized display (mostly used in combination with weighting) makes
-		all banners matching a category to be displayed the appropriate
-		ammount of time (adding weight gives the banner more visibility).
-		Rotated display makes multiple banners from the same
-		<database class='field'>banner</database> database field to be selected
-		<emphasis>in sequential order, for each client separately</emphasis>.
-		Both categorized/weighted and rotating techniques can be used together.
-		</para>
-		<para>
-		For the <tag>banner</tag> tag to work, you'll need to have a
-		<database class='table'>banner</database> table. Here's an 
-		example:
-		</para>
-		<programlisting>
+<answer><para>
+	Banner display in &IC; is implemented using the <tag>banner</tag> tag.
+	There are two terms which need to be understood first:
+</para>
+<itemizedlist>
+	<listitem><para>
+	Banner display - term referring to general banner display. Actual code
+	behavior might be affected by the
+	<arg choice='plain'>category</arg> or
+	<arg choice='plain'>weighted</arg> attributes passed to the tag.
+	</para></listitem>
+	<listitem><para>
+	Banner rotation - term referring to selecting exactly one banner, if
+	there are multiple banners defined in the
+	<database class='field'>banner</database> database field. Those
+	multiple banners are displayed in sequential order, with a separate
+	counter kept for each client.
+	</para></listitem>
+</itemizedlist>
+
+
+<para>
+	Additionally, we need to clarify the difference between
+	<emphasis>categorized</emphasis> and <emphasis>rotated</emphasis> display.
+</para><para>
+	Categorized display (mostly used in combination with weighting) makes
+	all banners matching a category to be displayed the appropriate
+	ammount of time (adding weight gives the banner more visibility).
+	Rotated display makes multiple banners from the same
+	<database class='field'>banner</database> database field to be selected
+	<emphasis>in sequential order, for each client separately</emphasis>.
+	Both categorized/weighted and rotating techniques can be used together.
+</para>
+<para>
+	For the <tag>banner</tag> tag to work, you'll need to have a
+	<database class='table'>banner</database> table. Here's an 
+	example:
+</para>
+<programlisting>
 <xi:include parse='text' href='../files/banner/banner.txt'/>
-		</programlisting>
-		<para>
-		You might notice that the fields names and values in the tables
-		above are not properly aligned. This is an unfortunate nature of
-		<glossterm linkend="tab_delimited">TAB-delimited</glossterm> files.
-		</para>
-		<para>
-		To minimize the chance of confusion, you can download properly composed
-		<ulink url="files/banner/banner.txt">banner.txt</ulink>.
-		</para>
-		<para>
-		Field descriptions follow:
-		<itemizedlist>
-			<listitem><para>
-			<database class='field'>code</database> - key for an item (of course,
-			the key has to be unique). In a <glossterm linkend='weighted_system'>
-			weighted</glossterm> display, the value of this field is not that
-			important because the choice
-			is made by selecting all database rows (or optionally, only taking
-			a subset of those matching specific <arg choice='plain'>category</arg>).
-			In default, non-weighted display, the <arg choice='plain'>category</arg>
-			attribute is expected to contain an unique code, so this is where the
-			<database class='field'>code</database> value is expected to have a 
-			more meaningful value.
-			</para></listitem>
-			<listitem><para>
-			<database class='field'>category</database> - categorize weighted ads.
-			If empty, the banner will be placed in category
-			<literal>default</literal>.
-			</para></listitem>
-			<listitem><para>
-			<database class='field'>weight</database> - banner weight. Must be an
-			integer number equal or greater than 1 to consider the banner for
-			display. 0 or blank will ignore the banner when weighted ads are built.
-			</para></listitem>
-			<listitem><para>
-			<database class='field'>rotate</database> - 
-			must contain a value if weighted banners are
-			<emphasis role='bold'>not</emphasis> used:
-			<itemizedlist>
-				<listitem><para>
-				Empty value will prevent the banner from being displayed.
-				</para></listitem>
-				<listitem><para>
-				Literal value of
-				<literal>0</literal> (zero) will cause the entire content of the banner
-				field to be displayed when the category is matched.
-				</para></listitem>
-				<listitem><para>
-				Non-zero value will cause the banner field to be split into segments
-				(using the specified or default delimiter, of course). For each
-				segment, the
-				banner will then rotate in sequence (for each website visitor
-				separately).
-				Obviously, the first banner in the sequence is more likely to be
-				displayed
-				than the last.
-				</para></listitem>
-			</itemizedlist>
-			</para></listitem>
-			<listitem><para>
-			<database class='field'>banner</database> - the field containing actual
-			banner content. Multiple banner texts (if this feature is used) need to be
-			separated using the specified or default delimiter.
-			</para></listitem>
-		</itemizedlist>
-		</para>
-	</sect1>
-
-	<sect1 id='implementbanners_solution'>
-		<title>Solution</title>
-		<para>
-		As usual, databases first need to be registered for use
-		with the catalog, and so is the case with the text database
-		from the <xref linkend="implementbanners_introduction"/>.
-		The following modification to your
-		<filename>catalog.cfg</filename> is needed (and a
-		<glossterm linkend="reconfig">catalog reconfiguration</glossterm>
-		afterwards):
-		<programlisting>
+</programlisting>
+<para>
+	You might notice that the fields names and values in the tables
+	above are not properly aligned. This is an unfortunate nature of
+	&glos-tab-delimited; files.
+</para>
+<para>
+	To minimize the chance of confusion, you can download properly composed
+	<ulink url="files/banner/banner.txt">banner.txt</ulink>.
+</para>
+<para>
+	Field descriptions follow:
+<itemizedlist>
+	<listitem><para>
+	<database class='field'>code</database> - key for an item (of course,
+	the key has to be unique). In a &glos-weighted; display,
+	the value of this field is not that
+	important because the choice
+	is made by selecting all database rows (or optionally, only taking
+	a subset of those matching specific <arg choice='plain'>category</arg>).
+	In default, non-weighted display, the <arg choice='plain'>category</arg>
+	attribute is expected to contain an unique code, so this is where the
+	<database class='field'>code</database> value is expected to have a 
+	more meaningful value.
+	</para></listitem>
+	<listitem><para>
+	<database class='field'>category</database> - categorize weighted ads.
+	If empty, the banner will be placed in category
+	<literal>default</literal>.
+	</para></listitem>
+	<listitem><para>
+	<database class='field'>weight</database> - banner weight. Must be an
+	integer number equal or greater than 1 to consider the banner for
+	display. 0 or blank will ignore the banner when weighted ads are built.
+	</para></listitem>
+	<listitem><para>
+	<database class='field'>rotate</database> - 
+	must contain a value if weighted banners are
+	<emphasis role='bold'>not</emphasis> used:
+	<itemizedlist>
+		<listitem><para>
+		Empty value will prevent the banner from being displayed.
+		</para></listitem>
+		<listitem><para>
+		Literal value of
+		<literal>0</literal> (zero) will cause the entire content of the banner
+		field to be displayed when the category is matched.
+		</para></listitem>
+		<listitem><para>
+		Non-zero value will cause the banner field to be split into segments
+		(using the specified or default delimiter, of course). For each
+		segment, the
+		banner will then rotate in sequence (for each website visitor
+		separately).
+		Obviously, the first banner in the sequence is more likely to be
+		displayed
+		than the last.
+		</para></listitem>
+	</itemizedlist>
+	</para></listitem>
+	<listitem><para>
+	<database class='field'>banner</database> - the field containing actual
+	banner content. Multiple banner texts (if this feature is used) need to be
+	separated using the specified or default delimiter.
+	</para></listitem>
+</itemizedlist>
+</para>
+
+
+<para>
+As usual, &glos-database;s first need to be registered for use
+with the catalog, and so is the case with the above text database.
+The following modification to your
+<filename>catalog.cfg</filename> is needed (and a
+catalog reconfiguration
+afterwards &mdash; see &howto-daemon-control;):
+<programlisting>
 Database   banner   banner.txt   TAB
 Database   banner   NUMERIC      weight
-		</programlisting>
-		</para>
-		<para>
-		Now that we have everything in place, we can start experimenting with the
-		<tag>banner</tag> tag.
-		</para>
-		<para>
-		To display weighted banners from a specific category (say, 
-		<literal>tech</literal>), use
-		<code>[banner weighted=1 category=tech]</code>. The tag would look for
-		<emphasis>all</emphasis> banners where the
-		<database class='field'>weight</database> field is positive integer and
-		the <database class='field'>category</database> matches "tech", and 
-		build them in the <filename class='directory'>tmp/Banners/tech/</filename>
-		directory.
-		</para>
-		<para>
-		To display weighted banners regardless of the category, use
-		<code>[banner weighted=1]</code>. The tag would look for
-		<emphasis>all</emphasis> banners where the
-		<database class='field'>weight</database> field is positive integer, and
-		build them in the <filename class='directory'>tmp/Banners/</filename>
-		directory. Note that the total sum of weights in our sample database
-		is 20, so each weight point is worth 100/20 = 5%. Therefore, the banners
-		with the weight of 7 would be displayed 35% of the time each.
-		</para>
-		<para>
-		To display categorized,
-		<glossterm linkend="rotated_banner">non-rotating</glossterm>
-		banners (from category
-		<literal>tech</literal>), use
-		<code>[banner category=tech]</code>, which is equal in effect to
-		<code>[data table=banner col=banner key=tech]</code>. <emphasis role='bold'>
-		Note that the 
-		value of the <database class='field'>rotate</database> field must be
-		<literal>0</literal></emphasis>.
-		</para>
-		<para>
-		To display categorized,
-		<glossterm linkend="rotated_banner">rotating</glossterm>
-		banners (from category
-		<literal>tech</literal>), use
-		<code>[banner category=tech]</code>, which is equal in effect to
-		<code>[data table=banner col=banner key=tech]</code>. <emphasis role='bold'>
-		Note that the 
-		value of the <database class='field'>rotate</database> field must be
-		<literal>1</literal></emphasis>.
-		</para>
-		<para>
-		To display multilevel-categorized banners (from say, the 
-		<literal>tech -> hardware</literal> category), use
-		<code>[banner category=tech:hw]</code>. The colon will help &IC;
-		select the most specific banner available, so the difference in
-		respect to single-level categories is the fallback mechanism; if no
-		banners are found in the <literal>tech:hw</literal> category, the
-		<tag>banner</tag> will fallback to category <literal>tech</literal>.
-		</para>
-		<para>
-		For futher, supplementary reading on banners ads and standard 
-		banner sizes, check out the
-		<olink targetdoc='glossary' targetptr='ad'/> glossary entry.
-		</para>
-	</sect1>
-
-</chapter>
-
+</programlisting>
+</para>
+<para>
+Now that we have everything in place, we can start experimenting with the
+<tag>banner</tag> tag.
+</para>
+<para>
+To display weighted banners from a specific category (say, 
+<literal>tech</literal>), use
+<code>[banner weighted=1 category=tech]</code>. The tag would look for
+<emphasis>all</emphasis> banners where the
+<database class='field'>weight</database> field is positive integer and
+the <database class='field'>category</database> matches "tech", and 
+build them in the <filename class='directory'>tmp/Banners/tech/</filename>
+directory.
+</para>
+<para>
+To display weighted banners regardless of the category, use
+<code>[banner weighted=1]</code>. The tag would look for
+<emphasis>all</emphasis> banners where the
+<database class='field'>weight</database> field is positive integer, and
+build them in the <filename class='directory'>tmp/Banners/</filename>
+directory. Note that the total sum of weights in our sample database
+is 20, so each weight point is worth
+<literal>100/20 = 5%</literal>. Therefore, the banners
+with the weight of <literal>7</literal> would be displayed
+35% of the time each.
+</para>
+<para>
+To display categorized, non-&glos-rotated-banner;s, (from category
+<literal>tech</literal>), use
+<code>[banner category=tech]</code>, which is equal in effect to
+<code>[data table=banner col=banner key=tech]</code>. <emphasis role='bold'>
+Note that the 
+value of the <database class='field'>rotate</database> field must be
+<literal>0</literal></emphasis>.
+</para>
+<para>
+To display categorized,
+&glos-rotated-banner;s (from category
+<literal>tech</literal>), use
+<code>[banner category=tech]</code>, which is equal in effect to
+<code>[data table=banner col=banner key=tech]</code>. <emphasis role='bold'>
+Note that the 
+value of the <database class='field'>rotate</database> field must be
+<literal>1</literal></emphasis>.
+</para>
+<para>
+To display multilevel-categorized banners (from say, the 
+<literal>tech -> hardware</literal> category), use
+<code>[banner category=tech:hw]</code>. The colon will help &IC;
+select the most specific banner available, so the difference in
+respect to single-level categories is the fallback mechanism; if no
+banners are found in the <literal>tech:hw</literal> category, the
+<tag>banner</tag> will fallback to category <literal>tech</literal>.
+</para>
+<para>
+For futher, supplementary reading on banners ads and standard 
+banner sizes, check out the
+<olink targetdoc='glossary' targetptr='ad'/> glossary entry.



1.3       +43 -83    xmldocs/howtos/log-files


rev 1.3, prev_rev 1.2
Index: log-files
===================================================================
RCS file: /var/cvs/xmldocs/howtos/log-files,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- log-files	15 Jun 2005 10:30:12 -0000	1.2
+++ log-files	17 Sep 2005 21:24:01 -0000	1.3
@@ -1,63 +1,26 @@
-<chapter id="log-files">
+Setup and monitor log files
+</para></question>
 
-	<chapterinfo>
-		<title>Setup and Monitor Log Files</title>
-
-		<keywordset>
-			<keyword>log</keyword>
-			<keyword>file</keyword>
-			<keyword>ssl</keyword>
-			<keyword>apache</keyword>
-			<keyword>error.log</keyword>
-			<keyword>error</keyword>
-			<keyword>global</keyword>
-			<keyword>catalog</keyword>
-		</keywordset>
-
-		<authorgroup>
-			<author>
-				<firstname>Davor</firstname>
-				<surname>Ocelic</surname>
-				<affiliation>
-					<email>docelic at icdevgroup.org</email>
-				</affiliation>
-			</author>
-		</authorgroup>
-
-
-	</chapterinfo>
-
-	<sect1 id='setupandmonitorlog_introduction'>
-		<title>Introduction</title>
-		<para>
-		HOW-TO version: $Id: log-files,v 1.2 2005/06/15 10:30:12 docelic Exp $
-		</para>
-		<para>
-		To monitor all relevant log files at once, first adjust the
-		neccessary config files, restart the daemons, and issue<sbr/>
-		<userinput>tail -f /var/log/{apache,interchange}/*log</userinput>.
-		</para>
-		<para>
-		Best results are achieved with vertically maximized 80-column terminal.
-		If you want selective results, colorized output, or output to a 
-		root window in your X session, see 
-		<application>grep</application>,
-		<application>glark</application>,
-		<application>ccze</application>,
-		<application>colorize</application> and
-		<application>root-tail</application>.
-		</para>
-	</sect1>
-
-	<sect1 id='setupandmonitorlog_solution'>
-		<title>Solution</title>
-
-		<sect2>
-			<title>Apache Log Files</title>
-			<para>
-			Add the following to your &APACHE; configuration:
-			</para>
-			<programlisting>
+<answer><para>
+	To monitor all relevant log files at once, first adjust the
+	neccessary config files, restart the daemons, and issue<sbr/>
+	<userinput>tail -f /var/log/{apache,interchange}/*log</userinput>.
+</para><para>
+	Best results are achieved with vertically maximized 80-column terminal.
+	If you want selective results, colorized output, or output to a 
+	root window in your X session, see 
+	<command>grep</command>,
+	<command>glark</command>,
+	<command>ccze</command>,
+	<command>colorize</command> or
+	<command>root-tail</command>.
+</para>
+
+
+<para>
+	Add the following to your &APACHE; configuration:
+</para>
+<programlisting>
 ErrorLog /var/log/apache/&def-hostname;.error.log
 CustomLog /var/log/apache/&def-hostname;.log \
   "%h %l %u %t \"%r\" %&lt;s %b \"%{Referer}i\" \"%{User-Agent}i\""
@@ -65,35 +28,32 @@
 CustomLog /var/log/apache/&def-hostname;.ssl.log \
   "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 &lt;/IfModule&gt;
-			</programlisting>
-		</sect2>
+</programlisting>
+
 
-		<sect2>
-			<title>Interchange Log Files</title>
-			<para>
-			Add the following to your global &IC; configuration:
-			</para>
-			<programlisting>
+<para>
+	Add the following to your global &IC; configuration:
+</para>
+<programlisting>
 Variable DEBUG 1
 DebugFile /var/log/interchange/debug.log
 ErrorFile /var/log/interchange/error.log
-			</programlisting>
-			<para>
-			Add the following to your &IC; catalog configuration:
-			</para>
-			<programlisting>
+</programlisting>
+
+<para>
+	Add the following to your &IC; catalog configuration:
+</para>
+
+<programlisting>
 ErrorFile /var/log/interchange/tutorial.error.log
 TrackFile /var/log/interchange/tutorial.track.log
-			</programlisting>
-
-			<note><para>
-			If you reached this HOW-TO by reading 
-			<olink targetdoc='iccattut' targetptr='iccattut'/>, then you
-			didn't arrive to the catalog configuration step yet, so you can
-			safely ignore this section.
-			</para></note>
-		</sect2>
-	</sect1>
+</programlisting>
 
-</chapter>
+<note><para>
+	If you reached this HOW-TO by reading 
+	<olink targetdoc='iccattut' targetptr='iccattut'/>, then you
+	didn't arrive to the catalog configuration step yet, so you can
+	safely ignore the above catalog configuration step.
+</para></note>
 
+<para>



1.4       +10 -115   xmldocs/howtos/obtain-and-run-interchange


rev 1.4, prev_rev 1.3
Index: obtain-and-run-interchange
===================================================================
RCS file: /var/cvs/xmldocs/howtos/obtain-and-run-interchange,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- obtain-and-run-interchange	27 Aug 2005 03:25:42 -0000	1.3
+++ obtain-and-run-interchange	17 Sep 2005 21:24:01 -0000	1.4
@@ -1,50 +1,7 @@
+Obtain and Run Interchange
+</para></question>
 
-<chapter id="obtain">
-
-	<chapterinfo>
-		<title>Obtain and Run &IC;</title>
-
-		<keywordset>
-			<keyword>interchange</keyword>
-			<keyword>obtain</keyword>
-			<keyword>get</keyword>
-			<keyword>download</keyword>
-			<keyword>find</keyword>
-			<keyword>minivend</keyword>
-			<keyword>tallyman</keyword>
-			<keyword>vend</keyword>
-			<keyword>install</keyword>
-			<keyword>run</keyword>
-			<keyword>configure</keyword>
-			<keyword>reconfig</keyword>
-		</keywordset>
-
-		<authorgroup>
-			<author>
-				<firstname>Mike</firstname>
-				<surname>Heins</surname>
-				<affiliation>
-					<email>mheins at icdevgroup.org</email>
-				</affiliation>
-			</author>
-		</authorgroup>
-
-	</chapterinfo>
-
-	<sect1 id='obtain_introduction'>
-		<title>Introduction</title>
-		<para>
-		HOW-TO version: $Id: obtain-and-run-interchange,v 1.3 2005/08/27 03:25:42 jon Exp $
-		</para>
-		<para>
-		How to obtain and run &IC;.
-		</para>
-	</sect1>
-
-	<sect1 id='obtain_solution'>
-		<title>Solution</title>
-
-<para>
+<answer><para>
 &IC; is free of charge, and is distributed under the GNU
 General Public License.  This means that individuals and organizations,
 both commercial and non-commercial, may use &IC; without charge. If
@@ -57,8 +14,7 @@
 However, in practice &IC; is supported by a developer group and
 user community at its mail lists,
 <ulink url="http://new.icdevgroup.org/i/new/community.html">http://new.icdevgroup.org/i/new/community.html</ulink>.
-. There
-are dozens of consultants who make &IC;-based systems their full-time 
+There are dozens of consultants who make &IC;-based systems their full-time 
 work, and there are many more who develop &IC; catalogs and sites.
 </para><para>
 &IC; is officially available from 
@@ -69,8 +25,6 @@
 process.
 </para>
 
-<sect2>
-<title>Pre-requirements</title>
 <para>
 You will need &PERL; version 5.6.1 or higher to run &IC;, and
 Perl 5.8.3 or higher is recommended. &IC; requires the modules
@@ -92,10 +46,7 @@
 (Since Apache web servers are the most popular, in the rest of the HOW-TO
 we will talk in the terms they use.)
 </para>
-</sect2>
 
-<sect2>
-<title>Web Server Setup</title>
 <para>
 You need to have a ScriptAlias or other CGI execution capability on your
 web server to use the &glos-link-program;. (The default ScriptAlias for many web
@@ -103,10 +54,7 @@
 directories, then any program ending in a particular file suffix (usually
 .cgi) will be seen as a CGI program.
 </para>
-</sect2>
 
-<sect2>
-<title>UNIX Domain Sockets</title>
 <para>
 Unix domain sockets are not reachable from the Internet directly,
 but only locally from a request on your own server. The link program
@@ -133,69 +81,16 @@
 configures catalogs for a multiple catalog system. It should properly set
 up ownership and permissions for multiple users if run as the superuser.
 </para>
-</sect2>
 
-<sect2>
-<title>INET Domain Sockets</title>
 <para>
-These are sockets which are reachable from the Internet directly.
+INET domain sockets are sockets which are reachable from the Internet directly.
 The link program tlink is the provided facility for such communication with
 &IC;; you may also use your browser to talk to the socket directly
-if you have it mapped to a catalog with the global TcpMap directive.
+if you have it mapped to a catalog with the global &conf-TcpMap; directive.
 
 To improve security, &IC; usually checks that the request comes
-from one of a limited number of systems, defined in the global TcpHost
-directive.
-</para>
-</sect2>
-
-<sect2>
-<title>Quick Start</title>
-<para>
-
-Obtain, decompress and untar the distribution:
-
-<programlisting>
-gzip -dc interchange-5.x.tar.gz | tar xvf -
-</programlisting>
-
-Change to the created directory, something like:
- 
-<programlisting> 
-cd interchange-5.4.0
-</programlisting>
-
-Run the configure script with:
-
-<programlisting>
-./configure
-</programlisting>
-
-If you have trouble with <command>./configure</command>, try this:
-
-<programlisting>
-perl Makefile.PL
-make
-make test
-make install
-</programlisting>
-
-Replace the perl with the proper path to your Perl binary.
-</para><para>
-You will be asked for the directory where you want to install &IC; &mdash;
-any directory will do. You must of course have write permission there;
-and you will eventually need to have write permission on your CGI-BIN
-and HTML directories. This directory is referred to later in the
-documentation as VendRoot or the &glos-ICROOT; directory.
-</para><para>
-The process should be self-explanatory. If you have trouble answering
-the questions asked, look closely at the examples provided. If you
-still have trouble, you will need to find a tutorial about the World
-Wide Web &mdash; the WWW FAQ at http://www.boutell.com/newfaq/ would be a
-good place to look.
-		</para>
-	</sect2>
-</sect1>
-
-</chapter>
+from one of a limited number of systems, defined in the global
+&conf-TcpHost; directive.
+</para><para>
 
+See &cvsfile-README; for further information.



1.6       +73 -125   xmldocs/howtos/quantity-in-basket


rev 1.6, prev_rev 1.5
Index: quantity-in-basket
===================================================================
RCS file: /var/cvs/xmldocs/howtos/quantity-in-basket,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- quantity-in-basket	15 Jun 2005 10:30:12 -0000	1.5
+++ quantity-in-basket	17 Sep 2005 21:24:01 -0000	1.6
@@ -1,133 +1,81 @@
-<chapter id="Provide Item Quantity Fields in the Basket Page">
+Provide Item Quantity Fields in the Basket Page
+</para></question>
 
-	<chapterinfo>
-		<title>Provide Item Quantity Fields in the Basket Page</title>
-
-		<keywordset>
-			<keyword>quantity</keyword>
-			<keyword>checkout</keyword>
-			<keyword>basket</keyword>
-			<keyword>item</keyword>
-			<keyword>recalculate</keyword>
-			<keyword>add</keyword>
-			<keyword>remove</keyword>
-			<keyword>total</keyword>
-			<keyword>number</keyword>
-			<keyword>client</keyword>
-			<keyword>form</keyword>
-			<keyword>data</keyword>
-			<keyword>return</keyword>
-			<keyword>todo</keyword>
-			<keyword>action</keyword>
-			<keyword>post</keyword>
-		</keywordset>
-
-		<authorgroup>
-			<author>
-				<firstname>Davor</firstname>
-				<surname>Ocelic</surname>
-				<affiliation>
-					<email>docelic at icdevgroup.org</email>
-				</affiliation>
-			</author>
-		</authorgroup>
-
-
-	</chapterinfo>
-
-	<sect1 id='quantityfields_introduction'>
-		<title>Introduction</title>
-		<para>
-		HOW-TO version: $Id: quantity-in-basket,v 1.5 2005/06/15 10:30:12 docelic Exp $
-		</para>
-		<para>
-		On your Interchange pages, you must provide some kind of an HTML form
-		if you want to receive any data from the client. We will use the 
-		<filename>pages/ord/basket.html</filename> page from the
-		<!-- XXX LINK IT -->
-		tutorial catalog to demonstrate this.
-		</para>
-		<para>
-		This particular HOWTO deals with the <emphasis>Item Quantity</emphasis>
-		field, but you can take it as a general Interchange HTML form submission
-		example. I hope you would recognize the enormous power of the
-		Interchange server running behind the scene.
-		</para>
-		<para>
-		The page we're starting with only displays a table of the products found
-		in your shopping cart.
-		The <database class='field'>Quantity</database> field is provided but
-		the only way to increase the number is to click the appropriate 
-		<guibutton>Order Now</guibutton> button multiple times. Reducing the
-		quantity
-		is not supported. Just to remind ourselves, here's how this initial
-		page looks like:
-		</para>
-		<screen>
+<answer>
+	<para>
+	On your &IC; pages, you should provide some kind of an &glos-HTML; form
+	if you want to receive any data from the client. We will use the 
+	<filename>pages/ord/basket.html</filename> page from the
+	<olink targetdoc='iccattut'/> to demonstrate this.
+</para><para>
+	This particular HOWTO deals with the <emphasis>Item Quantity</emphasis>
+	field, but you can take it as a general Interchange &glos-HTML; form
+	submission example. I hope you would recognize the enormous power of the
+	Interchange server running behind the scene.
+</para><para>
+	The page we're starting with only displays a table of the products found
+	in your shopping cart.
+	The <database class='field'>Quantity</database> field is provided but
+	the only way to increase the number is to click the appropriate 
+	<guibutton>Order Now</guibutton> button multiple times. Reducing the
+	quantity
+	is not supported. Just to remind ourselves, let's see our initial page.
+	(This is the one used in the <olink targetdoc='iccattut'/>).
+</para>
+<screen>
 <xi:include parse='text' href='../files/tutorial-phase5/pages/ord/basket.html'/>
-		</screen>
-	</sect1>
+</screen>
 
-	<sect1 id='quantityfields_solution'>
-		<title>Solution</title>
-		<para>
-		What we need to do is:
-		<itemizedlist>
-			<listitem><para>
-			Create an HTML form which is neccesary to submit any client information
-			back to Interchange:<sbr/>
-			<code><![CDATA[<form method='post' action='[process]'>]]></code>
-			</para></listitem>
-			<listitem><para>
-			Replace the <database class='field'>Quantity</database> label 
-			(<code>[item-quantity]</code>) with
-			an HTML text field where quantity can be edited:<sbr/>
-			<code><![CDATA[<input type='text' size='2' name='[quantity-name]' value='[item-quantity]'/>]]></code>
-			</para>
-			<para>
-			What we have introduced here is the <tag>quantity-name</tag> tag.
-			Interchange
-			will expand it to the appropriate field name for each item in the
-			cart (<literal>quantity0</literal>, <literal>quantity1</literal>,
-			<literal>quantity2</literal>, ...). This all happens automatically and
-			you have nothing to worry about.
-			</para></listitem>
-			<listitem><para>
-			Provide the submit button that triggers an action and sends information
-			back to Interchange:<sbr/>
-			<screen><![CDATA[
+<para>
+	What we need to do is:
+	<itemizedlist>
+	<listitem><para>
+		Create an HTML form which is neccesary to submit any client information
+		back to Interchange:<sbr/>
+		<code><![CDATA[<form method='post' action='[process]'>]]></code>
+	</para></listitem>
+	<listitem><para>
+		Replace the <database class='field'>Quantity</database> label 
+		(<code>[item-quantity]</code>) with
+		an HTML text field where quantity can be edited:<sbr/>
+		<code><![CDATA[<input type='text' size='2' name='[quantity-name]' value='[item-quantity]'/>]]></code>
+		</para><para>
+		What we have introduced here is the <tag>quantity-name</tag> tag.
+		Interchange
+		will expand it to the appropriate field name for each item in the
+		cart (<literal>quantity0</literal>, <literal>quantity1</literal>,
+		<literal>quantity2</literal>, ...). This all happens automatically and
+		you have nothing to worry about.
+	</para></listitem>
+	<listitem><para>
+		Provide the submit button that triggers an action and sends information
+		back to Interchange:<sbr/>
+<screen><![CDATA[
 [button text='Recalculate']
-  mv_todo=refresh
+mv_todo=refresh
 [/button]
-			]]>
-			</screen>
-			</para></listitem>
-			<listitem><para>
-			Close the HTML form with <code><![CDATA[</form>]]></code>.
-			</para></listitem>
-		</itemizedlist>
-		</para>
+]]>
+</screen>
+	</para></listitem>
+	<listitem><para>
+		Close the HTML form with <code><![CDATA[</form>]]></code>.
+	</para></listitem>
+	</itemizedlist>
+</para>
+
+<para>
+Here's a copy of the finished <filename>pages/ord/basket.html</filename>.
+</para>
 
-		<para>
-		Here's a copy of the finished <filename>pages/ord/basket.html</filename>.
-		</para>
-
-		<screen>
+<screen>
 <xi:include parse='text' href='../files/various/tut-phase5-basket+quantity.html'/>
-		</screen>
-
-		<para>
-		Test the <filename>ord/basket</filename> page in your browser. Try
-		adjusting the quantity and pressing <guibutton>Recalculate</guibutton>.
-		Note that setting <database class='field'>Quantity</database> to 
-		<literal>0</literal> effectively removes the item from your shopping
-		cart.
-		</para>
-
-		<para>
-		Have a great time and enjoy hacking Interchange :-)
-		</para>
-	</sect1>
-
-</chapter>
+</screen>
 
+<para>
+	Test the <filename>ord/basket</filename> page in your browser. Try
+	adjusting the quantity and pressing <guibutton>Recalculate</guibutton>.
+	Note that setting <database class='field'>Quantity</database> to 
+	<literal>0</literal> effectively removes the item from your shopping
+	cart.
+</para><para>
+	Have a great time and enjoy hacking Interchange :-)



1.5       +29 -77    xmldocs/howtos/validate


rev 1.5, prev_rev 1.4
Index: validate
===================================================================
RCS file: /var/cvs/xmldocs/howtos/validate,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- validate	15 Jun 2005 10:30:12 -0000	1.4
+++ validate	17 Sep 2005 21:24:02 -0000	1.5
@@ -1,79 +1,31 @@
-<chapter id="validate">
+Validate Interchange-produced Markup
+</para></question>
 
-	<chapterinfo>
-		<title>Validate Interchange-produced Markup</title>
-
-		<keywordset>
-			<keyword>markup</keyword>
-			<keyword>html</keyword>
-			<keyword>valid</keyword>
-			<keyword>validation</keyword>
-			<keyword>validator</keyword>
-			<keyword>validate</keyword>
-			<keyword>w3c</keyword>
-			<keyword>jigsaw</keyword>
-			<keyword>xhtml</keyword>
-			<keyword>xml</keyword>
-			<keyword>css</keyword>
-			<keyword>rdf</keyword>
-		</keywordset>
-
-		<authorgroup>
-			<author>
-				<firstname>Davor</firstname>
-				<surname>Ocelic</surname>
-				<affiliation>
-					<email>docelic at icdevgroup.org</email>
-				</affiliation>
-			</author>
-		</authorgroup>
-
-	</chapterinfo>
-
-	<sect1 id='validate_introduction'>
-		<title>Introduction</title>
-		<para>
-		HOW-TO version: $Id: validate,v 1.4 2005/06/15 10:30:12 docelic Exp $
-		</para>
-		<para>
-		Validate pages at W3C.
-		</para>
-	</sect1>
-
-	<sect1 id='validate_solution'>
-		<title>Solution</title>
-
-		<para>
-		testing your pages with
-		&css-validator; or &markup-validator;.
-		</para>
-		<para>
-		&IC; does not output any CSS on its own, so the CSS validation outcome
-		will depend solely on your CSS skills.
-		</para>
-		<para>
-		&IC; does, however, output a lot of HTML markup.
-		That produced markup is, we can say, pretty inconsistent in
-		letter case (uppercase/lowecase) and argument quoting.
-		In later 2004, and in the spirit of the upcoming XHTML standards, a
-		consensus was reached among &ICDEVGROUP; members to start a long-term
-		process of converting all
-		output markup to lowercase and quoting all arguments using double quotes.
-		</para>
-		<para>
-		The above does not harm any compatiblity with ancient Web browser 
-		programs, and is a nice step towards strict XHTML compliance.
-		If you are interested in helping out, please contact &docelic;.
-		</para>
-		<para>
-		For the complete XHTML compliance, non-container markup tags should
-		be closed with
-		<literal>/&gt;</literal> instead of just
-		<literal>&gt;</literal>. 
-		We established the &conf-XHTML; config directive which will adjust the
-		output markup for the few non-container HTML tags.
-		</para>
-	</sect1>
-
-</chapter>
+<answer><para>
+	Validate pages at W3C using &css-validator; or &markup-validator;.
+</para><para>
+	&IC; does not output any &glos-CSS; on its own, so the CSS validation outcome
+	will depend solely on your CSS skills.
+</para><para>
+	&IC; does, however, output a lot of &glos-HTML; markup.
+	<!-- TODO Remove the note when we fix it -->
+	That produced markup is, we can say, pretty inconsistent in
+	letter case (uppercase/lowecase) and argument quoting.
+	In later 2004, and in the spirit of the upcoming XHTML standards, a
+	consensus was reached among &ICDEVGROUP; members to start a long-term
+	process of converting all output markup to lowercase and quoting all
+	arguments using double quotes. (And a significant process has been made
+	&mdash; all core files output lowercased and quoted HTML).
+</para><para>
+	The above does not harm any compatiblity with ancient Web browser 
+	programs, and is a nice step towards strict XHTML compliance.
+	If you are interested in helping out, please contact &docelic;.
+</para><para>
+	For the complete XHTML compliance, non-container markup tags should
+	be closed with <literal>/&gt;</literal> instead of just
+	<literal>&gt;</literal>. 
+	We established the &conf-XHTML; config directive which will adjust the
+	output markup for the few non-container HTML tags. There's also the
+	<varname>$Vend::XTrailer</varname> variable which is <literal>/</literal>
+	or an empty string, depending on the mentioned &conf-XHTML; variable value.
 



1.2       +71 -0     xmldocs/refs/total-cost.tag


rev 1.2, prev_rev 1.1
Index: total-cost.tag
===================================================================
RCS file: /var/cvs/xmldocs/refs/total-cost.tag,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- total-cost.tag	17 Feb 2005 23:25:39 -0000	1.1
+++ total-cost.tag	17 Sep 2005 21:24:02 -0000	1.2
@@ -0,0 +1,71 @@
+__NAME__ purpose
+display total cost of electronic cart, including all adjustments
+__END__
+
+
+__NAME__ see also
+subtotal
+__END__
+
+
+__NAME__ synopsis
+<row>
+	<entry>
+		<group>
+			<arg choice='plain'>name</arg>
+			<arg choice='plain'>cart</arg>
+		</group>
+	</entry>
+	<entry>Yes</entry>
+	<entry>Yes</entry>
+	<entry>Default cart</entry>
+	<entry>Electronic &glos-cart; name.</entry>
+</row>
+<row>
+	<entry>
+		<arg choice='plain'>noformat</arg>
+	</entry>
+	<entry>Yes</entry>
+	<entry>Yes</entry>
+	<entry>0</entry>
+	<entry>Do not format the displayed price?</entry>
+</row>
+<row>
+	<entry>
+		<group>
+			<arg choice='plain'>space</arg>
+			<arg choice='plain'>discount_space</arg>
+		</group>
+	</entry>
+	<entry>Yes</entry>
+	<entry></entry>
+	<entry>Default space</entry>
+	<entry>Name of the &glos-discount; "space".</entry>
+</row>
+<row>
+	<entry>
+		<arg choice='plain'>locale</arg>
+	</entry>
+	<entry></entry>
+	<entry></entry>
+	<entry></entry>
+	<entry>Format price according to the specified locale.</entry>
+</row>
+&ROW_INTERPOLATE_0;
+&ROW_REPARSE_1;
+__END__
+
+
+__NAME__ description
+The tag displays the total monetary value of the user's electronic
+&glos-cart;, including all &glos-price; adjustments such as quantity
+pricing, &glos-discount;s, handling, shipping and &glos-tax;ing.
+__END__
+
+
+__NAME__ example: Basic example
+<programlisting>
+[total-cost]
+</programlisting>
+__END__
+








More information about the docs mailing list