[interchange-docs] xmldocs - docelic modified 14 files
docs at icdevgroup.org
docs at icdevgroup.org
Wed May 16 20:08:52 EDT 2007
User: docelic
Date: 2007-05-17 00:08:52 GMT
Modified: . Makefile
Modified: bin dbgen
Modified: files/infobot interchange.fact
Modified: files/tutorial-phase4/pages checkout.html
Modified: files/tutorial-phase5/pages checkout.html
Modified: files/various tut-phase5-basket+quantity.html
Modified: glossary profile reconfigure
Modified: guides iccattut.xml index.xml
Modified: howtos daemon-control
Modified: refs SessionDB SessionDatabase error.tag
Log:
* Following Steven Jenkins' iccattut comments, I went over the
guide and update it and some related things. So this commit is
just polishing existing stuff, not much new things.
Revision Changes Path
1.88 +1 -1 xmldocs/Makefile
rev 1.88, prev_rev 1.87
Index: Makefile
===================================================================
RCS file: /var/cvs/xmldocs/Makefile,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -r1.87 -r1.88
--- Makefile 14 Feb 2007 13:41:44 -0000 1.87
+++ Makefile 17 May 2007 00:08:51 -0000 1.88
@@ -13,7 +13,7 @@
#############################################################
# Base definitions
SYMBOL_TYPES= pragmas vars tags confs filters orderchecks widgets
-GUIDES = iccattut programming-style upgrade faq index optimization search xmldocs WHATSNEW install
+GUIDES = iccattut programming-style upgrade faq index optimization search xmldocs WHATSNEW install databases
HOWTOS = howtos
GLOSSARY = glossary
ALL_DOCS = $(GLOSSARY) $(HOWTOS) $(GUIDES) $(SYMBOL_TYPES)
1.2 +8 -2 xmldocs/bin/dbgen
rev 1.2, prev_rev 1.1
Index: dbgen
===================================================================
RCS file: /var/cvs/xmldocs/bin/dbgen,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- dbgen 11 Jul 2004 21:06:30 -0000 1.1
+++ dbgen 17 May 2007 00:08:51 -0000 1.2
@@ -1,6 +1,9 @@
#!/usr/bin/perl
# Davor Ocelic, docelic at mail.inet.hr
-# Simple perl script that creates text database files.
+# Simple perl script that creates random text database files.
+# (This should be used just for test, to create random-content
+# databases of desired characteristics - such as value lengths or
+# total number of records).
#
# PURPOSE:
@@ -8,12 +11,15 @@
# or Interchange databases. It should come handy during the
# test phase.
#
-# It currently creates text, TAB delimited files.
+# It creates text, TAB delimited files.
#
# The generated data will, of course, be meaningless, but the
# user can specify column names and types, which should allow
# him to test the engine on arbitrary number of random-generated
# records.
+#
+# QUICKSTART:
+# perl dbgen -c 10 -r /usr/share/dict/words > products/products.txt
#
# COMMAND LINE OPTIONS:
# -f --fields : Set column names
1.2 +41 -10 xmldocs/files/infobot/interchange.fact
rev 1.2, prev_rev 1.1
Index: interchange.fact
===================================================================
RCS file: /var/cvs/xmldocs/files/infobot/interchange.fact,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- interchange.fact 6 Nov 2006 22:04:32 -0000 1.1
+++ interchange.fact 17 May 2007 00:08:51 -0000 1.2
@@ -1,6 +1,7 @@
MV_ERROR_STD_LABEL => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_ERROR_STD_LABEL.html
set-cookie => Tag: http://www.icdevgroup.org/xmldocs/tags/set-cookie.html
Promiscuous => Config directive: http://www.icdevgroup.org/xmldocs/confs/Promiscuous.html
+date => http://www.icdevgroup.org/xmldocs//date.html
forum-userlink => Tag: http://www.icdevgroup.org/xmldocs/tags/forum-userlink.html
email => Tag: http://www.icdevgroup.org/xmldocs/tags/email.html
HEADERTEXT => Variable: http://www.icdevgroup.org/xmldocs/vars/HEADERTEXT.html
@@ -11,6 +12,7 @@
DNSBL => Config directive: http://www.icdevgroup.org/xmldocs/confs/DNSBL.html
unique => Ordercheck: http://www.icdevgroup.org/xmldocs/orderchecks/unique.html
ShowTimes => Config directive: http://www.icdevgroup.org/xmldocs/confs/ShowTimes.html
+lspace2nbsp => Filter: http://www.icdevgroup.org/xmldocs/filters/lspace2nbsp.html
reconfig-time => Tag: http://www.icdevgroup.org/xmldocs/tags/reconfig-time.html
TrackPageParam => Config directive: http://www.icdevgroup.org/xmldocs/confs/TrackPageParam.html
FullUrl => Config directive: http://www.icdevgroup.org/xmldocs/confs/FullUrl.html
@@ -39,6 +41,7 @@
DefaultShipping => Config directive: http://www.icdevgroup.org/xmldocs/confs/DefaultShipping.html
TAXRATE => Variable: http://www.icdevgroup.org/xmldocs/vars/TAXRATE.html
future => Ordercheck: http://www.icdevgroup.org/xmldocs/orderchecks/future.html
+links => http://www.icdevgroup.org/xmldocs//links.html
SaveExpire => Config directive: http://www.icdevgroup.org/xmldocs/confs/SaveExpire.html
regenerate => Tag: http://www.icdevgroup.org/xmldocs/tags/regenerate.html
VarName => Config directive: http://www.icdevgroup.org/xmldocs/confs/VarName.html
@@ -59,7 +62,7 @@
Message => Config directive: http://www.icdevgroup.org/xmldocs/confs/Message.html
value-extended => Tag: http://www.icdevgroup.org/xmldocs/tags/value-extended.html
ChildLife => Config directive: http://www.icdevgroup.org/xmldocs/confs/ChildLife.html
-yesno => Filter: http://www.icdevgroup.org/xmldocs/filters/yesno.html
+yesno => Filter: http://www.icdevgroup.org/xmldocs/filters/yesno.html, http://www.icdevgroup.org/xmldocs//yesno.html
StaticDepth => Config directive: http://www.icdevgroup.org/xmldocs/confs/StaticDepth.html
PRI_TEST_MODE => Variable: http://www.icdevgroup.org/xmldocs/vars/PRI_TEST_MODE.html
PriceCommas => Config directive: http://www.icdevgroup.org/xmldocs/confs/PriceCommas.html
@@ -76,6 +79,7 @@
AutoVariable => Config directive: http://www.icdevgroup.org/xmldocs/confs/AutoVariable.html
CodeDef => Config directive: http://www.icdevgroup.org/xmldocs/confs/CodeDef.html
gate => Filter: http://www.icdevgroup.org/xmldocs/filters/gate.html
+noyes => http://www.icdevgroup.org/xmldocs//noyes.html
strip => Tag: http://www.icdevgroup.org/xmldocs/tags/strip.html
HammerLock => Config directive: http://www.icdevgroup.org/xmldocs/confs/HammerLock.html
ConfigAllAfter => Config directive: http://www.icdevgroup.org/xmldocs/confs/ConfigAllAfter.html
@@ -84,17 +88,20 @@
CYBER_ID => Variable: http://www.icdevgroup.org/xmldocs/vars/CYBER_ID.html
SafeTrap => Config directive: http://www.icdevgroup.org/xmldocs/confs/SafeTrap.html
Profile => Config directive: http://www.icdevgroup.org/xmldocs/confs/Profile.html
-option_format => Filter: http://www.icdevgroup.org/xmldocs/filters/option_format.html
+match => Ordercheck: http://www.icdevgroup.org/xmldocs/orderchecks/match.html
+option_format => Filter: http://www.icdevgroup.org/xmldocs/filters/option_format.html, http://www.icdevgroup.org/xmldocs//option_format.html
UI_OVERALL_WIDTH => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_OVERALL_WIDTH.html
xml-generator => Tag: http://www.icdevgroup.org/xmldocs/tags/xml-generator.html
get-gpg-keys => Tag: http://www.icdevgroup.org/xmldocs/tags/get-gpg-keys.html
description => Tag: http://www.icdevgroup.org/xmldocs/tags/description.html
SessionType => Config directive: http://www.icdevgroup.org/xmldocs/confs/SessionType.html
AcceptRedirect => Config directive: http://www.icdevgroup.org/xmldocs/confs/AcceptRedirect.html
+movecombo => http://www.icdevgroup.org/xmldocs//movecombo.html
COUNTRY => Variable: http://www.icdevgroup.org/xmldocs/vars/COUNTRY.html
convert-date => Tag: http://www.icdevgroup.org/xmldocs/tags/convert-date.html
email-raw => Tag: http://www.icdevgroup.org/xmldocs/tags/email-raw.html
ifdef => Tag: http://www.icdevgroup.org/xmldocs/tags/ifdef.html
+local => Tag: http://www.icdevgroup.org/xmldocs/tags/local.html
MV_COMPONENT_DIR => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_COMPONENT_DIR.html
summary => Tag: http://www.icdevgroup.org/xmldocs/tags/summary.html
CONTRAST => Variable: http://www.icdevgroup.org/xmldocs/vars/CONTRAST.html
@@ -125,10 +132,12 @@
DEBUG => Variable: http://www.icdevgroup.org/xmldocs/vars/DEBUG.html
Environment => Config directive: http://www.icdevgroup.org/xmldocs/confs/Environment.html
MV_STATE_TABLE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_STATE_TABLE.html
+show => http://www.icdevgroup.org/xmldocs//show.html
RunDir => Config directive: http://www.icdevgroup.org/xmldocs/confs/RunDir.html
CategoryField => Config directive: http://www.icdevgroup.org/xmldocs/confs/CategoryField.html
MixMatch => Config directive: http://www.icdevgroup.org/xmldocs/confs/MixMatch.html
GIFT_CERT_COUNTER => Variable: http://www.icdevgroup.org/xmldocs/vars/GIFT_CERT_COUNTER.html
+country_select => http://www.icdevgroup.org/xmldocs//country_select.html
price => Tag: http://www.icdevgroup.org/xmldocs/tags/price.html
auto-wizard => Tag: http://www.icdevgroup.org/xmldocs/tags/auto-wizard.html
OrderLineLimit => Config directive: http://www.icdevgroup.org/xmldocs/confs/OrderLineLimit.html
@@ -137,6 +146,8 @@
SHIP_DEFAULT_ZIP => Variable: http://www.icdevgroup.org/xmldocs/vars/SHIP_DEFAULT_ZIP.html
MV_OPTION_TABLE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_OPTION_TABLE.html
UI_PAGE_DIR => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_PAGE_DIR.html
+NoExport => Config directive: http://www.icdevgroup.org/xmldocs/confs/NoExport.html
+combo => http://www.icdevgroup.org/xmldocs//combo.html
MV_DEFAULT_LINK_CLASS => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_DEFAULT_LINK_CLASS.html
text2html => Filter: http://www.icdevgroup.org/xmldocs/filters/text2html.html
dbi_quote => Filter: http://www.icdevgroup.org/xmldocs/filters/dbi_quote.html
@@ -193,6 +204,7 @@
UI_USER_MERGE_USER_TABLE => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_USER_MERGE_USER_TABLE.html
OfflineDir => Config directive: http://www.icdevgroup.org/xmldocs/confs/OfflineDir.html
UpsZoneFile => Config directive: http://www.icdevgroup.org/xmldocs/confs/UpsZoneFile.html
+realvalue => http://www.icdevgroup.org/xmldocs//realvalue.html
harness => Tag: http://www.icdevgroup.org/xmldocs/tags/harness.html
OrderReport => Config directive: http://www.icdevgroup.org/xmldocs/confs/OrderReport.html
GPG_PATH => Variable: http://www.icdevgroup.org/xmldocs/vars/GPG_PATH.html
@@ -214,6 +226,7 @@
perl => Tag: http://www.icdevgroup.org/xmldocs/tags/perl.html
TcpPort => Config directive: http://www.icdevgroup.org/xmldocs/confs/TcpPort.html
lookup => Filter: http://www.icdevgroup.org/xmldocs/filters/lookup.html
+TrackDateFormat => Config directive: http://www.icdevgroup.org/xmldocs/confs/TrackDateFormat.html
index => Tag: http://www.icdevgroup.org/xmldocs/tags/index.html
length => Ordercheck: http://www.icdevgroup.org/xmldocs/orderchecks/length.html
IpQuad => Config directive: http://www.icdevgroup.org/xmldocs/confs/IpQuad.html
@@ -232,6 +245,7 @@
SOAP_Perms => Config directive: http://www.icdevgroup.org/xmldocs/confs/SOAP_Perms.html
Levies => Config directive: http://www.icdevgroup.org/xmldocs/confs/Levies.html
PriceDivide => Config directive: http://www.icdevgroup.org/xmldocs/confs/PriceDivide.html
+gpg_keys => http://www.icdevgroup.org/xmldocs//gpg_keys.html
flag => Tag: http://www.icdevgroup.org/xmldocs/tags/flag.html
UI_ITEM_TABLES => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_ITEM_TABLES.html
pre_page => Pragma: http://www.icdevgroup.org/xmldocs/pragmas/pre_page.html
@@ -248,7 +262,7 @@
SocketPerms => Config directive: http://www.icdevgroup.org/xmldocs/confs/SocketPerms.html
RemoteUser => Config directive: http://www.icdevgroup.org/xmldocs/confs/RemoteUser.html
encode_entities => Filter: http://www.icdevgroup.org/xmldocs/filters/encode_entities.html
-value => Tag: http://www.icdevgroup.org/xmldocs/tags/value.html
+value => Tag: http://www.icdevgroup.org/xmldocs/tags/value.html, http://www.icdevgroup.org/xmldocs//value.html
NotRobotUA => Config directive: http://www.icdevgroup.org/xmldocs/confs/NotRobotUA.html
line2options => Filter: http://www.icdevgroup.org/xmldocs/filters/line2options.html
diffmerge => Tag: http://www.icdevgroup.org/xmldocs/tags/diffmerge.html
@@ -265,6 +279,7 @@
UI_DATE_BEGIN => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_DATE_BEGIN.html
SafeSignals => Config directive: http://www.icdevgroup.org/xmldocs/confs/SafeSignals.html
History => Config directive: http://www.icdevgroup.org/xmldocs/confs/History.html
+uploadblob => http://www.icdevgroup.org/xmldocs//uploadblob.html
include => Tag: http://www.icdevgroup.org/xmldocs/tags/include.html
SpecialSub => Config directive: http://www.icdevgroup.org/xmldocs/confs/SpecialSub.html
MV_SHIP_MODIFIERS => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_SHIP_MODIFIERS.html
@@ -299,6 +314,7 @@
TagDir => Config directive: http://www.icdevgroup.org/xmldocs/confs/TagDir.html
RequiredFields => Config directive: http://www.icdevgroup.org/xmldocs/confs/RequiredFields.html
pay-cert => Tag: http://www.icdevgroup.org/xmldocs/tags/pay-cert.html
+acl => http://www.icdevgroup.org/xmldocs//acl.html
HouseKeeping => Config directive: http://www.icdevgroup.org/xmldocs/confs/HouseKeeping.html
Logging => Config directive: http://www.icdevgroup.org/xmldocs/confs/Logging.html
MV_COMPONENT_CACHE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_COMPONENT_CACHE.html
@@ -313,6 +329,7 @@
forum => Tag: http://www.icdevgroup.org/xmldocs/tags/forum.html
alpha => Filter: http://www.icdevgroup.org/xmldocs/filters/alpha.html
ProcessPage => Config directive: http://www.icdevgroup.org/xmldocs/confs/ProcessPage.html
+text => http://www.icdevgroup.org/xmldocs//text.html
set => Tag: http://www.icdevgroup.org/xmldocs/tags/set.html
PermanentDir => Config directive: http://www.icdevgroup.org/xmldocs/confs/PermanentDir.html
onfly => Tag: http://www.icdevgroup.org/xmldocs/tags/onfly.html
@@ -320,6 +337,7 @@
UI_COMPONENT_TABLE => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_COMPONENT_TABLE.html
PRI_TEST_REGKEY => Variable: http://www.icdevgroup.org/xmldocs/vars/PRI_TEST_REGKEY.html
ErrorDestination => Config directive: http://www.icdevgroup.org/xmldocs/confs/ErrorDestination.html
+radio => http://www.icdevgroup.org/xmldocs//radio.html
large => Filter: http://www.icdevgroup.org/xmldocs/filters/large.html
StaticSuffix => Config directive: http://www.icdevgroup.org/xmldocs/confs/StaticSuffix.html
try => Tag: http://www.icdevgroup.org/xmldocs/tags/try.html
@@ -333,6 +351,7 @@
page => Tag: http://www.icdevgroup.org/xmldocs/tags/page.html
digits_dot => Filter: http://www.icdevgroup.org/xmldocs/filters/digits_dot.html
AcrossLocks => Config directive: http://www.icdevgroup.org/xmldocs/confs/AcrossLocks.html
+htmlarea => http://www.icdevgroup.org/xmldocs//htmlarea.html
RobotUA => Config directive: http://www.icdevgroup.org/xmldocs/confs/RobotUA.html
tt => Filter: http://www.icdevgroup.org/xmldocs/filters/tt.html
AccumulateCode => Config directive: http://www.icdevgroup.org/xmldocs/confs/AccumulateCode.html
@@ -409,8 +428,10 @@
MV_VALID_PROVINCE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_VALID_PROVINCE.html
StaticPath => Config directive: http://www.icdevgroup.org/xmldocs/confs/StaticPath.html
form-session-id => Tag: http://www.icdevgroup.org/xmldocs/tags/form-session-id.html
-time => Tag: http://www.icdevgroup.org/xmldocs/tags/time.html
+imagedir => http://www.icdevgroup.org/xmldocs//imagedir.html
+time => Tag: http://www.icdevgroup.org/xmldocs/tags/time.html, http://www.icdevgroup.org/xmldocs//time.html
round => Filter: http://www.icdevgroup.org/xmldocs/filters/round.html
+space_to_nbsp => Filter: http://www.icdevgroup.org/xmldocs/filters/space_to_nbsp.html
Jobs => Config directive: http://www.icdevgroup.org/xmldocs/confs/Jobs.html
DiscountSpaceVar => Config directive: http://www.icdevgroup.org/xmldocs/confs/DiscountSpaceVar.html
StartServers => Config directive: http://www.icdevgroup.org/xmldocs/confs/StartServers.html
@@ -418,6 +439,7 @@
available_www_shipping => Tag: http://www.icdevgroup.org/xmldocs/tags/available_www_shipping.html
PRI_REGKEY => Variable: http://www.icdevgroup.org/xmldocs/vars/PRI_REGKEY.html
EncryptKey => Config directive: http://www.icdevgroup.org/xmldocs/confs/EncryptKey.html
+datetime2epoch => Filter: http://www.icdevgroup.org/xmldocs/filters/datetime2epoch.html
calc => Tag: http://www.icdevgroup.org/xmldocs/tags/calc.html
version => Tag: http://www.icdevgroup.org/xmldocs/tags/version.html
either => Tag: http://www.icdevgroup.org/xmldocs/tags/either.html
@@ -435,7 +457,7 @@
DeleteDirective => Config directive: http://www.icdevgroup.org/xmldocs/confs/DeleteDirective.html
TAXCOUNTRY => Variable: http://www.icdevgroup.org/xmldocs/vars/TAXCOUNTRY.html
USPS_SIZE => Variable: http://www.icdevgroup.org/xmldocs/vars/USPS_SIZE.html
-display => Tag: http://www.icdevgroup.org/xmldocs/tags/display.html
+display => Tag: http://www.icdevgroup.org/xmldocs/tags/display.html, http://www.icdevgroup.org/xmldocs//display.html
record => Tag: http://www.icdevgroup.org/xmldocs/tags/record.html
UI_ACCESS_KEY_LIMIT => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_ACCESS_KEY_LIMIT.html
backup-database => Tag: http://www.icdevgroup.org/xmldocs/tags/backup-database.html
@@ -469,6 +491,7 @@
IPCsocket => Config directive: http://www.icdevgroup.org/xmldocs/confs/IPCsocket.html
import => Tag: http://www.icdevgroup.org/xmldocs/tags/import.html
pgbooln => Filter: http://www.icdevgroup.org/xmldocs/filters/pgbooln.html
+space2nbsp => Filter: http://www.icdevgroup.org/xmldocs/filters/space2nbsp.html
TcpMap => Config directive: http://www.icdevgroup.org/xmldocs/confs/TcpMap.html
MV_COUNTRY_TABLE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_COUNTRY_TABLE.html
page-meta => Tag: http://www.icdevgroup.org/xmldocs/tags/page-meta.html
@@ -511,6 +534,7 @@
ECHO_PAYMENT_ID => Variable: http://www.icdevgroup.org/xmldocs/vars/ECHO_PAYMENT_ID.html
UPS_COUNTRY_REMAP => Variable: http://www.icdevgroup.org/xmldocs/vars/UPS_COUNTRY_REMAP.html
html2text => Filter: http://www.icdevgroup.org/xmldocs/filters/html2text.html
+lspace_to_nbsp => Filter: http://www.icdevgroup.org/xmldocs/filters/lspace_to_nbsp.html
options2line => Filter: http://www.icdevgroup.org/xmldocs/filters/options2line.html
UI_STD_HEAD => Variable: http://www.icdevgroup.org/xmldocs/vars/UI_STD_HEAD.html
SalesTaxFunction => Config directive: http://www.icdevgroup.org/xmldocs/confs/SalesTaxFunction.html
@@ -525,10 +549,11 @@
flex-select => Tag: http://www.icdevgroup.org/xmldocs/tags/flex-select.html
FractionalItems => Config directive: http://www.icdevgroup.org/xmldocs/confs/FractionalItems.html
FeatureDir => Config directive: http://www.icdevgroup.org/xmldocs/confs/FeatureDir.html
+multiple => http://www.icdevgroup.org/xmldocs//multiple.html
menu-load => Tag: http://www.icdevgroup.org/xmldocs/tags/menu-load.html
Options => Config directive: http://www.icdevgroup.org/xmldocs/confs/Options.html
AlwaysSecure => Config directive: http://www.icdevgroup.org/xmldocs/confs/AlwaysSecure.html
-checkbox => Filter: http://www.icdevgroup.org/xmldocs/filters/checkbox.html
+checkbox => Filter: http://www.icdevgroup.org/xmldocs/filters/checkbox.html, http://www.icdevgroup.org/xmldocs//checkbox.html
HouseKeepingCron => Config directive: http://www.icdevgroup.org/xmldocs/confs/HouseKeepingCron.html
set-alias => Tag: http://www.icdevgroup.org/xmldocs/tags/set-alias.html
TRUSTCOMMERCE_ID => Variable: http://www.icdevgroup.org/xmldocs/vars/TRUSTCOMMERCE_ID.html
@@ -537,10 +562,11 @@
PRI_REFID_MODE => Variable: http://www.icdevgroup.org/xmldocs/vars/PRI_REFID_MODE.html
strftime => Filter: http://www.icdevgroup.org/xmldocs/filters/strftime.html
dump_session => Tag: http://www.icdevgroup.org/xmldocs/tags/dump_session.html
+MV_SMTP_TIMEOUT => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_SMTP_TIMEOUT.html
AutoModifier => Config directive: http://www.icdevgroup.org/xmldocs/confs/AutoModifier.html
Accounting => Config directive: http://www.icdevgroup.org/xmldocs/confs/Accounting.html
BREADCRUMB_ONLY_LAST => Variable: http://www.icdevgroup.org/xmldocs/vars/BREADCRUMB_ONLY_LAST.html
-default => Tag: http://www.icdevgroup.org/xmldocs/tags/default.html
+default => Tag: http://www.icdevgroup.org/xmldocs/tags/default.html, http://www.icdevgroup.org/xmldocs//default.html
duration => Filter: http://www.icdevgroup.org/xmldocs/filters/duration.html
IMAGE_DIR => Variable: http://www.icdevgroup.org/xmldocs/vars/IMAGE_DIR.html
SessionDatabase => Config directive: http://www.icdevgroup.org/xmldocs/confs/SessionDatabase.html
@@ -554,6 +580,7 @@
MV_TAX_CATEGORY_FIELD => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_TAX_CATEGORY_FIELD.html
SERVER_NAME => Variable: http://www.icdevgroup.org/xmldocs/vars/SERVER_NAME.html
HTMLsuffix => Config directive: http://www.icdevgroup.org/xmldocs/confs/HTMLsuffix.html
+imagehelper => http://www.icdevgroup.org/xmldocs//imagehelper.html
usertrack => Tag: http://www.icdevgroup.org/xmldocs/tags/usertrack.html
crypt => Tag: http://www.icdevgroup.org/xmldocs/tags/crypt.html
MV_USERDB_ACL_COLUMN => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_USERDB_ACL_COLUMN.html
@@ -564,6 +591,7 @@
ScratchDir => Config directive: http://www.icdevgroup.org/xmldocs/confs/ScratchDir.html
SQLDSN => Variable: http://www.icdevgroup.org/xmldocs/vars/SQLDSN.html
Pragma => Config directive: http://www.icdevgroup.org/xmldocs/confs/Pragma.html
+labels => http://www.icdevgroup.org/xmldocs//labels.html
tabbed-display => Tag: http://www.icdevgroup.org/xmldocs/tags/tabbed-display.html
PriceField => Config directive: http://www.icdevgroup.org/xmldocs/confs/PriceField.html
MaxServers => Config directive: http://www.icdevgroup.org/xmldocs/confs/MaxServers.html
@@ -595,6 +623,7 @@
SpecialPage => Config directive: http://www.icdevgroup.org/xmldocs/confs/SpecialPage.html
name => Filter: http://www.icdevgroup.org/xmldocs/filters/name.html
Inet_Mode => Config directive: http://www.icdevgroup.org/xmldocs/confs/Inet_Mode.html
+uploadhelper => http://www.icdevgroup.org/xmldocs//uploadhelper.html
total-cost => Tag: http://www.icdevgroup.org/xmldocs/tags/total-cost.html
DOCROOT => Variable: http://www.icdevgroup.org/xmldocs/vars/DOCROOT.html
read-ui-page => Tag: http://www.icdevgroup.org/xmldocs/tags/read-ui-page.html
@@ -672,6 +701,7 @@
BREADCRUMB_EXCLUDE => Variable: http://www.icdevgroup.org/xmldocs/vars/BREADCRUMB_EXCLUDE.html
DisplayErrors => Config directive: http://www.icdevgroup.org/xmldocs/confs/DisplayErrors.html
Levy => Config directive: http://www.icdevgroup.org/xmldocs/confs/Levy.html
+select => http://www.icdevgroup.org/xmldocs//select.html
discount_space => Tag: http://www.icdevgroup.org/xmldocs/tags/discount_space.html
FormAction => Config directive: http://www.icdevgroup.org/xmldocs/confs/FormAction.html
scratchd => Tag: http://www.icdevgroup.org/xmldocs/tags/scratchd.html
@@ -700,13 +730,14 @@
setlocale => Tag: http://www.icdevgroup.org/xmldocs/tags/setlocale.html
region => Tag: http://www.icdevgroup.org/xmldocs/tags/region.html
accessories => Tag: http://www.icdevgroup.org/xmldocs/tags/accessories.html
+NoExportExternal => Config directive: http://www.icdevgroup.org/xmldocs/confs/NoExportExternal.html
mvasp => Tag: http://www.icdevgroup.org/xmldocs/tags/mvasp.html
TemplateDir => Config directive: http://www.icdevgroup.org/xmldocs/confs/TemplateDir.html
export-database => Tag: http://www.icdevgroup.org/xmldocs/tags/export-database.html
Sub => Config directive: http://www.icdevgroup.org/xmldocs/confs/Sub.html
MV_TREE_TABLE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_TREE_TABLE.html
Member => Config directive: http://www.icdevgroup.org/xmldocs/confs/Member.html
-options => Tag: http://www.icdevgroup.org/xmldocs/tags/options.html
+options => Tag: http://www.icdevgroup.org/xmldocs/tags/options.html, http://www.icdevgroup.org/xmldocs//options.html
file-info => Tag: http://www.icdevgroup.org/xmldocs/tags/file-info.html
MV_DEFAULT_MATCHLIMIT => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_DEFAULT_MATCHLIMIT.html
colons_to_null => Filter: http://www.icdevgroup.org/xmldocs/filters/colons_to_null.html
@@ -756,8 +787,8 @@
TagInclude => Config directive: http://www.icdevgroup.org/xmldocs/confs/TagInclude.html
interpolate_itl_references => Pragma: http://www.icdevgroup.org/xmldocs/pragmas/interpolate_itl_references.html
MV_CREDIT_CARD_INFO_TEMPLATE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_CREDIT_CARD_INFO_TEMPLATE.html
-MoreDB => Config directive: http://www.icdevgroup.org/xmldocs/confs/MoreDB.html
SeparateItems => Config directive: http://www.icdevgroup.org/xmldocs/confs/SeparateItems.html
+MoreDB => Config directive: http://www.icdevgroup.org/xmldocs/confs/MoreDB.html
CustomShipping => Config directive: http://www.icdevgroup.org/xmldocs/confs/CustomShipping.html
date_change => Filter: http://www.icdevgroup.org/xmldocs/filters/date_change.html
init_page => Pragma: http://www.icdevgroup.org/xmldocs/pragmas/init_page.html
@@ -775,8 +806,8 @@
encrypt => Filter: http://www.icdevgroup.org/xmldocs/filters/encrypt.html
rand => Tag: http://www.icdevgroup.org/xmldocs/tags/rand.html
TaxInclusive => Config directive: http://www.icdevgroup.org/xmldocs/confs/TaxInclusive.html
-UserControl => Config directive: http://www.icdevgroup.org/xmldocs/confs/UserControl.html
CGIWRAP_WORKAROUND => Variable: http://www.icdevgroup.org/xmldocs/vars/CGIWRAP_WORKAROUND.html
+UserControl => Config directive: http://www.icdevgroup.org/xmldocs/confs/UserControl.html
MV_ROBOT_EXPIRE => Variable: http://www.icdevgroup.org/xmldocs/vars/MV_ROBOT_EXPIRE.html
uneval => Tag: http://www.icdevgroup.org/xmldocs/tags/uneval.html
VendURL => Config directive: http://www.icdevgroup.org/xmldocs/confs/VendURL.html
1.3 +1 -0 xmldocs/files/tutorial-phase4/pages/checkout.html
rev 1.3, prev_rev 1.2
Index: checkout.html
===================================================================
RCS file: /var/cvs/xmldocs/files/tutorial-phase4/pages/checkout.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- checkout.html 12 Aug 2006 22:43:11 -0000 1.2
+++ checkout.html 17 May 2007 00:08:51 -0000 1.3
@@ -3,6 +3,7 @@
<h1>Checkout Page</h1>
<form method="post" action="[process]">
+[form-session-id]
<input type="hidden" name="mv_todo" value="submit" />
<input type="hidden" name="mv_order_profile" value="order_profile" />
<input type="hidden" name="mv_cyber_mode" value="minivend_test" />
1.3 +1 -0 xmldocs/files/tutorial-phase5/pages/checkout.html
rev 1.3, prev_rev 1.2
Index: checkout.html
===================================================================
RCS file: /var/cvs/xmldocs/files/tutorial-phase5/pages/checkout.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- checkout.html 12 Aug 2006 22:43:11 -0000 1.2
+++ checkout.html 17 May 2007 00:08:51 -0000 1.3
@@ -3,6 +3,7 @@
<h1>Checkout Page</h1>
<form method="post" action="[process]" />
+[form-session-id]
<input type="hidden" name="mv_todo" value="submit" />
<input type="hidden" name="mv_order_profile" value="order_profile" />
<input type="hidden" name="mv_cyber_mode" value="minivend_test" />
1.2 +1 -0 xmldocs/files/various/tut-phase5-basket+quantity.html
rev 1.2, prev_rev 1.1
Index: tut-phase5-basket+quantity.html
===================================================================
RCS file: /var/cvs/xmldocs/files/various/tut-phase5-basket+quantity.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tut-phase5-basket+quantity.html 23 Sep 2004 11:12:16 -0000 1.1
+++ tut-phase5-basket+quantity.html 17 May 2007 00:08:51 -0000 1.2
@@ -4,6 +4,7 @@
<h2>This is your shopping cart!</h2>
<form method='post' action='[process]'>
+[form-session-id]
<table cellpadding="5">
1.9 +9 -9 xmldocs/glossary/profile
rev 1.9, prev_rev 1.8
Index: profile
===================================================================
RCS file: /var/cvs/xmldocs/glossary/profile,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- profile 4 May 2007 14:36:16 -0000 1.8
+++ profile 17 May 2007 00:08:52 -0000 1.9
@@ -1,12 +1,11 @@
&IC; form <emphasis>profiles</emphasis> are used to validate form inputs and
-eventually trigger additional actions. Input fields validation usually contains
-of requiring some of the fields to be non-empty or match a specific regular
-expression pattern at time of submit.
+eventually trigger additional actions. The validation usually consists
+in requireing that some of the fields are non-empty or match a specific regular
+expression pattern.
</para>
<para>
-Actions, for example, can be used to signalize the completion of an order
-process. Profiles are not specific to order checkout or something; they are
+Profiles are not specific to order checkout or any specific step; they are
an integral part of all form processing in &IC;. You will also see actions
such as &IC; account creation, login, logout or password change being at least
partly handled using profiles.
@@ -39,7 +38,8 @@
<para>
The <literal>__NAME__</literal> and <literal>__END__</literal> markers
must start at the beginning of line, not even whitespace is allowed. This
-is very important because the profile would be ignored otherwise.
+is very important because the profile would otherwise be silently
+ignored.
</para>
</note>
@@ -154,9 +154,9 @@
- form field content must satisfy the allowed length range
</para></listitem>
<listitem><para>
- <literal>match <replaceable>VARNAME</replaceable></literal>
- <!-- TODO can it be 4,8? -->
- - form field content must match CGI variable <replaceable>VARNAME</replaceable>
+ <literal>match <replaceable>CGI_VARNAME</replaceable></literal>
+ - form field content must be equal to the content of another field,
+ <replaceable>CGI_VARNAME</replaceable>
</para></listitem>
<listitem><para>
<literal>unique <replaceable>DATABASE</replaceable></literal>
1.2 +13 -1 xmldocs/glossary/reconfigure
rev 1.2, prev_rev 1.1
Index: reconfigure
===================================================================
RCS file: /var/cvs/xmldocs/glossary/reconfigure,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- reconfigure 3 Aug 2006 21:58:40 -0000 1.1
+++ reconfigure 17 May 2007 00:08:52 -0000 1.2
@@ -1 +1,13 @@
-See &howto-daemon-control;.
+Most of the time, the changes you make to the &glos-HTML; files or
+&glos-database;s are directly visible on the next access to your site.
+However, that is not the case with more "serious" files such as configuration
+files (&ccf;) or &glos-profile;s (<filename>etc/profiles*</filename>).
+</para><para>
+To apply changes from all those "non-instant" files, you must restart
+&IC; server or — quicker and more elegant — reconfigure just
+the specific catalog.
+</para><para>
+Changes to global configuration file (&gcf;) can only be applied
+by restarting Interchange completely.
+</para>
+For practical instructions, see &howto-daemon-control;.
1.38 +53 -36 xmldocs/guides/iccattut.xml
rev 1.38, prev_rev 1.37
Index: iccattut.xml
===================================================================
RCS file: /var/cvs/xmldocs/guides/iccattut.xml,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- iccattut.xml 29 Nov 2006 23:07:46 -0000 1.37
+++ iccattut.xml 17 May 2007 00:08:52 -0000 1.38
@@ -115,11 +115,12 @@
convenient, &glos-HTML;-like, &glos-ITL; (&IC; Tag Language) tags to
access its features.
</para> <para>
- The simple Interchange <firstterm>catalog</firstterm> you will create during this tutorial should give you a feel of the basic Interchange system. The catalog should also be considered a stepping stone to a more complete and functional Interchange-enabled website. We will rely on default settings as much as possible, to accentuate ideas instead of implementation. We will use a small number of Interchange features and still create a usable website (an on-line store in our example). <emphasis>The resulting site will be simple but usable</emphasis>. The value of this tutorial is in the explanations of the general Interchange ideas and small <emphasis>ready to use</emphasis> examples to get you up to speed.
+ The simple Interchange &glos-catalog; you will create during this tutorial should give you a feel of the basic Interchange system. The catalog should also be considered a stepping stone to a more complete and functional Interchange-enabled website. We will rely on default settings as much as possible, to accentuate ideas instead of implementation. We will use a small number of Interchange features and still create a usable website (an on-line store in our example). <emphasis>The resulting site will be simple but usable</emphasis>. The value of this tutorial is in the explanations of the general Interchange ideas and small <emphasis>ready to use</emphasis> examples to get you up to speed.
</para> <para>
We recommend that you create the files used in this tutorial yourself. You will learn more by creating the directory structure and using your favorite text editor to create files in the proper places on your own system as they are discussed.
</para> <para>
- Writing a complete tutorial without the feedback from the audience is hard. Please jot down your notes and remarks as you digest this tutorial and e-mail <ulink url="mailto:docelic at icdevgroup.org">docelic at icdevgroup.org</ulink> with your comments.
+ Writing a complete tutorial without the feedback from the audience is hard. Please jot down your notes and remarks as you digest this tutorial and e-mail
+authors with your comments.
</para>
</sect2>
@@ -222,16 +223,16 @@
</itemizedlist>
<important><para>
- The Interchange installation routine is very flexible and the resulting file locations on your system may vary, depending on how your system was set up. We recommend that you do not proceed until you are sure you have this information and the necessary permissions to write to the directories used. The locations mentioned here are valid for prepackaged RPM or DEB installations. If you did not install those packages, substitute the paths for your values appropriately.
+ The Interchange installation routine is very flexible and the resulting file locations on your system may vary, depending on how your system was set up. We recommend that you do not proceed until you are sure you know the correct filesystem paths and have the necessary permissions to write them.
</para></important>
</sect2>
<sect2 id='InterchangeDaemonandCatalogs'>
<title>Interchange Daemon and Catalogs</title>
<para>
- To control the Interchange daemon, use the <filename class='directory'>init.d</filename> script supplied with the RPM and DEB packages. For example, to start Interchange, run <userinput>/etc/init.d/interchange start</userinput> or <userinput>/etc/rc.d/init.d/interchange start</userinput>. To stop or restart Interchange, simply use <userinput>stop</userinput> or <userinput>restart</userinput> as arguments. (For more information, see &howto-daemon-control; HOW-TO).
- </para> <para>
- To reconfigure a catalog (re-read the appropriate <filename>catalog.cfg</filename>), either restart Interchange altogether or run <userinput>/usr/sbin/interchange -reconfig CATNAME</userinput>.
+ To control the Interchange daemon, use the <filename class='directory'>init.d</filename> script supplied with the RPM and DEB packages. For example, to start Interchange, run <userinput>/etc/init.d/interchange start</userinput> or <userinput>/etc/rc.d/init.d/interchange start</userinput>. To stop or restart Interchange, simply use <userinput>stop</userinput> or <userinput>restart</userinput> as arguments.
+ </para><para>
+ For more detailed information, see &howto-daemon-control;.
</para>
</sect2>
@@ -245,7 +246,7 @@
<sect2 id='CatalogFiles'>
<title>Catalog Files</title>
<para>
- This section describes the minimum of pages and directories that need to be established to create a properly functioning catalog named "<firstterm>tutorial</firstterm>". Start creating the files with superuser privileges; you'll be notified when we move to regular users space.
+ This section describes the minimum of files and directories that need to be established to create a properly functioning catalog named "<firstterm>tutorial</firstterm>". Start creating the files with superuser privileges; you'll be notified when we move to regular users space.
</para>
</sect2>
@@ -254,8 +255,10 @@
<para>
First of all, you need a &glos-link-program;. Read the &glos-link-program; glossary entry for an introduction and compilation instructions.
</para><para>
- If you already have one (used by some other catalog from the same &IC;
- server), you only need to find it (found in the <filename class='directory'>cgi-bin</filename> directory) and copy it to a new name, making sure the permissions stay intact. Run
+ It is perfectly possible to re-use the existing link program. So if you
+ already have one (used by some other catalog <emphasis>from the same &IC;
+ server</emphasis>), you only need to find it (look into your <filename class='directory'>cgi-bin</filename> directory) and copy it to a new catalog's name,
+ making sure the permissions stay intact. Run
<itemizedlist>
<listitem><para>
<userinput>cd /usr/lib/cgi-bin/ic; cp -p vlink tutorial</userinput>
@@ -268,8 +271,10 @@
</itemizedlist>
If everything is working correctly, typing <userinput>ls -l /usr/lib/cgi-bin/ic/</userinput> or <userinput>ls -l /var/www/cgi-bin</userinput> should roughly describe your files like this:
<screen>
--rwsr-xr-x 1 interchange interchange 7708 Dec 16 22:47 vlink
+-rwsr-xr-x 1 interchange interchange 7708 Dec 16 22:47 standard
+-rwsr-xr-x 1 interchange interchange 7708 Dec 16 22:47 tlink
-rwsr-xr-x 1 interchange interchange 7708 Dec 16 22:47 tutorial
+-rwsr-xr-x 1 interchange interchange 7708 Dec 16 22:47 vlink
</screen>
</para> <para>
The link program enables communication with the Interchange daemon. You might notice both <filename>vlink</filename> and <filename>tlink</filename> files present; the former uses Unix sockets to talk to the Interchange daemon (what you want most of the time), while the latter uses Inet sockets<footnote><para>Unix sockets are a way for programs on the same machine to communicate. It is not possible to connect to an Unix socket remotely (this is interprocess communication, mind you, and it doesn't mean you can't browse the website from a different machine). When you need remote connection, you then have to use Inet sockets.</para></footnote> and won't be used in this tutorial.
@@ -312,7 +317,7 @@
<para>
Interchange configuration is controlled by a number of directives, which are specified in two main files. Global configuration directives go to the <filename>interchange.cfg</filename> file which is common for all catalogs running on servers started from the same Interchange installation directory (&glos-ICROOT;). Catalog-specific configuration directives go to <filename>catalog.cfg</filename> in the catalog directory (&glos-CATROOT;).
</para> <para>
- The first directive we need to add is the global <option>Catalog</option> directive, telling Interchange the details of the new catalog. Open the <filename>/etc/interchange/catalogs.cfg</filename> file and add the following:
+ The first directive we need to add is the global <option>Catalog</option> directive, specifying details for the new catalog. Open file <filename>/etc/interchange/catalogs.cfg</filename> and add the following:
<programlisting>
Catalog tutorial /var/lib/interchange/catalogs/tutorial /cgi-bin/ic/tutorial
</programlisting>
@@ -323,7 +328,11 @@
ErrorFile /var/log/interchange/error.log
</programlisting>
</para> <para>
- As you can intuitively see, a complete (although somewhat basic) config directive consists of the directive name followed by whitespace-separated parameters. Any number of spaces or tabs can appear between the directive and its options. The directive is case-insensitive, but it is recommended that you use it consistently for readability. You can insert blank lines or comment lines (lines where the first non-blank character is '#') throughout the configuration files to improve readability. The order the lines appear in is significant, but unimportant for the simple catalog we're creating.
+ As you can intuitively see, an example of a complete (although somewhat basic) configuration directive consists of the directive name (<literal>Catalog</literal>, <literal>DebugFile</literal>, <literal>ErrorFile</literal>, ...), followed by directive-specific parameters. Any number of spaces or tabs can appear between the directives and their options. The directives are case-insensitive, but it is recommended that you stick to your choice for readability. You can insert blank lines or comment lines (lines where the first non-blank character is '#') throughout the configuration files. The order in which the lines appear is important, but this won't matter in the simple catalog we're creating.
+ </para>
+ <para>
+ For more information on &IC; configuration files, see &glos-configuration;
+ glossary entry.
</para>
</sect2>
@@ -343,7 +352,7 @@
<sect2 id='ProductsDatabase'>
<title>Products Database</title>
<para>
- The <database class='table'>products</database> database we mentioned, kept in <filename>products/products.txt</filename>, will serve two purposes. It will provide Interchange with the layout of the products database table and it will also provide the data. When Interchange comes around to parse the <filename>products.txt</filename> file, it will expect the first line to contain the names of the fields for the database table (the <database class='field'>sku</database>, <database class='field'>description</database> and <database class='field'>price</database> fields are mandatory for a products database, but you can add arbitrary other fields as you see fit). The first field in the list is expected to be the primary key (unique identifier) for the row. In most cases you are going to use the SKU (<firstterm>Stock Keeping Unit</firstterm>) as the unique identifier for each product. The simple store that we are going to build will sell some kind of tests or exams. You can choose another sample product line, but it is recommended that you keep it simple. Create the file <filename>products/products.txt</filename>, separating fields <emphasis>with a single TAB</emphasis>:
+ The <database class='table'>products</database> database we mentioned, kept in <filename>products/products.txt</filename>, will serve two purposes. It will provide Interchange with the layout of the products database table and it will also provide the data. When Interchange comes around to parse the <filename>products.txt</filename> file, it will expect the first line to contain the names of the fields for the database table (the <database class='field'>sku</database>, <database class='field'>description</database> and <database class='field'>price</database> fields are mandatory for a products database, but you can add arbitrary other fields as you see fit). The first field in the list is expected to be the primary key (unique identifier). In most cases you are going to use the &glos-SKU; (<firstterm>Stock Keeping Unit</firstterm>) as the unique identifier for each product. The simple store that we are going to build will sell some kind of tests or exams. You can choose another sample product line, but it is recommended that you keep it simple. Create the file <filename>products/products.txt</filename>, separating fields <emphasis>with a single TAB</emphasis>:
<programlisting>
<xi:include parse='text' href='../files/tutorial-phase1/products/products.txt'/>
</programlisting>
@@ -352,9 +361,9 @@
</para> <para>
If you need more entries for the sample products database, you can use the <ulink url="files/dbgen">dbgen</ulink> Perl script to automatically create random database files for testing. The output of the script is much more meaningful if you provide it a list of words to work on (instead of just random characters) so make sure you have the <filename>/usr/share/dict/words</filename> file (in Debian, it's provided by the <literal>wenglish</literal> package), and then run <userinput>perl dbgen -c 10 -r /usr/share/dict/words > products/products.txt</userinput>. See the script source for available options and the complete usage syntax.
</para> <para>
- It is important to know that Interchange does not use plain-text databases (such as our <systemitem class='database'>products</systemitem> database) as-is; the data is imported and stored in a variant of the DBM database (Berkeley DB or GDBM, depending on which variant is available on your system — unless you specify a different "backend", of course). That's why on most Linux systems, you will see the <filename>products/products.gdbm</filename> file created once you put the catalog on-line.
+ It is important to know that Interchange does not use plain-text &glos-database;s (such as our <systemitem class='database'>products</systemitem> database) as-is; the performance would be poor. So instead, the data is imported and stored in a variant of the DBM database (Berkeley DB or GDBM, depending on which variant is available on your system —). That's why on most Linux systems, you will see the <filename>products/products.gdbm</filename> file created once you put the catalog on-line. It is also possible to specify a different backend, such as &MYSQL;, &PGSQL; or &ORACLE; database; in fact, most non-trivial setups choose some &glos-SQL; backend.
</para> <para>
- To just briefly mention it, whenever you edit the text database file, Interchange will detect that and re-import the file into the DBM database on next access. All aspects of this auto-import (including its deactivation) are of course controlled by config file options (but are out of scope of this tutorial).
+ To just briefly mention it, whenever you use a DBM-based backend and edit the text database file, Interchange will detect the change and re-import the source file into the DBM database on next access. All aspects of this auto-import (including its deactivation) are of course controlled by config file options (but are out of scope of this tutorial).
</para> <para>
Now that we have the majority of base files ready, we just need to create the HTML page templates.
</para>
@@ -433,11 +442,11 @@
</para>
</tip>
<para>
- ITL is at the heart of almost all Interchange catalog pages: ITL is the way you use Interchange's functionality. The ITL tags appear between square brackets, and accept all <emphasis>named</emphasis> or all <emphasis>positional</emphasis> parameters; here's an example (make sure you understand it!):
+ ITL is at the heart of almost all Interchange catalog pages: ITL is the way you use Interchange's functionality. The ITL tags appear between square brackets, and accept <emphasis>all named</emphasis> or <emphasis>all positional</emphasis> parameters; here's an example (make sure you understand this!):
<programlisting>
-[data table="products" column="price" key="1299"] (named parameters)
+[data table="products" column="price" key="1299"] (named parameters, <replaceable>NAME</replaceable>=<replaceable>VALUE</replaceable> <replaceable>NAME</replaceable>=<replaceable>VALUE</replaceable> ...)
-[data products price 1299] (positional parameters)
+[data products price 1299] (positional parameters, <replaceable>VALUE</replaceable> <replaceable>VALUE</replaceable> ...)
</programlisting>
</para>
<important><para>
@@ -460,14 +469,14 @@
<xi:include parse='text' href='../files/tutorial-phase1/pages/index.html'/>
</programlisting>
</para> <para>
- Interchange pages in the <filename class='directory'>pages/</filename> directory (or elsewhere) must have the .html suffix. You can omit the suffix in both your URLs when accessing pages with a Web browser, and in the tags you call (such as <tag>page</tag>), but the files on the disk must be properly named.
+ Interchange pages in the <filename class='directory'>pages/</filename> directory (or elsewhere, when configured) must have the .html suffix. You can omit the suffix in both your URLs when accessing pages with a Web browser, and in the tags you call (such as <tag>page</tag>), but the files on the disk must be properly named. (In fact, the actual suffix is controlled by the &conf-HTMLsuffix; config directive).
</para>
</sect2>
<sect2 id='TutorialCataloginAction'>
<title>Tutorial Catalog in Action</title>
<para>
- As the superuser, first restart Interchange to make sure all the <filename>catalog.cfg</filename> changes get applied to the running catalog.
+ As the superuser, first restart Interchange to make sure all changes are applied to the &IC; server and catalog.
</para> <para>
Monitor the log files: <userinput>tail -f /var/log/{interchange,apache*}/*log</userinput>
</para> <para>
@@ -518,9 +527,11 @@
<listitem><para>
Did you type all punctuation, ITL tags, and HTML tags correctly?
</para></listitem>
+ <!--
<listitem><para>
Did you use whitespace correctly in the cases where it mattered? Remember to use tabs when tabs are called for (in lists and database text files).
</para></listitem>
+ -->
<listitem><para>
Did you restart Interchange if you changed anything in <filename>interchange.cfg</filename> or <filename>catalog.cfg</filename>, or if you're in a high-traffic mode?
</para></listitem>
@@ -528,7 +539,7 @@
Check your catalog error log, error.log in your tutorial catalog directory, to see if Interchange reported any errors.
</para></listitem>
<listitem><para>
- Check the Interchange server error log, error.log in the Interchange software directory, to see if it had problems loading the catalog at all.
+ Check the Interchange server error log, error.log in the Interchange software directory, to see if it had problems configuring the catalog in the first place.
</para></listitem>
<listitem><para>
View the HTML source of any catalog pages that are loading incorrectly to check for a coding error. The problem may reveal itself when you see what HTML the browser is getting.
@@ -570,7 +581,7 @@
</table>
]]></programlisting>
</para> <para>
- Now we will use Interchange tags to fill in the rest of the table with the products database you created. The <tag>loop</tag> ITL tag pair tells Interchange to iterate over each item in the parameter list. In this case, the loop runs over the results of an Interchange search. The search parameter does a database search on the provided parameters. In this case, <emphasis role='bold'>we're doing a very simple search that returns all of the fields for all of the entries in the <database class='table'>products</database> database</emphasis>. The parameters passed to the search tell Interchange to return all records ('ra') from the products file ('fi'). The following should take the place of the ellipsis in the code we placed in <filename>pages/index.html</filename>:
+ Now we will use Interchange tags to fill in the rest of the table with the products database you created. The <tag>loop</tag> ITL tag pair tells Interchange to iterate over each item in the parameter list. In this case, the loop runs over the results of an Interchange search. The search parameter does a database search on the provided parameters. In this case, <emphasis role='bold'>we're doing a very simple search that returns all of the fields for all of the entries in the <database class='table'>products</database> database</emphasis>. The parameters passed to the search tell Interchange to return all records ('ra') from the products file ('fi'). The following should take the place of the ellipsis (the "three dots") in the above code that we placed in <filename>pages/index.html</filename>:
<programlisting><![CDATA[
[loop search="ra=yes/fi=products"]
@@ -588,7 +599,7 @@
</tr>
]]></programlisting>
</para> <para>
- The <code>[loop-code]</code> tag refers to the primary key (unique identifier) for the current row of the database table in question. In this case, it will produce the same output as the <code>[loop-field sku]</code> tag, because the 'sku' field is the primary key for products table. In each case, the tag is replaced by the appropriate element. When put together, Interchange generates a page with your products table on it.
+ The <code>[loop-code]</code> tag refers to the primary key (unique identifier) for the current row of the database table in question. In this case, it will produce the same output as the <code>[loop-field sku]</code> tag, because the 'sku' field is the primary key ("code") for products table. In each case, the tag is replaced by the appropriate element. When put together, Interchange generates a page with your products table on it.
</para> <para>
Your finished <filename>pages/index.html</filename> page should look like this:
<programlisting>
@@ -602,9 +613,9 @@
<sect2 id='pages_flypage'>
<title>pages/flypage.html</title>
<para>
- The next step is to create an individual page for each item. You could theoretically create each page manually, but that approach isn't worth considering. So to do this the right way, we need to create a <emphasis>special generic page</emphasis> called <firstterm>the flypage</firstterm> (<filename>pages/flypage.html</filename>). When a page is requested that does not exist in the <filename class='directory'>pages/</filename> directory, Interchange will check and see if the requested page has the same name as a product ID from the product database table (in this case a SKU). If it does, it will then show the flypage for that product. If there's no product with that ID, the special error page <filename>special_pages/missing.html</filename> (described in the next section) will be displayed.
+ The next step is to create an individual page for each item. You could theoretically create each page manually, but that approach isn't worth considering. So to do this the right way, we need to create a <emphasis>special generic page</emphasis> called <firstterm>the flypage</firstterm> (<filename>pages/flypage.html</filename>). When a page is requested that does not exist in the <filename class='directory'>pages/</filename> directory, Interchange will check and see if the requested page is equal to an existing product code from the <database>products</database> database table. If it does, it will then show the flypage and populate it with the corresponding product's data. If there's no product with that ID, the special error page <filename>special_pages/missing.html</filename> (described in the next section) will be displayed.
</para> <para>
- For example, if you request the <filename>0198.html</filename> page, Interchange first checks if that specific page exists (<filename class='directory'>pages/0198.html</filename>). If one is not found, it searches the products database table for a product with that ID 0198. Interchange then creates that product page <emphasis>on the fly</emphasis> using <filename>pages/flypage.html</filename>. When constructing the flypage, the entire product record for the requested product is available through the <tag>item-field</tag> tag (similar to the <tag>loop-field</tag> tag). To create a fly page, type the following code and save it as <filename>pages/flypage.html</filename>.
+ For example, if you request page <filename>0198.html</filename>, Interchange first checks if that specific page exists (<filename class='directory'>pages/0198.html</filename>). If one is not found, it searches the products database table for product code <literal>0198</literal>. When found, Interchange creates product page <emphasis>on the fly</emphasis> using <filename>pages/flypage.html</filename>. When constructing the flypage, the entire product record for the requested product is available through the <tag>item-field</tag> tag (similar to the <tag>loop-field</tag> tag). To create a fly page, type the following code and save it as <filename>pages/flypage.html</filename>.
<programlisting>
<xi:include parse='text' href='../files/tutorial-phase2/pages/flypage.html'/>
</programlisting>
@@ -621,7 +632,7 @@
<xi:include parse='text' href='../files/tutorial-phase2/special_pages/missing.html'/>
</programlisting>
</para> <para>
- The addition of this page ensures that users see your error message instead of a mysterious server error if they mistype the URL.
+ The addition of this page ensures that users see your error message instead of a mysterious server error if they mistype the URL or click a broken link.
</para>
</sect2>
@@ -732,9 +743,15 @@
</para> <para>
The HTML form begins with a method of 'post' (which sends the form data as its own stream, as opposed to the 'get' method which encodes the data as part of the URL). The <tag>process</tag> tag creates a special URL for form processing. Interchange has a built-in form processor that is configured by submitting certain fields in the form. The Finalize button will invoke this form processor and link the user to the <filename>special_pages/receipt.html</filename> page, which is described later.
</para> <para>
- You are submitting some hidden form values that will tell Interchange how to process this form. The first value, <mv>mv_todo</mv> was set as submit. This causes the form to be submitted for validation. The second value, <mv>mv_order_profile</mv> was set as <literal>order_profile</literal>. This determines the validation process for the form which is explained further in the next section.
+ The code <code>[form-session-id]</code> basically just expands to a
+ hidden form variable that specifies the &glos-session; ID. It is
+ <emphasis role='bold'>very important</emphasis> to always include
+ this in every &glos-HTML; form. That way, &IC; can work properly
+ <emphasis>even when the client is not accepting cookies!</emphasis>
+ </para> <para>
+ You are also submitting some hidden form values that will tell Interchange how to process this form. The first value, <mv>mv_todo</mv> was set to "<literal>submit</literal>". This causes the form to be submitted for validation. The second value, <mv>mv_order_profile</mv> was set to "<literal>order_profile</literal>. This determines the name of the profile according to which the validation will be performed.
</para> <para>
- The last value, <mv>mv_cyber_mode</mv>, was set to be <literal>minivend_test</literal>. The <mv>mv_cyber_mode</mv> value determines what method will be used to charge a credit card. The value of <literal>minivend_test</literal> uses the internal test method, which calculates a simple checksum against the card to determine if it is a valid number.
+ The last value, <mv>mv_cyber_mode</mv>, was set to "<literal>minivend_test</literal>". The <mv>mv_cyber_mode</mv> value determines what method will be used to charge a credit card. The value of <literal>minivend_test</literal> uses the internal test method, which calculates a simple checksum against the card to determine if it is a valid number.
</para> <para>
When preparing an order for processing, Interchange looks for certain named fields in the form to obtain name, address, and credit card information. We are using all expected (default) field names in this form so that no translation needs to take place.
</para> <para>
@@ -745,7 +762,7 @@
<sect2 id='etc_profiles_order'>
<title>etc/profiles.order</title>
<para>
- You need to set up verification for the order form by defining an order profile for the form. An order profile determines what fields are necessary for the form to be accepted. Create an order profile verification page by typing the following and saving it as <filename>etc/profiles.order</filename>. The section that follows explains the code used:
+ You need to set up verification for the order form by defining an order profile for the form. An order profile determines what fields are necessary for the form to be accepted. Create an order profile by typing the following and saving it as <filename>etc/profiles.order</filename>. The section that follows explains the code used:
<programlisting>
<xi:include parse='text' href='../files/tutorial-phase4/etc/profiles.order'/>
</programlisting>
@@ -867,7 +884,7 @@
</para> <para>
Restart Interchange and view your catalog. You will notice little has changed on the welcome page or the flypages, <emphasis role='bold'>but in the shopping cart</emphasis> (<filename>pages/ord/basket.html</filename>) all your prices should be formatted as U.S. dollars ("1347.3" has become "$1,347.30"). Why the currency is only displayed on the basket page is easy to understand; we use the <tag>item-price</tag> tag there. That tag is equivalent to <code>[item-field price]</code> used elsewhere, but it has that extra logic associated with it that automatically displays the currency format. To use <tag>item-price</tag> without the auto-format, you'd have to change the <code>[item-price]</code> tag to <code>[item-price noformat]</code>.
</para> <para>
- But that's probably not what you want to do. You're probably more interested in formatting your other prices (such as those on the Welcome page) as currency. To do that, you could obviously replace <code>[item-field price]</code> with <code>[item-price]</code>, but we'll take on more general approach here. Simply use the <tag>currency</tag><tag>/currency</tag> tag pair for all price values. Make the following change to <filename>pages/index.html</filename>:
+ But that's probably not what you want to do. You're probably more interested in formatting all the other prices (such as those on the Welcome page) to a proper currency-dependent display. To do that, you could obviously replace <code>[item-field price]</code> with <code>[item-price]</code>, but we'll take on more general approach here. Simply use the &tag-currency; tag for all price values. Make the following change to <filename>pages/index.html</filename>:
<programlisting><![CDATA[
[loop search="ra=yes/fi=products"]
<tr>
@@ -919,7 +936,7 @@
Variable <replaceable>SOMENAME</replaceable> whatever value you want
</programlisting>
</para> <para>
- To access that variable in your pages, type the token <varname>__<replaceable>SOMENAME</replaceable>__</varname>. Notice that there are two underscore characters before the variable name and two after it, and that in place of the word <replaceable>SOMENAME</replaceable> you would put the actual name of the variable. The first thing Interchange does on a page is to replace the token with the variable's value. The value can also include Interchange tags to be parsed.
+ To access that variable in your pages, type the token <varname>__<replaceable>SOMENAME</replaceable>__</varname>. Notice that there are two underscore characters before the variable name and two after it, and that in place of the word <replaceable>SOMENAME</replaceable> you would put the actual name of the variable. The first thing Interchange does on a page is to replace the token with the variable's value. The variable value can also include Interchange tags to be parsed.
</para> <para>
This was an example of a <emphasis>catalog</emphasis> variable. There are also <emphasis>global</emphasis> variables which are defined in the same way (but in the <filename>interchange.cfg</filename> file), and are accessed using the <varname>@@<replaceable>SOMENAME</replaceable>@@</varname> token. A convenient, <varname>@_<replaceable>SOMENAME</replaceable>_@</varname> syntax is also valid, and first checks the existence of a variable in the local catalog, falling back to the global value if no catalog-specific value has been set.
</para>
@@ -1091,7 +1108,7 @@
"]
</programlisting>
</para> <para>
- Now let's try narrowing the search down a bit. Instead of returning all, we'll give 'se', the search parameter, and and use 'su', which allows substring matches. To search only for products that have the word "test" in one of their fields, and sort the results by description, type:
+ Now let's try narrowing the search down a bit. Instead of returning all, we'll give 'se', the search parameter, and and use 'su', which allows substring matches. To search only for products that contain substring "test" in any of their fields, and sort the results by description, type:
<programlisting>
[loop search="
se=test
@@ -1101,9 +1118,9 @@
"]
</programlisting>
</para> <para>
- Which seems like something that would be better done in a search box for your store visitors.
+ Which seems like something that would be better done in a search box for your store visitors. So we'll implement a search box.
</para> <para>
- Before moving on, change this search back to the simple list, sorted by description:
+ But before moving on, just change this search back to the simple list, sorted by description:
<programlisting>
[loop search="ra=yes/fi=products/tf=description"]
</programlisting>
@@ -1113,7 +1130,7 @@
<sect2 id='AddingaSearchBox'>
<title>Adding a Search Box</title>
<para>
- Your customers might appreciate the ability to search for a test by SKU or part of the test description. To do this, you need to add a search box to the left portion of the page layout. Make the following change to the file left:
+ Your customers might appreciate the ability to search for a test by SKU or part of the test description. To do this, you need to add a search box to the left portion of the page layout. Make the following change to the file <filename>left</filename>:
<programlisting><![CDATA[
<tr>
<td align="center">
@@ -1138,7 +1155,7 @@
</para> <para>
This is a simple HTML form with a single input box for text. The action goes to a special Interchange processor called 'search' that will perform the search and pass the results to a page called <filename>pages/results.html</filename> (that has not been created yet). The search will be case-insensitive, but will only match complete words, not substrings.
</para> <para>
- The <code>[set testname]...[/set]</code> tags set an Interchange scratch variable that will be (in this case, of course) used as a predefined search profile. We specify all the search parameters except the one the user will enter, <mv>mv_searchspec</mv> (the long name for 'se'). We then tell Interchange we want to use this search profile in a hidden form variable named <mv>mv_profile</mv>.
+ The <code>[set testname]...[/set]</code> tag sets an Interchange &glos-scratch; variable that will be (in this case, of course) used as a predefined search profile. We specify all the search parameters except the one the user will enter, <mv>mv_searchspec</mv> (the long name for 'se'). We then tell Interchange we want to use this search profile in a hidden form variable named <mv>mv_profile</mv>.
</para> <para>
The search box will now appear on all catalog pages, but you still need to create the search results page. To create the search results page, type the following code and save it as <filename>pages/results.html</filename>.
</para> <para>
1.15 +38 -5 xmldocs/guides/index.xml
rev 1.15, prev_rev 1.14
Index: index.xml
===================================================================
RCS file: /var/cvs/xmldocs/guides/index.xml,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- index.xml 14 Feb 2007 14:21:21 -0000 1.14
+++ index.xml 17 May 2007 00:08:52 -0000 1.15
@@ -9,22 +9,26 @@
<title>XMLDOCS - Interchange Documentation Set</title>
<titleabbrev>index</titleabbrev>
-<!--
<copyright>
<year>2005</year>
- <holder>Davor Ocelic</holder>
+ <year>2006</year>
+ <year>2007</year>
+ <holder>
+ <ulink url='http://www.icdevgroup.org/'>Interchange Development Group</ulink>
+ <ulink url='http://www.icdevgroup.org/'>(http://www.icdevgroup.org/)</ulink>
+ </holder>
</copyright>
--->
<copyright>
<year>2005</year>
<year>2006</year>
<year>2007</year>
<holder>
- <ulink url='http://www.icdevgroup.org/'>Interchange Development Group</ulink>
- <ulink url='http://www.icdevgroup.org/'>(http://www.icdevgroup.org/)</ulink>
+ Davor Ocelic
+ <ulink url='mailto:docelic+icdevgroup.org'>(docelic+icdevgroup.org)</ulink>
</holder>
</copyright>
+<!--
<authorgroup>
<author>
<firstname>Davor</firstname>
@@ -32,6 +36,12 @@
<email>docelic at icdevgroup.org</email>
</author>
</authorgroup>
+<authorgroup condition='online'>
+-->
+<authorgroup>
+ <emphasis role='bold'>Search documentation:</emphasis>
+ <xi:include parse='text' href='../search/html-search-box' />
+</authorgroup>
<legalnotice>
<para>
@@ -48,6 +58,29 @@
</para>
</legalnotice>
</bookinfo>
+
+
+<!--
+<informaltable
+ align='center' pgwide='1' orient='port' title='' label='' frame='vsides'
+ summary='' cellspacing='2' cellpadding='2' border='0' rowheader='firstcol'>
+ <tgroup cols='1'>
+ <colspec colname="search" />
+ <thead>
+ <row>
+ <entry>Search</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+</informaltable>
+-->
+
<informaltable
align='center' pgwide='1' orient='port' title='' label='' frame='vsides'
1.9 +13 -16 xmldocs/howtos/daemon-control
rev 1.9, prev_rev 1.8
Index: daemon-control
===================================================================
RCS file: /var/cvs/xmldocs/howtos/daemon-control,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- daemon-control 3 Sep 2006 10:03:24 -0000 1.8
+++ daemon-control 17 May 2007 00:08:52 -0000 1.9
@@ -2,9 +2,20 @@
Knowing how to manage the Interchange daemon is one of the very basic
administration tasks.
-</para><para>
+</para>
+
+<note><para>
+Since Interchange does not generally like being run with admin privileges
+(user root), you will most probably have to invoke the commands listed
+below under the Interchange username. To do so, you will either log in as
+Interchange user, or as sufficiently-privileged user invoke
+<userinput>su -c '<replaceable>COMMAND</replaceable>' <replaceable>INTERCHANGE_USER</replaceable></userinput>, or
+<userinput>sudo -u <replaceable>INTERCHANGE_USER</replaceable> <replaceable>COMMAND</replaceable></userinput>.
+</para></note>
+
+<para>
You can test the configuration without interrupting the running processes
-bu invoking:
+by invoking:
<itemizedlist>
<listitem><para>
<userinput>/usr/sbin/interchange -test</userinput>
@@ -47,20 +58,6 @@
&glos-ICROOT;.
</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>
<para>
&IC; is stopped by running:
</para>
1.4 +1 -1 xmldocs/refs/SessionDB
rev 1.4, prev_rev 1.3
Index: SessionDB
===================================================================
RCS file: /var/cvs/xmldocs/refs/SessionDB,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SessionDB 6 Nov 2006 18:41:21 -0000 1.3
+++ SessionDB 17 May 2007 00:08:52 -0000 1.4
@@ -9,7 +9,7 @@
__NAME__ see also
-SessionDatabase,SessionDB, SessionExpire,SessionLockFile,SessionType
+SessionType,SessionDatabase,SessionDB, SessionExpire,SessionLockFile
__END__
1.5 +2 -2 xmldocs/refs/SessionDatabase
rev 1.5, prev_rev 1.4
Index: SessionDatabase
===================================================================
RCS file: /var/cvs/xmldocs/refs/SessionDatabase,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SessionDatabase 6 Nov 2006 18:41:21 -0000 1.4
+++ SessionDatabase 17 May 2007 00:08:52 -0000 1.5
@@ -1,5 +1,5 @@
__NAME__ purpose
-specify location of the user sessions database
+specify location of the file-based user sessions database
__END__
@@ -15,7 +15,7 @@
__NAME__ description
The &conf-SessionDatabase; directive defines the location
-of the user &glos-session;s database, and the path may be absolute.
+of the file-based user &glos-session;s database, and the path may be absolute.
</para><para>
For DBM sessions, an appropriate <literal>.db</literal> or
<literal>.gdbm</literal> suffix will be appended. For the default
1.6 +11 -0 xmldocs/refs/error.tag
rev 1.6, prev_rev 1.5
Index: error.tag
===================================================================
RCS file: /var/cvs/xmldocs/refs/error.tag,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- error.tag 12 Sep 2006 21:03:12 -0000 1.5
+++ error.tag 17 May 2007 00:08:52 -0000 1.6
@@ -397,6 +397,17 @@
-->
__END__
+__NAME__ example: the most simple error display
+The following will simply display all accumulated session errors.
+(Note that after display, session errors will be cleared and will
+not show up on subsequent page accesses).
+<programlisting><![CDATA[
+<ul>
+[error auto=1]
+</ul>
+]]></programlisting>
+__END__
+
__NAME__ example
Trigger an error:
<programlisting>
More information about the docs
mailing list