[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 — 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\" %<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"
</IfModule>
- </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; —
-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 — 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>/></literal> instead of just
- <literal>></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
+ — 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>/></literal> instead of just
+ <literal>></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