[docs] xmldocs - docelic modified 10 files

docs at icdevgroup.org docs at icdevgroup.org
Wed Feb 16 12:59:34 EST 2005


User:      docelic
Date:      2005-02-16 17:59:33 GMT
Modified:  .        TODO
Modified:  docbook  olinkdb-c.xml olinkdb-nc.xml
Modified:  glossary ITL
Modified:  refs/area description synopsis
Added:     docbook  fo.xsl
Added:     guides   upgrade.xml
Added:     pending  modifiable.tag
Added:     refs/area missing
Log:
Just small "managemental" commit.
Word here, word there,

Revision  Changes    Path
1.64      +10 -4     xmldocs/TODO


rev 1.64, prev_rev 1.63
Index: TODO
===================================================================
RCS file: /var/cvs/xmldocs/TODO,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- TODO	8 Feb 2005 10:23:30 -0000	1.63
+++ TODO	16 Feb 2005 17:59:33 -0000	1.64
@@ -1,12 +1,10 @@
-
 - Skripta ce pratiti koji $opt->{} se koristi u tagu, i skrenuti pozornost
   na one koji ne koriste ime $opt->{}, a trebali bi. Onda item mora imati
   u refs/ listu opcija i opisa, a skripta sama nadje jesu li obavezni,
   pozicioni, i warnira ako se u sourceu koriste neki koji nisu 
   zavedeni u listu. I autogenerira cijeli onaj crapload XMLa.
-- Suppress inline docs (in source)  for items that have xmldocs docs
-- In source contexts, for tags, highlight tagCanon and provide <acronym> with
-  short explanation and example
+
+
 - See that if 'crypt' is put in see also, all symbols of that name appear
   in see also line and their type is distinguished visually.
 - Add ROW_REPARSE along ROW_INTERPOLATE in tag refs
@@ -153,3 +151,11 @@
 
 NON DOCS RELATED
 - Image tag, sort out mgkpath thing
+
+
+
+Nice but not fitting the idea
+- CVS 'ident' command
+- Suppress inline docs (in source)  for items that have xmldocs docs
+- In source contexts, for tags, highlight tagCanon and provide <acronym> with
+  short explanation and example



1.10      +7 -0      xmldocs/docbook/olinkdb-c.xml


rev 1.10, prev_rev 1.9
Index: olinkdb-c.xml
===================================================================
RCS file: /var/cvs/xmldocs/docbook/olinkdb-c.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- olinkdb-c.xml	3 Jan 2005 20:36:39 -0000	1.9
+++ olinkdb-c.xml	16 Feb 2005 17:59:33 -0000	1.10
@@ -2,6 +2,7 @@
 <!DOCTYPE targetset 
 	SYSTEM "/usr/share/xml/docbook/stylesheet/nwalsh/common/targetdatabase.dtd" [
 	<!ENTITY iccattut SYSTEM "../tmp/iccattut-c.db"> 
+	<!ENTITY upgrade SYSTEM "../tmp/upgrade-c.db"> 
 	<!ENTITY xmldocs SYSTEM "../tmp/xmldocs-c.db"> 
 	<!ENTITY howtos SYSTEM "../tmp/howtos-c.db"> 
 	<!ENTITY glossary SYSTEM "../tmp/glossary-c.db"> 
@@ -23,6 +24,12 @@
 			<dir name='iccattut'>
 				<document targetdoc="iccattut">
 				&iccattut;
+				</document>
+			</dir>
+			
+			<dir name='upgrade'>
+				<document targetdoc="upgrade">
+				&upgrade;
 				</document>
 			</dir>
 			



1.10      +2 -0      xmldocs/docbook/olinkdb-nc.xml


rev 1.10, prev_rev 1.9
Index: olinkdb-nc.xml
===================================================================
RCS file: /var/cvs/xmldocs/docbook/olinkdb-nc.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- olinkdb-nc.xml	3 Jan 2005 20:36:39 -0000	1.9
+++ olinkdb-nc.xml	16 Feb 2005 17:59:33 -0000	1.10
@@ -2,6 +2,7 @@
 <!DOCTYPE targetset 
 	SYSTEM "/usr/share/xml/docbook/stylesheet/nwalsh/common/targetdatabase.dtd" [
 	<!ENTITY iccattut SYSTEM "../tmp/iccattut-nc.db"> 
+	<!ENTITY upgrade SYSTEM "../tmp/upgrade-nc.db"> 
 	<!ENTITY xmldocs SYSTEM "../tmp/xmldocs-nc.db"> 
 	<!ENTITY howtos SYSTEM "../tmp/howtos-nc.db"> 
 	<!ENTITY glossary SYSTEM "../tmp/glossary-nc.db"> 
@@ -20,6 +21,7 @@
 	<sitemap>
 		<dir name="OUTPUT"> 
 			<document targetdoc="iccattut" baseuri="iccattut.html"> &iccattut; </document>
+			<document targetdoc="upgrade" baseuri="upgrade.html"> &upgrade; </document>
 			<document targetdoc="xmldocs" baseuri="xmldocs.html"> &xmldocs; </document>
 			<document targetdoc="howtos" baseuri="howtos.html"> &howtos; </document>
 			<document targetdoc="glossary" baseuri="glossary.html"> &glossary; </document>



1.1                  xmldocs/docbook/fo.xsl


rev 1.1, prev_rev 1.0
Index: fo.xsl
===================================================================
<?xml version='1.0'?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

	<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/fo.xsl"/>
	<!-- <xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/chunk.xsl"/> -->
	
	<!-- This section here till I find out how to pick this
	information from a catalog -->

	<xsl:param name="html.stylesheet">../xmldocs.css</xsl:param>

	<xsl:param name="ulink.show">0</xsl:param>
	<xsl:param name="ulink.footnotes">0</xsl:param>

	<!-- are those used with fo ? -->
	<xsl:param name="admon.graphics.path">../images/</xsl:param>
	<xsl:param name="navig.graphics.path">../images/</xsl:param>
	<xsl:param name="callout.graphics.path">../images/</xsl:param>

	<xsl:param name="use.id.as.filename"/>
	<xsl:param name="root.filename">index</xsl:param>

	<xsl:include href="common.xsl"/>

</xsl:stylesheet>




1.8       +6 -0      xmldocs/glossary/ITL


rev 1.8, prev_rev 1.7
Index: ITL
===================================================================
RCS file: /var/cvs/xmldocs/glossary/ITL,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ITL	1 Feb 2005 21:33:12 -0000	1.7
+++ ITL	16 Feb 2005 17:59:33 -0000	1.8
@@ -315,6 +315,12 @@
 (for the record, it's not even close). But as we said, we'll get back to
 subtags and their availability in a minute.
 </para>
+<para>
+You might wonder why unquoted tags are even allowed. The answer is
+<emphasis>performance</emphasis>. If you have large lists of tagsm you can
+achieve significant speed-ups by using positional parameters. Parsing and
+disassembling named parameters takes some more CPU cycles.
+</para>
 
 </section>
 



1.1                  xmldocs/guides/upgrade.xml


rev 1.1, prev_rev 1.0
Index: upgrade.xml
===================================================================
<?xml version="1.0" standalone="no"?>

<!-- catalog not working ? -->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook-Interchange XML V4.2//EN"
	"../docbook/docbookxi.dtd">

<article id='upgrade'>

<articleinfo>
	<title>Interchange Guides: Upgrading</title>
	<titleabbrev>upgrade</titleabbrev>

	<copyright>
		<year>2003</year><year>2004</year><year>2005</year>
		<holder>Interchange Development Group</holder>
	</copyright>
	<copyright>
		<year>2002</year>
		<holder>Red Hat, Inc.</holder>
	</copyright>

	<authorgroup>
		<author>
			<firstname>Davor</firstname><surname>Ocelic</surname>
			<email>docelic at icdevgroup.org</email>
		</author>
		<author>
			<firstname>Jon</firstname><surname>Jensen</surname>
			<email>jon at endpoint.com</email>
		</author>
		<author><firstname>Mike</firstname><surname>Heins</surname>
			<email>mike at perusion.com</email>
		</author>
	</authorgroup>

	<legalnotice>
		<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>

	<abstract>
		<para>
		The purpose of this document is to provide general notes for upgrading
		from Minivend 3 to Minivend 4, and from Minivend 4 to current 
		&IC;.
		</para>
	</abstract>

</articleinfo>

<sect1 id="pod2docbook-ch-1-sect-3">
<title>Interchange 4.8 Deprecated Features</title>
<para>
This document describes features of &IC; 4.8 that have been
deprecated. Any use of these features should be discontinued. In most cases
we have provided an alternative mechanism to accomplish the same results.
These deprecated features may be removed at some point in the future. You
should change to the new mechanism to avoid breakage.
</para>

<sect2 id="pod2docbook-ch-1-sect-3-a">
<title>Deprecated Features Previous to Interchange 4</title>
<para>
This section needs some serious work.
</para>

<variablelist>
<varlistentry><term><emphasis>cart/page from path

</emphasis></term>
<listitem><para></para>

<para>
<filename>interchange.PL</filename> 308,313</para>

<para>
<screen>
        if($path =~ s:/(.*)::) {
                $cart = $1;
                if($cart =~ s:/(.*)::) {
                        $page = $1;
                }
        }
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mv_orderpage

</emphasis></term>
<listitem><para></para>

<para>
<filename>interchange.PL</filename> 321,323</para>

<para>
<screen>
        $CGI::values{mv_nextpage} = $CGI::values{mv_orderpage}
                                   || find_special_page('order')
                if ! $CGI::values{mv_nextpage};
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>$decode

</emphasis></term>
<listitem><para></para>

<para>
<filename>interchange.PL</filename> 493</para>

<para>
<screen>
      HTML::Entities::decode($value) if $decode;
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mv_orderpage

</emphasis></term>
<listitem><para></para>

<para>
<filename>interchange.PL</filename> 854,855</para>

<para>
<screen>
      $CGI::values{mv_nextpage} = $CGI::values{mv_orderpage}
                                    if $CGI::values{mv_orderpage};
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>ROUTINES and LANG

</emphasis></term>
<listitem><para></para>

<para>
<filename>interchange.PL</filename> 1552,1579</para>

<para>
<screen>
   ROUTINES: {
       last ROUTINES
            unless index($Vend::FinalPath, '/process/') == 0;
       while (
           $Vend::FinalPath =~
              s{/process/(locale|language|currency)/([^/]*)/}
               {/process/}
          )
       {
               $::Scratch-&gt;{"mv_$1"} = $2;
       }
       $Vend::FinalPath =~ s:/process/page/:/:;
   }
   my $locale;
   if($locale = $::Scratch-&gt;{mv_language}) {
           $Global::Variable-&gt;{LANG}
                   = $::Variable-&gt;{LANG} = $locale;
   }
</screen></para>

<para>
<screen>
   if ($Vend::Cfg-&gt;{Locale}
                and $locale = $::Scratch-&gt;{mv_locale}
                and defined $Vend::Cfg-&gt;{Locale_repository}-&gt;{$locale}
       )
   {
           $Global::Variable-&gt;{LANG}
                           = $::Variable-&gt;{LANG}
                           = $::Scratch-&gt;{mv_language}
                           = $locale
                    if ! $::Scratch-&gt;{mv_language};
           Vend::Util::setlocale(  $locale,
                                   ($::Scratch-&gt;{mv_currency} || undef),
                                   { persist =&gt; 1 }
                                                                );
   }
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>list_compat

</emphasis></term>
<listitem><para></para>

<para>
<filename>lib/Vend/Interpolate.pm</filename> 2808</para>

<para>
<screen>
         list_compat($opt-&gt;{prefix}, \$text);
</screen></para>

<para>
<filename>lib/Vend/Interpolate.pm</filename> 3538</para>

<para>
<screen>
        list_compat($opt-&gt;{prefix}, \$text);
</screen></para>

<para>
<filename>lib/Vend/Interpolate.pm</filename> 3874</para>

<para>
<screen>
        list_compat($opt-&gt;{prefix}, \$page);
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>find_sort

</emphasis></term>
<listitem><para></para>

<para>
<filename>lib/Vend/Interpolate.pm</filename> 3270,3271</para>

<para>
<screen>
        $text =~ /^\s*\[sort\s+.*/si
                and $opt-&gt;{sort} = find_sort(\$text);
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mv_order_report

</emphasis></term>
<listitem><para></para>

<para>
<filename>lib/Vend/Order.pm</filename> 867,868</para>

<para>
<screen>
    $body = readin($::Values-&gt;{mv_order_report})
                if $::Values-&gt;{mv_order_report};
</screen></para>

</listitem></varlistentry>
<varlistentry><term><emphasis>mv_error_$var

</emphasis></term>
<listitem><para></para>

<para>
<filename>lib/Vend/Order.pm</filename> 1030</para>

<para>
<screen>
                        $::Values-&gt;{"mv_error_$var"} = $message;
</screen></para>

</listitem></varlistentry></variablelist>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-3-b"><title>Interchange 4 Deprecated Features</title>
<variablelist>
<varlistentry><term><emphasis>Vend::Util::send_mail Vend::Order::send_mail send_mail

</emphasis></term>
<listitem><para></para>

<para>
The <function>send_mail</function> routine has been replaced by the
<function>Vend::Mail::send</function>.
</para>

</listitem></varlistentry></variablelist>

</sect2>

</sect1>

<sect1 id="pod2docbook-ch-1-sect-4"><title>Upgrading from Minivend 4.0 to Interchange 4.6</title>
<para>
if &tag-item-price; suddenly starts returning <literal>0</literal>,
check &conf-PriceField; in the &ccf;</para>

<sect2 id="pod2docbook-ch-1-sect-4-a"><title>minivend.cfg</title>
<itemizedlist>

<listitem>
<para>Remove references to MiniMate.</para>
</listitem>

<listitem>
<para>Add this line to minivend.cfg:</para> 
<programlisting>#include lib/UI/ui.cfg</programlisting>
</listitem>

</itemizedlist>

<para>
Make sure the files <filename>catalog_before.cfg</filename> and
<filename>catalog_after.cfg</filename> are there, or
add their contents to
<filename>etc/<replaceable>your_cat_name</replaceable>.before</filename>
and <filename>etc/<replaceable>your_cat_name</replaceable>.after</filename>
only for some catalogs.
</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-b"><title>Access Manager</title>
<para>
You need to get the <filename>minimate.asc</filename> file renamed
to <filename>access.asc</filename> and add the following fields to
the first line:</para>

<para>
<programlisting>
groups
last_login
name
password
</programlisting></para>

<para>
Remove these &ccf; lines:</para>

<para>
<programlisting>
Variable   MINIMATE_META   mv_metadata
Variable   MINIMATE_TABLE  minimate
Database   minimate        minimate.asc      TAB
</programlisting></para>

<para>
Add this one:

<programlisting>
  Database   affiliate       affiliate.txt     TAB
</programlisting></para>

<para>
Authentication for admin users is now done from a separate table than
customers, and passwords are encrypted.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-c"><title>Database Editing</title>
<para>
Update the <filename>mv_metadata.asc</filename> file as appropriate.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-d"><title>Order Manager</title>
<para>
Some things that are needed for the order manager:
</para>

<itemizedlist>

<listitem>
<para>
Add these fields to transactions:
<programlisting>
affiliate  approx. char(32)
</programlisting>
</para>
</listitem>

<listitem>
<para>Add these fields to transactions:
<programlisting>
affiliate  approx. char(32)
</programlisting>
</para>
</listitem>

<listitem>
<para>
Remove this field from userdb:</para>
<para>
<literal>mv_credit_card_info</literal></para>
</listitem>

<listitem>
<para>
Add these fields to userdb:
<programlisting>
inactive char(1)
</programlisting>
</para>
</listitem>

<listitem>
<para>
Create the directory <filename class="directory">logs/</filename>.
</para>
</listitem>

<listitem>
<para>
Create the directory <filename class="directory">orders/</filename> if it
doesn't already exist.
</para>
</listitem>

<listitem>
<para>
Update your order routes to those in the &IC; distribution. Note
that the route <literal>log_entry</literal> is necessary if you want
to enter orders from the &IC; UI.</para>
</listitem>

<listitem>
<para>
Update the <filename>etc/log_transaction</filename> file.</para>
</listitem>

<listitem>
<para>
Add the <filename>etc/log_entry</filename> file.</para>
</listitem>

<listitem>
<para>
Add this to &ccf;:
<programlisting>
## Don't want people setting their credit_limit directly
</programlisting></para>
</listitem>

</itemizedlist>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-e"><title>Affiliates</title>
<para>
Add a tab-delimited affiliate table:</para>

<para>
<programlisting>
affiliate name    campaigns   join_date   url timeout active  password
</programlisting></para>

<para>
You can find a recommended database configuration in
<filename>&std-catalog;/dbconf/*/affiliate.*</filename>.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-f"><title>Page Editor</title>
<para>
Add the directories 
<filename class="directory">templates/</filename> and
<filename class="directory">backup/</filename>.
Copy the contents of the
&IC; <filename class="directory">simple/templates/</filename> to
<filename class="directory">templates/</filename>.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-g"><title>Item Editor</title>
<para>
Add a merchandising table with the following fields:</para>

<para>
<programlisting>
Database  merchandising  merchandising.txt __SQLDSN__
Database  merchandising  DEFAULT_TYPE text
</programlisting>
</para>

<para>
sku <literal>char(32)</literal> featured <literal>char(32)</literal>
banner_text banner_image blurb_begin blurb_end timed_promotion
<literal>char(16)</literal> start_date <literal>char(24)</literal>
finish_date <literal>char(24)</literal> upsell_to cross_sell cross_category
<literal>char(64)</literal> others_bought times_ordered</para>

<para>
Index the fields with <literal>char(*)</literal> types. You can find the
recommended database configuration in
<filename>&std-catalog;/dbconf/*/merchandising.*</filename></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-h"><title>Preferences Editor (KNAR)</title>
<para>
Create the tab-delimited file <filename>variable.txt</filename> with
these fields:</para>

<para>
<programlisting>
code  Variable  pref_group
</programlisting></para>

<para>
Add this as the <emphasis role="bold">first</emphasis> line of &ccf;:</para>

<para>
<programlisting>
VariableDatabase variable
</programlisting></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-i"><title>Route Editor</title>
<para>
Create the file <filename>route.txt</filename> with these fields:</para>

<para>
<programlisting>
code
report
receipt
encrypt_program
encrypt
pgp_key
pgp_cc_key
cyber_mode
credit_card
profile
inline_profile
email
attach
counter
increment
continue
partial
supplant
track
errors_to
</programlisting>
</para>

<para>
Add this line in &ccf;:
<screen>
RouteDatabase route
</screen></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-4-j"><title>Transactions database</title>
<para>
The back office UI should work fine for editing database tables. Obviously
the things which are specific to the order transaction setup will break
unless you have the right fields, but even these can be controlled by
configuring the UI.</para>

<para>
Add a new field to <filename>transaction.txt</filename> called
<literal>archived</literal>.
</para>
</sect2>

</sect1>

<sect1 id="pod2docbook-ch-1-sect-5"><title>Upgrading from Minivend 3 to Minivend 4</title>
<para>
There were big changes from Minivend 3 to Minivend 4, some of which were
incompatible.</para>

<para>
Many things were removed as redundant, deprecated, or just plain crufty:</para>

<sect2 id="pod2docbook-ch-1-sect-5-a"><title>Nested [loop]s</title>
<para>
MV3 used a different scheme for creating nested loop lists:</para>

<programlisting>
[loop with="-a"* arg="item item item" search="se=whatever"]
</programlisting>

<para>
which allowed you to refer to the nested values with a [loop-code-a] construct.
In Minivend 4, the form is:</para>

<para>
<programlisting>
    [loop prefix=size list="Small Medium Large"]
        [loop prefix=color list="Red White Blue"]
            [color-code]-[size-code]&lt;BR&gt;
        [/loop]
        &lt;P&gt;
    [/loop]
</programlisting></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-b"><title>All frame features removed</title>
<para>
Frames are now managed by the user in &glos-HTML;.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-c"><title>Tags removed</title>
<para>
buttonbar</para>

<para>
Replace with &conf-Variable; defined in &ccf;. buttonbar was previously used
as an SSI-like command for catalog-wide standardized features like
navigation bars. In the 3.x &ccf; the ButtonBars parameter defines a
list of &glos-HTML; snippets, like</para>

<para>
<programlisting>
ButtonBars header.html footer.html copyright.html
</programlisting></para>

<para>
So <code>[buttonbar 0]</code> substitutes <literal>header.html</literal>,
<code>[buttonbar 1]</code> substitutes <literal>footer.html</literal>,
etc.</para>

<para>
In 4.x &ccf;, define variables, like</para>

<para>
<programlisting>
Variable HEADER    &lt;pages/header
Variable FOOTER    &lt;pages/footer
Variable COPYRIGHT &lt;pages/copyright
</programlisting></para>

<para>
Then replace all occurrences of <code>[buttonbar 0]</code> with 
<code>__HEADER__</code>, <code>[buttonbar 1]</code> with
<code>__FOOTER__</code>, etc.</para>

<para>
Note that the old <filename>header.html</filename>,
<filename>footer.html</filename>, etc. contained &glos-HTML; code, but
were not actually html pages with &lt;html&gt;&lt;body&gt; etc, tags. Thus
the current practice is to use filenames with no extension or perhaps
<literal>.txt</literal> to differentiate them from complete &glos-HTML;
pages.</para>

<para>
random</para>

<para>
Replace with [ad random=1] or custom code. See the [ad] tag docs. Random
and rotate were used to place random or rotating regions on pages, such as
banner ads.</para>

<para>
The Random directive in &ccf; defines the numbered HTML snippet
files, similar to buttonbars above.</para>

<para>
rotate</para>

<para>
Replace with [ad ...]. See [random] above.</para>

<para>
help</para>

<para>
No replacement. Use data functions or variables.</para>

<para>
body</para>

<para>
Replace with templates. Again the body tag [body 1] etc. defines numbered
body definitions that could be applied site-wide. However, in this case
minivend actually built up the &lt;body ....&gt; substitution using the
Mv_* directives in &ccf;.</para>

<para>
finish_order</para>

<para>
[finish_order] was a conditional tag; if the basket contained anything a
'checkout' graphic would be displayed. No replacement; use [if
items]Message[/if].</para>

<para>
last_page</para>

<para>
No replacement - this can be emulated by setting a scratch variable on one
page, then using it to build the return URL.</para>

<para>
item-link</para>

<para>
No replacement, just use [page [item-code]].</para>

<para>
loop-link</para>

<para>
No replacement, just use [page [loop-code]].</para>

<para>
sql-link</para>

<para>
No replacement, just use [page [sql-code]].</para>

<para>
accessories</para>

<para>
Replace with normal data functions.</para>

<para>
Compatibility routines</para>

<para>
Compatibility routines for many popular tags like [random], [rotate], etc.
are provided in the appendix of this document. To use one, copy it to a
file and put it in your usertag directory. (Tags in the usertag directory
are read in by &gcf; by default).</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-d"><title>Directives removed</title>
<para>
<programlisting>
    ActionMap
    AdminDatabase
    AdminPage
    AsciiBackend
    BackendOrder
    ButtonBars
    CheckoutFrame
    CheckoutPage
    CollectData
    DataDir
    Delimiter
    DescriptionTrim
    FieldDelimiter
    FrameFlyPage
    FrameLinkDir
    FrameOrderPage
    FrameSearchPage
    ItemLinkDir
    ItemLinkValue
    MsqlDB
    MsqlProducts
    Mv_AlinkColor
    Mv_Background
    Mv_BgColor
    Mv_LinkColor
    Mv_TextColor
    Mv_VlinkColor
    NewReport
    NewTags
    OldShipping
    OrderFrame
    PageCache
    PriceDatabase
    Random
    ReceiptPage
    RecordDelimiter
    ReportIgnore
    Rotate
    SearchFrame
    SearchOverMsg
    SecureOrderMsg
    SpecialFile
    SubArgs
    Tracking
</programlisting></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-e"><title>Minor operations removed</title>
<itemizedlist>
<listitem><para>
</para>

<para>
auto-substitution of mp= on [loop search=profile], [search-region
arg=profile]</para>

</listitem>
<listitem><para>
</para>

<para>
[tag scan]...</para>

</listitem>
<listitem><para>
</para>

<para>
[tag sql]...</para>

</listitem></itemizedlist>

<para>
Many of these are related to one of:</para>

<itemizedlist>
<listitem><para>
</para>

<para>
Removal of frames logic</para>

</listitem>
<listitem><para>
</para>

<para>
Removed tags</para>

</listitem>
<listitem><para>
</para>

<para>
Obsolete methods</para>

</listitem>
<listitem><para>
</para>

<para>
Old routines for 2.0x compatibility</para>

</listitem></itemizedlist>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-f"><title>Search lists</title>
<para>
Search tags must now be surrounded by &tag-search-region; tag.
This is because multiple searches can be done in a page, with multiple
[more-list] entries, multiple [no-match] areas, etc. It was not really
possible to avoid this and add the feature.</para>

<para>
To find all files containing the search list, do:</para>

<para>
<programlisting>
 find pages -type f | xargs grep -l '\[search.list'
</programlisting></para>

<para>
That will yield a set of files that need to be updated. You should surround
all parts of the search area, i.e.:</para>

<para>
<programlisting>
    [search-region]
</programlisting></para>

<para>
<programlisting>
  [search-list]
    your search iteration stuff, [item-code], etc.
  [/search-list]
</programlisting></para>

<para>
<programlisting>
  [more-list]
    [more]
  [/more-list]
</programlisting></para>

<para>
<programlisting>
  [/search-region]
</programlisting></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-g"><title>Search conditionals</title>
<para>
Search conditionals should now say [if-item-field field] [/if-item-field]
and [if-item-data table column] [/if-item-data]. This allows mixing and
nesting of lists. You may find that the old works in some situations, but
it will not work in all situations.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-h"><title>Form data updates</title>
<para>
Added Scratch variable mv_data_enable to gate the update_data function. You
must set it before doing a form update. Prior to this it was possible to
update a SQL database willy-nilly.</para>

<para>
A quick fix like this will allow the update on a single page:</para>

<para>
<programlisting>
  [set update_database]
  [set mv_data_enable]1[/set]
  [/set]
  &lt;INPUT TYPE=hidden NAME=mv_click VALUE=update_database&gt;
</programlisting></para>

<para>
It will ensure at least that the user loads one form from you for each
update. For best security, gate with a userdb entry like this:</para>

<para>
<programlisting>
  [set update_database]
  [if type=data term="userdb::trusted::[data session username]"]
      [set mv_data_enable]1[/set]
  [else]
      [set mv_data_enable]0[/set]
  [/else]
  [/if]
  [/set]
</programlisting></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-i"><title>Checkout changes</title>
<para>
Minivend 4 uses in-page error-flagging on the checkout page. Simplest way
to convert is probably to use the checkout.html from the simple demo as a
start, and move in any customization from the existing site's catalog.html
(headers, footers, logos, etc.) A line-by-line comparison of the data
fields in the checkout page should be performed, adding any custom fields
as needed. Custom error checking in etc/order.profiles may have to be
re-worked, or can be added into checkout.html using the in-page order
profile capability. (Note that etc/order.profiles is called
etc/profiles.order in newly-built &IC; catalogs.)</para>

<para>
Remember to update receipt.html and report/report.html with any custom
fields, as well.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-j"><title>[if-field] etc.</title>
<para>
The least-compatible things in the tag area are [if-field] (needs to be
[if-PREFIX-field], where prefix might be item|loop by default depending on
the tag. Likewise:</para>

<para>
<programlisting>
  [if-data table col]  --&gt; [if-PREFIX-data table col]
  [on-change mark]     --&gt; [PREFIX-change mark]
  [if-param param]     --&gt; [if-PREFIX-param param]
  [PREFIX-param N]     --&gt; [PREFIX-pos N] (where N is a digit)
</programlisting></para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-k"><title>[search-list]</title>
<para>
You must always surround &tag-search-list; with
&tag-search-region;.</para>

<para>
Embedded Perl changes quite a bit. While there are the $Safe{values} and
other variable settings, they are automatically shared (no arg="values")
and move to:</para>

<para>
<programlisting>
  $Safe{values}   --&gt;  $Values
  $Safe{cgi}      --&gt;  $CGI
  $Safe{carts}    --&gt;  $Carts
  $Safe{items}    --&gt;  $Items
  $Safe{config}   --&gt;  $Config
  $Safe{scratch}  --&gt;  $Scratch
</programlisting></para>

<para>
There are a number of other objects, see the docs.</para>

<para>
Most other issues have more to do with the catalog skeleton (i.e. simple or
barry or basic or art) than they do the core. For instance, the "basic"
catalog produced for MV3 ran unchanged except for the issues discussed
above.</para>

</sect2>

<sect2 id="pod2docbook-ch-1-sect-5-l"><title>Global subs</title>
<para>
Accessing globalsubs from &tag-perl; tags is done slightly differently.</para>

<para>
Minivend 3 method:</para>

<para>
<programlisting>
[perl sub]
  myfunsub();
[/perl]
</programlisting></para>

<para>
Minivend 4/&IC; method:</para>

<para>
<programlisting>
[perl subs=1]
  myfunsub();
[/perl]
</programlisting></para>

<para>
If you do this wrong, you'll get an error that looks like this:</para>

<para>
<programlisting>
 115.202.115.237 H8gbq6oK:115.202.115.237 - \
  [28/February/2001:18:58:50 -0500] testcat /cgi-bin/testcat.cgi \
  Safe: Undefined subroutine &amp;MVSAFE::myfunsub called at (eval 283) line 2.
</programlisting></para>

</sect2>

</sect1>

</article> 



1.1                  xmldocs/pending/modifiable.tag


rev 1.1, prev_rev 1.0
Index: modifiable.tag
===================================================================
Quoting Mike Heins (mheins at redhat.com):
> Quoting Stefan Hornburg (Racke) (racke at linuxia.de):
> > Yes, I already noticed that problems for variables while upgrading
> > Interchange on http://www.passionshop.com/ from 4.6.x/LINUXIA
> > to 4.8.x.
> > 
> > Now I have a really ugly hack for some of the variables.
> > Do you have a recommendation for variables to be removed for
> > the current page and reappearing on the next page ?
> > 
> 
> Yes, I was going to make a $Tag->modifiable($thing), but I haven't 
> figured that out yet. Your hack stands for the moment, this doesn't
> work:
>  
> 
> But this does. 8-) Forgot the pre-copied refs....
> 

Here is a simpler version:


UserTag modifiable Order thing
UserTag modifiable Routine <<EOR
require Tie::ShadowHash;
sub {
	my $thing = shift || 'Variable';
	my $ref = $Vend::Cfg->{$thing};
	return undef if ref($ref) ne 'HASH';

	my %hash;
	tie %hash, 'Tie::ShadowHash', $ref;

	my $new = \%hash;
	$Vend::Cfg->{$thing} = $new;

	if($thing eq 'Variable') {
		$::Variable = $Vend::Interpolate::Variable = $new;
	}

	return "$thing set to modifiable";
}
EOR

And a test page (needs "Variable FOO bar" in catalog.cfg):

FOO=__FOO__<br>
FOO=[var FOO]<br>
[modifiable]<br>
Set...[calc] $Variable->{FOO} = 'hosed'; [/calc]<br>
FOO=[var FOO]


-- 

So I need to call $Tag->modifiable('') before fiddling with the
variable values in every AutoLoad ?



1.5       +2 -1      xmldocs/refs/area/description


rev 1.5, prev_rev 1.4
Index: description
===================================================================
RCS file: /var/cvs/xmldocs/refs/area/description,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- description	9 Nov 2004 23:16:17 -0000	1.4
+++ description	16 Feb 2005 17:59:33 -0000	1.5
@@ -4,7 +4,8 @@
 to the <filename class='directory'>pages/</filename> directory inside your
 catalog root directory (CATROOT).
 </para><para>
-The enclosing &lt;a href=""&gt;&lt;/a&gt; HTML tag is not included. This makes
+The enclosing &lt;a href=""&gt;&lt;/a&gt; HTML tag is not included, only the
+pure link is output. This makes
 <tag>area</tag> suitable for use in custom &lt;a&gt; links,
 Javascript constructs, <ulink url="http://www.ihip.com/">imagemaps</ulink>
 and elsewhere.



1.6       +1 -1      xmldocs/refs/area/synopsis


rev 1.6, prev_rev 1.5
Index: synopsis
===================================================================
RCS file: /var/cvs/xmldocs/refs/area/synopsis,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- synopsis	6 Oct 2004 20:50:17 -0000	1.5
+++ synopsis	16 Feb 2005 17:59:33 -0000	1.6
@@ -15,5 +15,5 @@
 	<entry>secure</entry>
 	<entry></entry><entry></entry>
 	<entry>0</entry>
-	<entry>Use HTTPS for the target page></entry>
+	<entry>Use HTTPS for the target page?</entry>
 </row>



1.1                  xmldocs/refs/area/missing


rev 1.1, prev_rev 1.0
Index: missing
===================================================================
more work on passing multiple values in arg=








More information about the docs mailing list