audit log display for activity by a member
[bse.git] / site / docs / config.pod
CommitLineData
61551101
TC
1=head1 NAME
2
3config.pod - documents BSE configuration file options
4
5=head1 DESCRIPTION
6
7BSE historically used Constants.pm to keep most configuration
8information. The plan is to make sure any new configuration is kept
9in bse.cfg, and to slowly move most configuration information into
10bse.cfg.
11
12Keeping configuration information in Constants.pm makes it difficult
13to perform upgrades and makes it impossible to use tools such as
14mod_perl, at least if you want more than one site on the machine.
15
71721575
TC
16F<bse.cfg> is read as a utf-8 encoded file.
17
61551101
TC
18=head1 CONFIGURATION ENTRIES
19
41f10371
TC
20=head2 [site]
21
22Contains URL configuration for the site.
23
24=over
25
26=item url
27
28The normal URL for the non-secure parts of the site.
29
30=item secureurl
31
32The secure URL for the shop, products and other portions of the site
33that should use SSL. This isn't checked to make sure it is https.
34
35=item name
36
37Used as the site "name" in a few places.
38
39=item adminurl
40
41If set, this is used as the base URL for accessing the administrative
42functions of your site.
43
44=item secureadmin
45
46Ignored if C<adminurl> is set.
47
48If this is true then C<secureurl> is used as the base URL for
49accessing the administrative functions of your site, otherwise C<url>
50is used as the base URL. Default: false (C<url>'s value is used)
51
c5f849c7
TC
52=item forward_from
53
54Configure the IP address of one or more front-end proxies. This can
55be a regular expression except that C<.> is translated to C<\.> and
56C<*> is tranlated to C<.*> to give more glob() like matching.
57
58If the reqesting host matches then admin site URL matching is done
59against HTTP_X_FORWARDED_SERVER instead of SERVER_NAME.
60
61Default: no front-end server configured.
62
41f10371
TC
63=back
64
61551101
TC
65=head2 [paths]
66
67Contains various file system paths.
68
69=over
70
71=item downloads
72
73This is where the files uploads with the file wizard are stored. It
74must be writable by the web server user.
75
76=item admin_templates
77
78Directory containing administrative templates. Note: this is not
79completely implemented for now, so assume the default. Default: admin
80directory under $TMPLDIR.
81
82=item templates
83
02d87eea
TC
84Directory base for most templates. This can contain references like
85$(section/key) to other configuration entries. Split on the systems
86PATH separators (run: perl -V:path_sep)
aefcabcb
TC
87
88=item local_templates
89
90Local Directory base for templates. This is searched before the
02d87eea
TC
91templates directory. This can contain references like $(section/key)
92to other configuration entries. Split on the system's PATH separator.
61551101 93
5abe2da5
TC
94=item public_html
95
96Web server document root. Static pages are generated under this
97directory. Default: $CONTENTBASE.
98
ca9aa2bf
TC
99=item images
100
101Where uploaded images are stored. This is not yet completely
102implemented. Default: $IMAGEDIR.
103
331fd099
TC
104=item libraries
105
106Local search path for BSE::Custom, or the class configured by
107C<custom_class> in [basic].
108
3c32512d
TC
109=item siteuser_images
110
111Where uploaded siteuser images are stored. This must be set in the
112config file. The default bse.cfg include an entry to use the current
113values of [paths].downloads
114
efcc5a30
TC
115=item dynamic_cache
116
117Pregenerated dynamic article pages are stored here. This must be
118defined if you site contains any dynamicly generated pages.
119
195977cd
TC
120=item scalecache
121
122The directory where cached versions of scaled thumbnails are stored.
123Defaults to image_dir/scaled. This must be in the document tree. If
124you set this you should also set scalecacheurl.
125
126=item scalecacheurl
127
128The URL to the directory represented by scalecache. Defaults to
129/images/scaled.
130
61551101
TC
131=back
132
133=head2 [extensions]
134
135This section is used by the file wizard to map uploaded file
136extensions to MIME content types. This can be used to extend
137BSE::FileEditor's internal extension map. It cannot override that
138map.
139
140The key for each entry is the extension, without the leading '.'.
141
142eg.
143
144 xls = application/msexcel
145
146=head2 [templates]
147
148Used for translating symbolic template names into full names under the
149template directory.
150
151In each case the default is the name with a C<.tmpl> extension.
152
153=over
154
155=item user/logon
156
157user logon page
158
159=item user/register
160
161user registration page
162
163=back
164
165=head2 [admin templates]
166
167Used for translating the names of administration templates into filenames.
168
169In each case the default is the name with a C<.tmpl> extension.
170
171=over
172
173=item filelist
174
175article file wizard
176
d2730773
TC
177=item catalog
178
179Catalog editor page. Default admin/edit_catalog.tmpl
180
181=item 1
182
183=item 2
184
185=item 3
186
187=item 4
188
189=item 5
190
191Article edit pages. Default admin/edit_<number>.tmpl
192
193=item steps
194
195Step child/parent management page. Default admin/edit_steps.tmpl
196
61551101
TC
197=back
198
199=head2 [html]
200
201Minor html items.
202
203=over
204
205=item charset
206
207The value of the charset keyword when outputting HTML from a script.
208Set to the empty string to suppress the charset keyword. Default:
209iso-8859-1.
210
5af99440
TC
211=item redirect_links
212
213If this is a non-zero number, then all but mailto links are redirected
214to C<nuser.pl/redirect> so you can display a diclaimer. If this
215contained alphabetics it's treated as a comma separated list of url
216schemes that should be handled via C<nuser.pl/redirect>. If 0 or not
217present, no redirection is done.
218
219The redirect URL includes a hash of the url, title and the redirect
220salt to prevent using this mechanism by external sites for cookie
221stealing attacks.
222
223=item redirect_salt
224
225The salt used in generating the has for redirect_links. Default: an
226empty string.
227
61551101
TC
228=back
229
230=head2 [basic]
231
232=over
233
234=item cookie_lifetime
235
236The expiry time for cookies. This should be in the form supported by
237CGI.pm for the -expires parameter. Typically you want a plus ('+'), a
238number, and a time character (s - seconds, m - minutes, h - hours, d -
239days, M - months). Default: +3h
240
a8ddb0f3
TC
241=item cookie_domain
242
243This overrides the domain value set for cookies. This is useful if
244you allow the site to run under both example.com and www.example.com,
245if you set cookie_domain to example.com then a user visiting
246www.example.com will still have their cookies when they visit
247example.com.
248
3c8b9c2c
TC
249=item cookie_name
250
251This overrides the cookie name used to store the session id. Default:
252sessionid. This is useful when you have 2 sites under the same
253top-level domain, and helps disambiguate the cookie returned by the
254browser.
255
61551101
TC
256=item minpassword
257
258Minimum password length in characters. Default: 4.
259
b19047a6
TC
260=item randomdata
261
262Device to read random data from. This device should not block when it
263runs out of entropy.
264
6e3d2da5
TC
265=item sign
266
267If this is true then the encrypted messages containing the customer's
268credit card number are sent to the shop owner signed. To avoid
269keeping a passphrase and signing key on the server you can set this to
270false (0). This has the effect that anyone could send you an unsigned
271message encrypted with your public key, though this may not be a
272security threat. Default: True.
273
ca9aa2bf
TC
274=item link_titles
275
276If this is true then the links to your articles within BSE will be
277followed by a / and then by a simplified version of the article title.
278The aim is to include at least some title information in the URL
279without modifying the name of the HTML file. Default: False.
280
9168c88c
TC
281=item access_control
282
283If this is true then the user/group/permissions database is used to
284control access to the system. Default: False.
285
147e99e8
TC
286=item access_filter_steps
287
288If this is true, then the drop-down lists of possible stepparents and
289stepchildren on the article edit pages are filtered for access control.
290Default: False.
291
444957b9
TC
292=item access_filter_parents
293
294If this is true, then the drop-down lists of possible parents on the
295newsletter edit pages are filtered for access control.
296Default: False.
297
d49f56a6
TC
298=item server_auth
299
300Set this to non-zero to enable authentication via server
301authentication (usually Basic Authentication.) You should normally
302set this if you set htusers below. Default: 0 (disabled)
303
9168c88c
TC
304=item htusers
305
306This should be the path to a file to be updated with the list of users
307and crypt() versions of their passwords. If this is set then the
308security system will check for a user set by the browser before
309attempting a form based logon. Default: None.
310
331fd099
TC
311=item custom_class
312
313The name of the custom class for your site. This is currently only
314used for article editing customizations. This class should derive
315from BSE::CustomBase. Default: BSE::Custom.
316
671a9877 317=item jit_dynamic_pregen
efcc5a30
TC
318
319If this is true, then pre-generation for dynamic pages will be delayed
320until the page is displayed to a user. Default: off.
321
74b21f6d
TC
322=item staticajax
323
324If true, the ifAjax and ajax tags will be active for static pages.
325
195977cd
TC
326=item cache_thumbnails
327
328If set to zero the results of the thumbimage/gthumbimage body/template
329tags will not be cached. Default: 1 (caching is enabled).
330
b902f9de
TC
331=item static_thumbnails
332
333If true and cache_thumbnails is true then thumbnails for the thumbnail
334cache will be generated when a static page is regenerated, and the
335link from the page will link to the image in the cache rather than to
336C<thumb.pl>. Default: 1 (static thumbnails enabled).
337
73e6b73a
TC
338=item alias_prefix
339
340The prefix applied to articles that use a linkAlias url. This should
341start with a /.
342
343=item use_alias
344
345If this is non-zero then an article with linkAlias set will use an
346alias url instead of the "real" url. You will need to configure a
347RewriteRule or ErrorDocument to page.pl to direct the user to the
348correct URL. Default: 1.
349
350=item alias_suffix
351
352If this is non-zero then the title is cleaned up (all but
353alphanumerics removed) and appended to the alias URL generated.
354
8a153d74
TC
355=item default_popupimage
356
357This is the default popup image class for the popimage[] and
358gpopimage[] tags. Default: popup.
359
bf909925
TC
360=item warn_obsolete
361
362Some obsolete tags will warn to stderr if this is non-zero. Default:
363don't warn.
364
3f36e485
TC
365=item no_cache_dynamic
366
367If non-zero, the default, dynamic responses will include a
368C<Cache-Control: no-cache> header. This can be overridden for
369articles via , article flags, C<[template >
370I<templatename>C<].no_cache_dynamic> and [article].no_cache_dynamic.
371Default: 1.
372
80f59f40
TC
373=item redir_to_alias
374
375If true then page.pl will 301 redirect (Moved Permanently) requests
376for an article by its id to the generated link if the article has a
377link alias. Default: false. Must only be used with use_alias true.
378
4cf6a60c
TC
379=item track_uploads
380
381If this is non-zero, and a cache is configured (see [cache]), file
382uploads are tracked in entries in the cache.
383
384The fileprogress.pl script can be called by Ajax to display file
385upload progress information to the user. The upload state is updated
386a maximum of once a second.
387
dbe8a12a
TC
388=item http_only_session
389
390If this is non-zero, the default, the session cookie sent to the
391browser has the C<HttpOnly> attribute set. This can prevent session
392cookie hijacking. Default: 1.
393
394=item secure_session
395
396If this is non-zero then the session cookie sent to the browser has
397the C<Secure> attribute set. This means that the cookie will only be
398visible over https. This is only useful when the only URL the site is
399visited over is a https URL. Default: 0.
400
401=item make_userid_cookie
402
403If this is non-zero, the default, then when the site member logs in, a
404javascript visible cookie, C<userid> will be set that contains the
405login name of the user. BSE's back-end doesn't use this cookie, its
406only use is for Javascript to enable/disable user interface elements.
407Default: 1.
408
b19047a6
TC
409=back
410
411=head2 [mail]
412
35c0719f 413This section controls how BSE sends email.
b19047a6
TC
414
415=over
416
417=item smtp_server
418
419The host or IP address of your mail server. If this is not set
420C<sendmail> will be used instead. If this is set you must also set
421I<helo>.
422
423=item helo
424
425The name that BSE uses to identify itself when sending mail via SMTP.
426Required if I<smtp_server> is set.
427
428=item sendmail
429
430The path to the C<sendmail> binary. Default: /usr/lib/sendmail
431
432=item sendmail_opts
433
434The options supplied to sendmail. Default: -t -oi
435
436You may want to add the -odq option to this if you want mail queued
437rather than sent immediately.
438
67b69296
TC
439=item set_errors_to_from
440
441If true, we add an Errors-To header set to the same as the From
442header. Default: true.
443
0c2e7f7a
TC
444=item html_system_email
445
446If non-zero then emails sent via the compose mail system that aren't
447being sent to a member record, will be sent as HTML, if the HTML
448template is available.
449
295deb8d
TC
450=item inline_css
451
452If this is C<style> (the default) then use CSS::Inliner to attempt to
453inline CSS in mail if the text "<style" is found in the generated
454HTML.
455
456If this is C<force> then we always attempt to inline CSS.
457
458If this is any other value then don't inline CSS.
459
5a892458
TC
460=item inline_css_flags
461
462A comma separated list of flags to supply to CSS::Inliner->new().
463Reasonable flags are C<strip_attrs> to strip C<id> and C<class>
464attributes, and C<leave_style> to leave the HTML style block in place.
465
466Default: no flags.
467
295deb8d
TC
468=item inline_css_report
469
470If this is true and CSS inlining fails, log an error to the audit
471log. This is intended for use in debugging and should be disabled in
472production. Default: false (disabled)
473
61551101
TC
474=back
475
ca9aa2bf 476=head2 [children of I<id>]
721cd24c
TC
477
478Where I<id> is the identifier for an article.
479
480=over
481
482=item template
483
484the name of the default template for children of the given parent
485
486=item template_dirs
487
488a comma-separated list of extra directories under $TMPLDIR to search
489for templates that can be used for children of the given parent article.
490
491=back
492
ca9aa2bf
TC
493=head2 [article I<id>]
494
495Where I<id> is the identifier of an article.
496
497=over
498
499=item template_dirs
500
501A comma-separated list of extra directories under $TMPLDIR to search
502for templates that can be used for children of the given parent
503article.
504
505=item extra_templates
506
507A comma-separated list of extra templates under $TMPLDIR that can be
508used for the given article.
509
510=back
511
caa7299c
TC
512=head2 [level I<level>]
513
514=over
515
516=item template
517
518The default template for this level of article, assuming it hasn't
519been set in the [children of I<article id>] section.
520
521=item template_dirs
522
523A comma-separated list of extra directories under $TMPLDIR to search
524for templates that can be used for articles at the given I<level>.
525
526=back
527
528=head2 [catalogs]
529
530=over
531
532=item template
533
534The default template for catalogs.
535
536=back
537
538=head2 [products]
539
540=over
541
542=item template
543
544The default template for products.
545
d64413ee
TC
546=item extra_templates
547
548A comma separated list of extra templates that can be used for
549products.
550
caa7299c
TC
551=back
552
61551101
TC
553=head2 [messages]
554
555This can be used to control translation of error messages. Each key
556has a prefix identifying the module that uses the error, followed by
557'/' followed by a specific identifier for the message.
558
559Message parameters, expressed as $I<digit>, are replaced with the
560parameters passed to the message. C<$$> is replaced with C<$>.
561
562Each message identifier below is documented with the id, when it
563occurs, the default message, and any parameters.
564
565=over
566
567=item user/needlogon
568
569the user attempted to logon without entering a logon name. Default:
570"Please enter a logon name". No parameters.
571
572=item user/needpass
573
574the user attempted to logon without entering a password. Default:
575"Please enter your password." No parameters.
576
577=item user/baduserpass
578
579the user's logon name or password was not found or did not match.
580Default: "Invalid user or password". No parameters.
581
582=item user/notloggedon
583
584the user attempted to logoff while not logged on. Default: "You
585aren't logged on". No parameters.
586
587=item user/optsoldpass
588
589the user entered a new password on the options page without entering
590their old password. Default: "You need to enter your old password to
591change your password". No parameters.
592
a53374d2
TC
593=item shop/logonrequired
594
595Displayed if the user attempts to checkout when [shop].require_logon
596is true.
597
61551101
TC
598=back
599
2404a911
TC
600=head2 [downloads]
601
602=over
603
604=item must_be_paid
605
606if non-zero, the order must be marked as paid for before the file can
607be downloaded.
608
609=item must_be_filled
610
611if non-zero the order must be marked as filled before the files can be
612downloaded.
613
4afdbb1b
TC
614=item require_logon
615
616if non-zero the user must be registered/logged on to download I<any>
617file.
618
32696f84
TC
619=item log_downufile
620
621if non-zero, downloads of userfiles will be logged. Default: 0
622
623=item log_downufile_maxage
624
625the maximum age of entries in the user file download log, in days.
626Default: 30.
627
2404a911
TC
628=back
629
b19047a6
TC
630=head2 [confirmations]
631
632Control over confirmation emails.
633
634=over
635
636=item subject
637
638The subject of email confirmation emails. Default: Subcription
639Confirmation.
640
641=item from
642
643The from field for the email. Default: $SHOP_FROM
644
645=back
646
531fb3bc
TC
647=head2 [subscriptions]
648
649Control over subscription messages.
650
651=over
652
653=item from
654
655The from field for the email. Default: $SHOP_FROM.
656
d09682dd
TC
657=item testname
658
659Default for the "Test Name" field for sending test subscription
660messages.
661
662=item testemail
663
664Default for the "Test Email" field for sending test subscription
665messages.
666
667=item testtextonly
668
669Set to 1 if you want the "Test Text Only" box checked by default for
670sending test subscription messages.
671
672=item testing
673
674Set to 0 to disable display of the test subscription messages portions
675of the subscriptions send form.
676
99b7cef0
TC
677=item text_link_inline
678
679Set to format links as they appear in the text version of emails.
680C<$1> is replaced with the title, C<$2> with the URL and C<$3> with
681the index. C<$$> is replaced with '$'. Default: C<$1 [$3]>
682
683=item text_link_list
684
685Set to format links as they appear at the footer of the body text. If
686this is set to the empty string then no list appears. C<$1>, C<$2>,
687C<$3>, C<$$> are replaced as for I<text_link_inline> and $n is
688replaced with newline. Default: C<[$3] $2>
689
690=item text_link_list_prefix
691
692A line of text produced above the list of URLs if there is one.
693Default: C<----->. $n in this is replaced with newlines.
694
531fb3bc
TC
695=back
696
99b7cef0
TC
697For example, if the configuration is:
698
699 text_link_inline="$1" ($3)
700 text_link_list_prefix=$n$n-------
701 text_link_list=($3) "$1"$n => $2
702
703and the body text is:
704
705 doclink[3]
706 link[http://www.example.com/|Example]
707
708the result will be:
709
710 "The Shop" (1)
711 "Example" (2)
712
713
714 -------
715 (1) "The Shop"
716 => http://www.yoursite.com/shop/index.html
717 (2) "Example"
718 => http://www.example.com/
719
6e3d2da5
TC
720=head2 [search]
721
722=over
723
724=item highlight_partial
725
726If this is true then partial matches will be highlight in search
727result excerpts. Default: True
728
54c97cf6
TC
729=item keep_inaccessible
730
731If this is true then resulting articles that can't be accessed by the
732user are listed in the search results. Default: false.
733
d401b996
TC
734=item wordre
735
736The default regular expression used to match words in text during
737indexing. Default: \w+
738
739=item wordre_I<fieldname>
740
741The field specific word match regular expression for the built-in
742search indexer. Default: the value of C<wordre>.
743
65ad6c28
TC
744=item indexer
745
746Module used to build the search index. Default: BSE::Index::BSE.
747
748=item index_priority
749
750For C<BSE::Index::BSE>, the optimization priority. The default of
751C<speed> builds the index in memory and is very fast, but can consume
752a lot of memory. Otherwise, set this to C<memory> to reduce memory
753usage.
754
755C<memory> priority index building requires that the DBM::Deep module
756be installed.
757
6e3d2da5
TC
758=back
759
61693c75
TC
760=head2 [search highlight]
761
762Sets the prefix and suffix used for highlighting matches for different
763fields.
764
765These are used by the highlight_result, excerpt, pageTitle, author,
766keywords and matchFile tags.
767
768Each field has a prefix and suffix entry. The key is
769I<fieldname>_prefix or I<fieldname>_suffix. For file fields this is
a9634cc9 770file_I<fieldname>_prefix and file_I<fieldname>_suffix.
61693c75
TC
771
772The default prefix is <b>. The default suffix is </b>.
773
774For example you can do:
775
776 [search highlight]
777 body_prefix=<span class="searchfound">
778 body_suffix=</span>
779
6e3d2da5
TC
780=head2 [shop]
781
782=over
783
7b81711b
TC
784=item enabled
785
786Used by some templates to check if the shop is enabled. Set this to 1
787to enable the shop, or 0 to disable it.
788
57d988af
TC
789=item secureurl_articles
790
791If this is false then shop articles will not use the secureurl as their
792baseurl. Default: True
793
6e3d2da5
TC
794=item register_if_files
795
796If true the customer is required to register before checkout if there
797are any for sale files attached to products in the cart. Default: True
798
799=item require_logon
800
801If true the customer is required to be logged on before checkout,
802whether or not for sale files are attached to products in the cart.
803Default: False.
804
08123550
TC
805=item payment_types
806
807A comma-separated list of acceptable payment types. Default: 0
808
809The possible payment types are:
810
811=over
812
813=item *
814
8150 - the user enters a credit card number, name and expiry date
816
817=item *
818
8191 - the customer will send a cheque
820
821=item *
822
8232 - contact customer for details
824
13a986ee
TC
825=item *
826
40cc2f24 8274 - paypal - see L<paypal.pod>
13a986ee 828
08123550
TC
829=back
830
81f3292d
TC
831Other types can be added by adding entries to the [payment type names]
832and [payment type descs] sections.
833
08123550
TC
834=item address1
835
836=item address2
837
838=item address3
839
840These are used by various shop templates to present an address that a
841cheque payment should be sent to.
842
331fd099
TC
843=item from
844
845From email address for emails sent by the shop. Overides $SHOP_FROM
846in Constants.pm
847
848=item to_name
849
850To name for emailed orders sent by the shop. Overrides $SHOP_TO_NAME
851in Constants.pm
852
853=item to_email
854
855To email for emailed orders sent by the shop. Overrides $SHOP_TO_EMAIL
856in Constants.pm
857
d9a3fa87
TC
858=item bcc_email
859
860BCC email address for order confirmation emails sent to the customer.
861Default: No bcc.
862
d09682dd
TC
863=item noencrypt
864
865If this is true then orders sent to you by the shop will not be
866encrypted. Enabling this disabled acceptance of credit card orders,
867and the default for C<payment_types> will become C<1> instead or C<0>.
868
869Please realize that other potentially commercially sensitive
870information is being sent in the clear to a central location,
871unencrypted.
872
873=item email_order
874
875If true, then the order is email to to_email, possibly with credit
876card information included. Default: $SHOP_EMAIL_ORDER.
877
d49f56a6
TC
878=item display_I<field>
879
880Used to translate the stored order field name into a presentation name
881suitable for error messages.
882
41e7c841
TC
883=item cardprocessor
884
885The name of a class to load to process credit card transactions online.
886
887Currently this can be either DevHelp::Payments::Test or
888DevHelp::Payments::Inpho.
889
26c634af
TC
890=item crypt_module
891
892Name of the encryption module to use. Default: $SHOP_CRYPTO.
893
894=item crypt_signing_id
895
896Id of the key to sign the order email with. If this is non-empty then
897the email is signed even if [basic].sign is false. Default:
898$SHOP_SIGNING_ID.
899
900=item crypt_gpg
901
902Path to the GnuPG program. Default: $SHOP_GPG
903
745a6c13 904=item crypt_passphrase
26c634af
TC
905
906Passphrase of the key used to sign the email. Default:
907$SHOP_PASSPHRASE.
908
745a6c13
TC
909=item show_card_type
910
911If true, request the card type when requesting credit card
912information. Default: False.
913
56f87a80
TC
914=item cart_entry_limit
915
916Maximum number of entries in the cart. This limits the number of
917distinct products (with options) in the cart, not the total
918quantities. Default: Unlimited.
919
d99ed4c4 920=item currency_code
13a986ee
TC
921
922The shop currency as a 3-letter currency code. Default: AUD.
923Currencies other than "AUD" aren't supported by most of the system.
924
40cc2f24
TC
925=item country_code
926
927Set to non-zero if you're using country codes in the order country
928field. If this is set then the delivCountry is supplied as is to
929various parts of the system, otherwise it is translated from a country
930name to a country code. Default: 0.
931
6e3d2da5
TC
932=back
933
bd3a048c
AMS
934=head2 [shipping]
935
936=over
937
938=item couriers
939
940A space-separated list of modules under Courier::, e.g. "Fastway::Road
941AustraliaPost::Air". These will be made available as shipping methods
942on the checkout page.
943
944=item sourcepostcode
945
946The post code from which products are shipped.
947
948=item fastwayfranchisee
949
950The name of the Fastway franchisee used to ship products from the
951sourcepostcode.
952
953=item fastwayfranchiseecode
954
955The Fastway franchisee code for the customer, if any.
956
957=back
958
41e7c841
TC
959=head2 [Shop Order Validation]
960
961This section can contain extra order validation information, including
962specifying required fields, display names and extra validation rules.
963
6e3d2da5
TC
964=head2 [fields]
965
966=over
967
968=item title_size
969
970The maximum length of the article title field. Default: 255. Should
971not be set higher than this unless you change the database schema.
972
973=back
974
ee6577c3
TC
975=head2 [interest]
976
977Controls the interest.pl script.
978
979=over
980
981=item notify
982
983Email address that is notified of the interest. Defaults to $SHOP_FROM.
984
ca9aa2bf 985=back
ee6577c3 986
6e3d2da5
TC
987=head2 [debug]
988
989Used for debugging.
990
991=over
992
993=item logon_cookies
994
995When a user logs on, and the site url is different to the secure url
996BSE attempts to refresh to the other "side" of the site to set the
997same cookie.
998
999BSE does some simple comparisons to attempt to determine whether the
1000logon form was triggered on the secure side of the site (possibly from
1001the shop) or on the insecure side. Since CGI doesn't necessarily give
1002us all the information required, it's possible it will guess wrong.
1003
d2730773
TC
1004Setting this option to 1 will enable debugging information sent to
1005standard error, which will be sent to the error log on Apache. This
1006probably isn't useful on IIS.
1007
1008=item file_unlink
1009
1010Reports errors to STDERR (hence to the error log on Apache) if there
1011is a problem deleting the actual file when an attached file is
1012removed.
1013
1014=item mail_encryption
1015
1016Reports debugging information to standard error while encrypting your
1017mail.
6e3d2da5 1018
2d873eb6
TC
1019=item cookies
1020
1021Reports cookies received from the browser and sent to the browser to
1022STDERR (hence to the error log on Apache.)
1023
4175638b
TC
1024=item dump_session
1025
1026If nonzero the session hash is dumped to STDERR after it is retrived
1027from the database.
1028
af74f0b4
TC
1029=item subscription_expiry
1030
1031If non-zero then subscription expiry date calculations are dumped to
1032STDERR.
1033
efcc5a30
TC
1034=item jit_dynamic_regen
1035
1036If non-zero then information about jit_dynamic_regen is sent to
1037STDERR.
1038
db7d73a7
TC
1039=item ifUserCan
1040
1041If non-zero then the ifUserCan tag will output some trace information
1042to STDERR.
1043
ca9aa2bf
TC
1044=back
1045
1046=head2 [uri]
1047
1048Contains various URIs.
1049
1050This is underused, so don't rely on it yet.
1051
1052=over
1053
1054=item cgi
1055
1056The URI to the CGI directory. Default: /cgi-bin
1057
1058=item images
1059
1060The URI where images are kept. Default: /images
1061
1062=item shop
1063
1064=item articles
1065
9168c88c 1066=back
ca9aa2bf 1067
9168c88c 1068=head2 [articles]
ca9aa2bf 1069
9168c88c
TC
1070This will provide translations from symbolic names to article ids.
1071
1072Currently this is used for converting article ids in the access
1073control code, and for looking up the id of the shop.
6e3d2da5 1074
0b406a07
TC
1075=head2 [printable type]
1076
1077If the user supplies a template name to printable.pl then you can use
1078a different content type by adding an entry to this section. The key
1079is the template name, and the value is the full content type.
1080
918735d1
TC
1081=head2 [search index scores]
1082
1083This section is used when generating the search index to override the
1084default scores for each field in the articles.
1085
1086The default scores are:
1087
74b21f6d
TC
1088 Field Score Notes
1089 ----- ----- -----
1090 title 5
1091 body 3
1092 keyword 4
1093 pageTitle 5
1094 author 4
1095 summary 0
1096 description 0 Products only
1097 product_code 0 Products only
1098 file_displayName 2 displayName for files
1099 file_description 2 description for files
1100 file_notes 1 notes for files
918735d1
TC
1101
1102=head2 [article flags]
1103
1104=head2 [product flags]
1105
1106=head2 [catalog flags]
1107
1108Flags that can be set for articles, products and catalogs
1109respectively. Note that flags for articles are also visible in
1110products and catalogs.
1111
1112All flag Ids are single letters or digits. Uppercase letters are
1113reserved for use by BSE internally, leaving lower-case letters and
1114digits for your own use.
1115
1116Use the id of the flag as the key, and a description of the flag as
1117it's value.
1118
95989433
TC
1119=head2 [article uris]
1120
1121Each key is an article id, the values are base URIs to store the HTML
1122form of those articles and their children under.
1123
1124=head2 [protect link]
1125
1126The keys are ids of articles that shouldn't have their link field
1127overwritten. The value should be a true value, but is otherwise
1128ignored.
1129
d09682dd
TC
1130=head2 [datadump]
1131
1132=over
1133
1134=item to
1135
1136The recipient for the data dump email sent by datadump.pl. Default:
1137$DATA_EMAIL.
1138
1139=item from
1140
1141the From for the data dump email sent by datadump.pl. Default:
1142$SHOP_FROM.
1143
1144=back
1145
2a295ea9
TC
1146=head2 [site users]
1147
1148Configuration for site users.
1149
1150=over
1151
1152=item nopassword
1153
1154If this is set to true then no passwords are required during
1155registration, a confirmation email is sent immediately upon
1156registration and that confirmation email contains a link the user can
1157use to manage their details.
1158
1159This option has some security concerns since it can leave links to the
1160user's information in the browser history. This option is not
1161recommended.
1162
1163You cannot use this to control access to the shop.
1164
1165=item require_name1
1166
1167=item require_name2
1168
1169=item require_address
1170
1171=item require_city
1172
1173=item require_state
1174
1175=item require_postcode
1176
1177=item require_telephone
1178
1179=item require_facsimile
1180
1181=item require_country
1182
1183=item require_title
1184
1185=item require_organization
1186
1187Set these to true to require the corresponding field during
1188registration, and to keep it required after modification. Default:
1189false.
1190
1191If you enable any of these, you should enable C<info_on_register> as
1192well, or modify the registration template to include the given fields.
1193
1194=item display_I<field name>
1195
1196Controls how the given field is displayed in error messages. If you
1197change the field names on the registration and/or options forms you
1198should probably change them here too. Default: internal field name
1199with the first character converted to upper-case.
1200
1201=item info_on_register
1202
1203If this is set then the user info is prompted for during user
1204registration. The information still isn't required unless the
1205appropriate require_I<field> option is set. Default: false.
1206
1207=item register_refresh
1208
1209The default URL to refresh to on completing registration if no r
1210parameter is supplied.
1211
1212=item subscribe_all
1213
1214If this is set then the subcription checkboxes are all checked on
1215registration by default. Default: false.
1216
1217The user will only receive the subscriptions if they leave them checked
1218and follow the link in the confirmation email.
1219
1220=item subscribe_I<id>
1221
1222Where I<id> is the number identifying a subscription. If this is set
1223then the subscription checkbox for that subscription will be checked
1224by default on the registration form. Default: false.
1225
1226The user will only receive the subscriptions if they leave it checked
1227and follow the link in the confirmation email.
1228
1229You can get the I<id> of a subcription by looking at the Edit link on the
1230subscriptions management page, the number after "id=" is the id.
1231
9063386f
TC
1232=item billing_on_main_opts
1233
1234If set to zero then user billing options will be managed on a separate
1235page. This is controlled by the user/options_base.tmpl template.
1236
1237=item user_register
1238
1239If set to zero then users cannot register themselves. Default: true,
1240allowing users to register themselves.
1241
cf9f9cbc
TC
1242=item notify_register
1243
1244If true then an email is sent when a new user registers on your site.
1245The email address sent to is the first set of [site
1246users].notify_register_email, [shop].from or $SHOP_FROM from
1247Constants.pm
1248
1249No email is sent if a new user is created from the administration user
1250interface.
1251
1252See also: notify_register_email, notify_register_subject.
1253
1254=item notify_register_email
1255
1256The email to sent the registration notification too. See
1257notify_register above.
1258
1259=item notify_register_subject
1260
1261The subject of the notification email sent when a new user registers.
1262Any {I<field>} is replaced with the given field from the registered
1263user. See notify_register above.
1264
1265Default: New user {userId} registered
1266
6c83a514
TC
1267=item notify_register_customer
1268
1269If non-zero then email id C<notify_register_customer> will be sent to
1270new user on registration. By default this uses template
1271user/email_register, subject "Thank you for registering" which can be
1272overridden in [email notify_register_customer]
1273
2a295ea9
TC
1274=back
1275
81f3292d
TC
1276=head2 [payment type names]
1277
1278This section and [payment type descs] are used to configure new
1279paymeny type ids.
1280
1281The key is the integer representing the payment type. The value is
1282the name used in tags for checking the payment type.
1283
1284You can also add a description (currently unused) to [payment type
1285descs].
1286
1287You should use numbers starting from 10 to avoid conflicts with future
1288BSE payment types.
1289
1290=head2 [payment type descs]
1291
1292See [payment type names].
1293
1294=head2 [payment type required]
1295
1296Set the key given by the payment type id to a value of a
1297comma-separated list of fields required for that payment type.
1298
3ae524f3
TC
1299=head2 [help style I<style-name>]
1300
1301This type of configuration section is used to set values for a style
1302of help icon. Only the C<template> and C<prefix> values are used
1303directly by the code, the others are used by the default helpicon
1304templates.
1305
1306=over
1307
1308=item prefix
1309
1310The URI to the help files for this style. Default: /help/ in style
1311"user", /admin/help/ in style "admin".
1312
1313=item template
1314
1315The template used to produce the icon. Default: helpicon in style
1316user, admin/helpicon in style "admin".
1317
1318=item icon
1319
1320URI to the help icon image. Default: /images/admin/help.gif
1321
1322=item iconwidth
1323
1324The width of the help icon image. Default: 16
1325
1326=item iconheight
1327
1328The height of the help icon image. Default: 16
1329
1330=back
1331
1332If you just want to change the help icon image for user help icons you
1333might do:
1334
1335 [help style user]
1336 icon=/images/help.gif
1337
4175638b
TC
1338=head2 [affiliate]
1339
1340=over
1341
1342=item allowed_referer
1343
1344A semi-colon (;) separated list of referer domains that are allowed to
1345link to the C<a_set> target of L<affiliate.pl>.
1346
1347If the user's browser supplies a referer header then it will be
1348checked against this list.
1349
1350=item require_referer
1351
1352If this is set then the C<a_set> target of L<affiliate.pl> will
1353require that the user's browser supply a Referer header.
1354
1355=item default_refresh
1356
1357If no C<r> parameter is supplied to the C<a_set> target of
1358L<affiliate.pl> then this is used as the default refresh.
1359
1360Default: the site base url.
1361
829c9ed9
TC
1362=item subscription_required
1363
1364This is either the numeric or text of a subscription for which the
1365affiliate must have an active subscription.
1366
fdc2b7a2
TC
1367=item flag_required
1368
1369A single letter flag which the site administrator must set for the
1370affiliate page to be displayed for the given member.
1371
ea646070
TC
1372=item set_cookie
1373
1374If this is set then affiliate.pl will set the named cookie to the
1375affiliate id.
1376
1b5a718f
TC
1377=item other_cookies
1378
1379This is a comma-separated list of other cookies that should be set by
1380the a_set target. The values for the cookies should be passed to the
1381a_set target. For example with:
1382
1383 [affiliate]
1384 other_cookies=alpha,beta
1385
1386if the url:
1387
1388 http://your.site.com/cgi-bin/affiliate.pl?a_set=1&id=someid&alpha=1&beta=2&gamme=3
1389
1390is accessed, then the cookie alpha is set to "1", beta is set to "2".
1391The cookie gamma will not be set since it's not listed.
1392
ea646070
TC
1393=item linkbaseurl
1394
1395Used as the link base URL for the afflink.tmpl side bar template when
1396an affiliate id is set. Default: example.com
1397
1398=item linkbasedesc
1399
1400Used at the text of the link for the afflink.tmpl side bar template
1401when an affiliate id is set. Default: Your Site.
1402
1403=item linkdefurl
1404
1405Used as the link URL for the afflink.tmpl side bar template when an
1406affiliate id is not set. Default: example.com
1407
1408=item linkdefdesc
1409
1410Used as the text of the link for the afflink.tmpl side bar template
1411when an affiliate id is not set. Default: Our site
1412
4175638b
TC
1413=back
1414
3c32512d
TC
1415=head2 [BSE Siteuser Images]
1416
1417Each key is the id of a member image, with a corresponding [BSE
1418Siteuser Image I<image_id>] section. The values are ignored.
1419
1420=head2 [BSE Siteuser Image I<image_id>]
1421
1422Provides information about a single member image "template".
1423
1424=over
1425
1426=item description
1427
1428Short description on the image, like "Logo". Used in error messages.
1429
1430=item help
1431
1432Longer description of the image. Accessible with the member_image tag.
1433
1434=item minwidth
1435
1436=item minheight
1437
1438=item maxwidth
1439
1440=item maxheight
1441
1442The minimum and maximum dimensions of the image.
1443
1444=item widthsmallerror
1445
1446=item heightsmallerror
1447
1448=item widthlargeerror
1449
1450=item heightlargeerror
1451
1452Error messages displayed in the when the image is outside the
1453configured dimensions.
1454
1455=item largeerror
1456
1457=item smallerror
1458
1459Default error messages for the above.
1460
1461=item maxspace
1462
1463Maximum storage the image can use in bytes. Default: 1000000.
1464
1465=item spaceerror
1466
1467Error message displayed if the image uses too much storage.
1468
1469=back
1470
ab2cd916
TC
1471=head2 [editor]
1472
1473Various editor settings.
1474
1475=over
1476
1477=item allow_thumb
1478
1479If this is non-zero the system will attempt to load the configured
1480thumbnail class, and put thumbnail images on the image manager page
1481rather than full-size images. Default: off
1482
1483=item thumbs_class
1484
1485The name of a perl class that implement's BSE's thumbnail API. At
1486this point the only class that implements that is BSE::Thumb::Imager,
1487supplied with BSE. Default: None
1488
1489=item default_thumbnail
1490
1491URI to the default thumbnail image. This is presented when the
1492runtime production of a thumbnail image fails.
1493
1494=item default_thumbnail_width
1495
1496=item default_thumbnail_height
1497
1498Dimensions of the default thumbnail image.
1499
1500=item default_thumbnail_alt
1501
1502Alt text for the default thumbnail image.
1503
1761af79
TC
1504=item check_modified
1505
1506If this is true then BSE will check the value of the lastModified
1507parameter passed against the value in the article. If these don't
1508match the article isn't saved and is redisplayed with an error
1509message. This provides simple protection against one user saving
1510changes over those made by another.
1511
ab2cd916
TC
1512=back
1513
1514=head2 [thumbnails]
1515
1516=over
1517
1518=item max_width
1519
1520=item max_height
1521
1522=item max_pixels
1523
1524Default values for the thumbimage tag.
1525
1526=back
1527
829c9ed9
TC
1528=head2 [includes]
1529
1530Each value is used as the relative or absolute name of a file or
1531directory to load more configuration data from.
1532
1533The keywords must remain unique.
1534
1535Only the [includes] section from bse.cfg itself is used to locate more
1536configuration data.
1537
1538If the value references a directory, all files with an extension of
1539C<.cfg> are read for configuration data.
1540
1541The order the files are read (which later files overriding older
1542files) is:
1543
1544=over
1545
1546=item 1.
1547
1548bse.cfg is read
1549
1550=item 2.
1551
1552the entries in [includes] are sorted alphabetically (or rather
1553asciily), so an entry with key "A" is read before one with key "B",
1554one with key "01" is read before "02", but key "10" would be read
1555I<before> key "2".
1556
a9634cc9 1557=item 3.
829c9ed9
TC
1558
1559if an entry is a file then that is read and the values merged.
1560
a9634cc9 1561=item 4.
829c9ed9
TC
1562
1563if an entry is a directory, then that is scanned and the files found
1564read alphabetically as above.
1565
1566=back
1567
6a8a6ac5
TC
1568=head2 [error_img]
1569
1570This is used to configure the error icon displayed next to fields that
1571fail validation.
1572
1573=over
1574
1575=item image
1576
1577URI to the image file.
1578
1579=item width
1580
1581=item height
1582
1583The width and height of the error icon image.
1584
1585=back
1586
fdc2b7a2
TC
1587=head2 [site user flags]
1588
1589Flags that can be set for site users.
1590
1591All flag Ids are single letters or digits. Uppercase letters are
1592reserved for use by BSE internally, leaving lower-case letters and
1593digits for your own use.
1594
1595Use the id of the flag as the key, and a description of the flag as
1596it's value.
1597
deae2a52
TC
1598=head2 [article defaults]
1599
1600=head2 [catalog defaults]
1601
1602=head2 [product defaults]
1603
1604These sections contain defaults values for the corresponding article
1605types.
1606
1607Each key is the name of a column for the article type.
1608
1609If an entry is not found in [catalog defaults] then [article defaults]
1610is also checked.
1611
1612If an entry is not found in [product defaults] then [article defaults]
1613is also checked.
1614
1615These sections are checked B<after> the C<[children of >I<id>C<]> and
1616C<[level >I<level>C<]> sections.
1617
1618These defaults are used when creating an article where no value is
1619supplied, they can also be accessed via the <:default I<name>:> tag.
1620
1c3e5303
TC
1621=head2 [newsletter filters]
1622
1623Contains C<criteria>I<index> entries starting from C<criteria1>, then
1624C<criteria2>, etc.
1625
1626Each entry consists of a filter class name, followed by a ; followed
1627by data passed to that filter.
1628
1629 ; user the original SQL based filter, configured from
1630 ; section [foo]
1631 criteria1=BSE::NLFilter::SQL;foo
1632
1633See the documentation for each filter to configure the filters.
1634
c2096d67
TC
1635=head2 [Query Groups]
1636
1637The key of each entry is the numeric identifier of a query group, the
1638values are the name of the query group. For example:
1639
1640 [query groups]
1641 1=some name
1642
1643 [query group some name]
1644 sql=select id from site_users where id = ? and name1 like '%some%'
1645
1646Each entry also has a corresponding [Query Group I<name>] section.
1647
1648=head2 [query group I<name>]
1649
1650This section corresponds to an entry in [Query Groups].
1651
1652=over
1653
1654=item sql
1655
1656This is an SQL statement. One placeholder is required and is passed
1657the siteuser id (primary key) of the user to be checked. If this
1658query returns I<any> rows then the user is considered part of the
1659group.
1660
1661=back
1662
16901a2a
TC
1663=head2 [template types]
1664
1665Each key is a template name, the value is the content type to be used
1666when displaying the template dynamically.
1667
fea96500
TC
1668=head2 [template descriptions]
1669
1670Each key is a template name, the value is a description used in the
1671template dropdown for that template.
1672
8f84f3f1
TC
1673=head2 [body class]
1674
1675This section defines CSS class names for BSE's body text link tags.
1676The key is the tag name, the value is the CSS class to be used.
1677
1678By default the class used is the same as the name of the tag, but you
1679can switch this off by adding an entry setting the class to the empty
1680string, for example:
1681
1682 ; no class attribute for any of the links
1683 [body class]
1684 link=
1685 poplink=
1686 doclink=
1687 popdoclink=
1688
1689You can set p here too to set the class for paragraphs generated as
1690body text. By default no class is set.
1691
def1a923
TC
1692=head2 [popimage]
1693
1694Controls the behaviour of the window displayed by the popimage[] body
1695text tag. If the Javascript for this has been customized then this
1696may not apply.
1697
1698=over
1699
1700=item extrawidth
1701
1702=item extraheight
1703
1704Extra width and height for the window beyond the size of the image.
1705Default: no extra width or height.
1706
1707=item popmiddle
1708
1709If set to non-zero popimage[] will attempt to centre the popup within
1710the current window. Default: 0.
1711
1712=back
1713
1714=over
1715
1716=back
1717
41e7c841
TC
1718=head2 [inpho]
1719
1720This is used to configure the DevHelp::Payments::Inpho module.
1721
1722=over
1723
1724=item test
1725
1726If this is set then the test parameters are used instead of the
1727product values.
1728
1729=item url
1730
1731The URL to process requests through.
1732
1733Default: https://extranet.inpho.com.au/cc_ssl/process
1734
1735=item user
1736
1737Inpho supplied user name.
1738
1739=item password
1740
1741Inpho supplied password.
1742
1743=item test_url
1744
1745The URL to process test requests through.
1746
1747=item test_user
1748
1749The user to supply to test requests.
1750
1751=item test_password
1752
1753The password to supply to test requests.
1754
1755=back
1756
f2bf0d11
TC
1757=head2 [custom]
1758
1759This section controls whether some custom class methods are called:
1760
1761=over
1762
1763=item saveopts
1764
1765If this is non-zero then siteuser_saveopts is called.
1766
1767=back
1768
0a66f55c
AO
1769=head2 [levelI<level> menus]
1770
1771Where I<level> is the article level at which the defined menu options will be available.
1772Configure each menu value and description as I<key> and I<value>.
1773
1774=over
1775
1776For example:
1777
1778 [level1 menus]
1779 0=Default
1780 1=Sidebar
1781 2=Footer
1782
1783To create a menus using such values, use the "allkids_of" iterator "filter" option.
1784
1785For example:
1786
1787 <:iterator begin allkids_of -1 filter: [menu] == 2 :>
1788
1789=back
1790
37726cc9
AO
1791=head2 [title alias]
1792
1793Enable the "titleAlias" article field and set which level it will be available.
1794
1795=over
1796
1797=item levelI<level>
1798
1799Where I<level> is the article "level" for which the "titleAlias" field should be enabled. To enable
1800set the value to non-zero.
1801
1802For example:
1803
1804 [title alias]
1805 level1=1
1806
1807The "titleAlias" can be used as an alternate "short" title for the given article, especially useful
1808for space critical iterated menus. A template conditional can be used to display the "titleAlias"
1809in place of the article "title" when appropriate.
1810
1811=back
1812
195977cd
TC
1813=head2 [thumb geometries]
1814
1815Each key represents a geometry identifier for use by the thumbimage[],
1816gthumbimage[] body text tags and the <:thumbimage ...:>, <:gthumbimage
b864cc90 1817...:>, <:dthumbimage ...:> template tags.
195977cd
TC
1818
1819The key is the geometry identifier, the value is the geometry string
1820as follows.
1821
1822The geometry string consists of:
1823
1824=over
1825
1826=item *
1827
1828dimensions
1829
1830=item *
1831
1832crop flag - if present
1833
1834=item *
1835
1836optional fill
1837
1838=back
1839
1840The dimensions can be in any of the following forms:
1841
1842=over
1843
1844=item *
1845
1846<width>x<height> - the desired maximum width and height. eg 200x150
1847
1848=item *
1849
1850<width>x - the desired width, with the height calculated
1851proportionally based on the source image size
1852
1853=item *
1854
1855x<height> - the designed height, with the width calculated
1856proportionally based on the source image size.
1857
1858=item *
1859
1860<size> - the desired maximum size in both directions. so "200" is
1861equivalent to "200x200"
1862
1863=back
1864
1865The crop flag is a single letter "c", if present then the image should
1866be scaled so the smaller dimension matches the requested size, and the
1867longer dimension will be cropped to fit.
1868
1869The fill if present is: fill(color) where color is a color recognized
1870by the underlying graphics implementation. This should be at least
1871hex web colors without the #, eg fill(FF0000) will fill with red.
1872
b864cc90
TC
1873=head2 [thumb classes]
1874
1875Each key represents a geometry identifier for use by the thumbimage[],
1876gthumbimage[] body text tags and the <:thumbimage ...:>, <:gthumbimage
1877...:>, <:dthumbimage ...:> template tags.
1878
1879The value is used as the class for the generated img tag.
1880
510a9ee7
TC
1881=head2 [targets]
1882
1883Each value represents a handler or script name for the <:dyntarget
1884I<script> I<target> ...:> tag.
1885
1886Each key has a TARGET version and a no-TARGET version, with the key
1887suffixed with C<_n>.
1888
1889The default C<nuser> target is C</cgi-bin/nuser.pl/user/TARGET>. The
1890default no-target C<nuser> is C</cgi-bin/nuser.pl/user>.
1891
1892For other targets the default is
1893C</cgi-bin/>I<script>C<.pl?a_TARGET=1> and
1894C</cgi-bin/>I<script>C<.pl>.
1895
1896The string C<TARGET> is replaced with the target specified in the
1897dyntarget tag.
1898
1899This, along with dyntarget is intended to allow a more "Web 2.0" type
1900of access to BSE. eg. you might set:
1901
1902 [targets]
1903 shop=/xshop/TARGET
1904 shop_x=/xshop/
1905
1906and have a rewrite rule:
1907
1908 RewriteRule ^/xshop/(.*)$ /cgi-bin/nuser.pl/shop/$1 [PT]
1909
8a153d74
TC
1910=head2 [popimage class I<classname>]
1911
1912This defines the settings for a class of images generated by the
1913popimage[] and gpopimage[] body text markup tags. For example, the
1914settings for C<popimage[imageid|foo]> can be found in section
1915C<[popimage class foo]>.
1916
1917=over
1918
1919=item html
1920
1921The html generated for this class. Tags of the form
1922C<{>I<identifier>C<}> are replaced, where I<identifier> can be
1923C<inline_> or C<outline_> followed by an image field name, for example
1924C<inline_src> is the URL to the inline image.
1925
1926Default: <a href="{outline_src}" rel="lightbox[id]" target="_blank"><img src="{inline_src}" alt="{inline_alt}" width="{inline_width}" height="{inline_height}" border="0" /></a>
1927
1928The default may be tuned as needed.
1929
1930=item inline
1931
1932The inline image geometry. Default: editor (the value used for
1933thumbnails on the admin side)
1934
1935=item outline
1936
1937The outline image geometry. If no value is supplied then the original
1938image values are used.
1939
1940=back
1941
0c2e7f7a
TC
1942=head2 [mail resources]
1943
1944Each key is the identifier of a file that can be attached to
1945BSE::ComposeMail emails. The value is comma separated filename,
1946content type, inline status.
1947
1948The files are searched for through the template search mechanism, so
1949the filename can be relative to either the master or local templates
1950directories.
1951
1952If the content type is not supplied, if the filename end in gif, png
1953or jpg the appropriate content type is used, otherwise
1954application/octet-stream.
1955
1956If the inline status is not supplied then images are considered
1957inline, and other files arent.
1958
a53374d2
TC
1959=head2 [shop registration]
1960
1961Each key represents a message id from attempts to checkout. Except
1962the all key which covers all cases.
1963
1964If the C<all> key or the message id key is non-zero then the checkout
1965page will redirect to registration instead of login if the cart or
1966configuration requires that the user be logged in.
1967
3f36e485
TC
1968=head2 [template I<template-name>]
1969
1970Settings for articles based on a particular template.
1971
1972=over
1973
1974=item no_cache_dynamic
1975
1976Controls whether a cache-control: no-cache header will be produced.
1977Can be overridden with the A and B article flags. If not set the
1978value of [article].no_cache_dynamic is used.
1979
1980=back
1981
1982=head2 [article]
1983
1984Global settings for articles.
1985
1986=over
1987
1988=item no_cache_dynamic
1989
1990Controls whether a cache-control: no-cache header will be produced.
1991Can be overridden with the A and B article flags or [template
1992I<template-name>].no_cache_dynamic. If not set the value of
1993[basic].no_cache_dynamic is used.
1994
1995=back
1996
c6fc339f
TC
1997=head2 [recaptcha]
1998
1999For the <:recaptcha:> tag currently only used for fmail.pl.
2000
2001=over
2002
2003=item api_public_key
2004
2005=item api_private_key
2006
2007The public and private key you receive when you register with reCAPTCHA.
2008
2009=item error_I<error_code>
2010
2011Replace the error message for the given I<error_code> where
2012I<error_code> is the reCAPTCHA error code
2013(eg. "incorrect-captcha-sol") with dash replaced by underscore.
2014
2015eg.
2016
2017 error_incorrect_captch_sol=VERY BAD INPUT
2018
2019=back
2020
36e373a9
TC
2021=head2 [global file metadata]
2022
2023Each key represents an item of metadata for files attached to
2024articles.
2025
2026The values are ignored.
2027
2028For each key, extra information is defined in the [file metadata
2029I<name>] section.
2030
2031=head2 [file metadata I<name>]
2032
2033Definition for the file metadata item I<name>.
2034
2035=over
2036
2037=item *
2038
2039title - descriptive name of the metadata. Defaults to I<name>.
2040
2041=item *
2042
2043rules - validation rules, separated by ;. Custom rules can be defined
2044in [file metadata validation].
2045
2046=item *
2047
2048ro - if non-zero the metadata cannot be modified directly by the admin
2049(applications can still generate it). Default: writable.
2050
2051=item *
2052
2053type - the data type of the metadata, any of string, text, enum,
2054integer, real, image. If this is enum values must be defined and
2055labels should be. Default: string.
2056
2057The types are:
2058
2059=over
2060
2061=item *
2062
2063string - single line of text
2064
2065=item *
2066
2067text - one or more lines of text
2068
2069=item *
2070
2071integer - whole number
2072
2073=item *
2074
2075real - number with decimal points
2076
2077=item *
2078
2079enum - select from a list of possible values.
2080
2081=item *
2082
2083image - image file.
2084
2085=back
2086
2087=item *
2088
2089values - semi-colon separated list of values for this metadata.
2090
2091=item *
2092
2093labels - semi-colon separated list of labels for the values
2094
2095=item *
2096
2097help - help html to display for the metadata
2098
2099=item *
2100
2101data_name - (images only) the key to use to store the image data.
2102Default: I<name>_data.
2103
2104=item *
2105
2106width_name - (images only) the key to use to store the image width.
2107Default: I<name>_width.
2108
2109=item *
2110
2111height_name - (images only) the key to use to store the image height.
2112Default: I<name>_height.
2113
2114=item *
2115
2116cond - a perl expression indicating whether the metadata should be
2117prompted for, for this file. $file is the file object. Default: 1.
2118
2119=item *
2120
2121unit - text displayed after the entry box for the metadata. Default:
2122empty. Useful for including a unit ("pixels") or format help
2123("hh:mm").
2124
2125=back
2126
bede67d9
TC
2127=head2 [session cleanup]
2128
2129Controls the processing of the bse_session_clean.pl script.
2130
2131=over
2132
2133=item *
2134
2135days - the minimum age in days of sessions to be removed. Default: 30.
2136
2137=item *
2138
2139per - the number of records to remove per SQL delete request.
2140Default: 1000.
2141
2142=item *
2143
2144count - the number of SQL delete requests to perform, maximum.
2145Default: 1000.
2146
2147=item *
2148
2149optimize - whether to perform a table optimization after deleting
2150records. Default: 1 (set to 0 to skip optimization)
2151
2152=back
2153
2154=head2 [nightly work]
2155
2156Controls the bse_nightly.pl script.
2157
2158=over
2159
2160=item *
2161
2162jobs - a comma separated list of BSE background processes to run when
2163bse_nightly.pl is run. Default: bse_session_clean
2164
b249abcb
TC
2165=item *
2166
2167I<other keys> - each key is a sort key, and the value is a single
2168background task name. This allows add-ons to setup extra tasks
2169without overwriting each other. The sugessted key format is:
2170
2171 99 - two digit priority - 00 is executed first, 99 last
2172 package-name - name of package the task is for
2173 unique - extra text to make the key unique, if necessary
2174
bede67d9
TC
2175=back
2176
4cf6a60c
TC
2177=head2 [cache]
2178
2179Parameters controlling where cached information - eg. file upload
2180progress is stored.
2181
2182=over
2183
2184=item *
2185
2186class - the BSE::Cache compatible cache class. See the documentation
2187of BSE::Cache::Cache, BSE::Cache::CHI or BSE::Cache::Memcached.
2188
2189=back
2190
a9634cc9
TC
2191=head2 [db]
2192
2193Database connection parameters. These override the settings in
2194Constants.pm which are deprecated.
2195
2196=over
2197
2198=item *
2199
2200dsn - the DBI dsn used to connect to the database. Default:
2201$Constants::DSN.
2202
2203=item *
2204
2205user - the logon to the database. Default: $Constants::UN
2206
2207=item *
2208
2209password - the password for the user. Default: $Constants::PW.
2210
2211=item *
2212
2213dbopts - a perl expression that should evaluate to a hash reference.
2214Default: $Constants::DBOPTs, or an empty hashref.
2215
2216=item *
2217
2218class - the database wrapper class to use. Default: BSE::DB::Mysql.
2219No other values are currently supported.
2220
2221=back
2222
fea96500
TC
2223=head2 [extra a_config]
2224
2225Defines extra configuration to be returned from the BSE system
2226configuration.
2227
2228Each key is the keyword in the returned JSON object. If the key
2229already exists it is not overwritten.
2230
2231Each value is the name of a section in the BSE configuration. The
2232strings "{level}", "{generator}", "{parentid}", "{template}" are
2233replaced with their values from the article that config is being
2234requested for.
2235
2236So:
2237
2238 [extra a_config]
2239 menu=level{level} menu
2240
2241 [level1 menu]
2242 alpha=One
2243 beta=Two
2244
2245will include:
2246
2247 menu: { alpha: "One", beta: "Two" }
2248
2249in the returned configuration
2250
dbe8a12a
TC
2251=head2 [cookie names]
2252
2253This section maps BSE's default cookie names to alternate names. This
2254can be useful if you have two BSE sites under the same domain and need
2255to ensure they use different cookies.
2256
2257eg.
2258
2259 [cookie names]
2260 userid=altuserid
2261
5abe2da5 2262=head2 [siteuser updates]
f0483c00
TC
2263
2264Each key identifies an update specification for userupdate.pl, the
2265value is a description of the specification.
2266
2267See L<<[siteuser update I<specid>]>> for the rest of the import
2268specification.
2269
5abe2da5 2270
f0483c00
TC
2271=head2 [siteuser update I<specid>]
2272
2273Currently contains only a single key:
2274
2275=over
2276
2277=item *
2278
2279fields - a semi-colon separated list of fields to import. Must
2280contain one of C<id> or C<userId> which is used as a key to identify
2281the user to update. An C<x> entry is a field to ignore. Some fields,
2282such as C<confirmed> may not appear in this list.
2283
2284=back
dbe8a12a 2285
40cc2f24
TC
2286=head2 [paypal]
2287
2288Configuration for BSE's PayPal integration.
2289
2290It shouldn't be necessary to change any of the URLs.
2291
2292=over
2293
2294=item *
2295
2296test - if true, then the PayPal sandbox is used, and the configuration
2297entries starting in C<test_> are used. If false, PayPal is live, and
2298configuration entries starting in C<live_> are used. Default: 1.
2299
2300=item *
2301
2302test_api_username, test_api_password, test_api_signature - API
2303credentials for test mode. Required in test mode.
2304
2305=item *
2306
2307live_api_username, live_api_password, live_api_signature - API
2308credentials for live mode. Required for live mode.
2309
2310=item *
2311
2312test_ws_url - URL to make NVP requests through in test mode. Default:
2313https://api-3t.sandbox.paypal.com/nvp
2314
2315=item *
2316
2317test_refresh_url - PayPal URL to refresh to in test mode. Default:
2318https://www.sandbox.paypal.com/webscr
2319
2320=item *
2321
2322live_ws_url - URL to make NVP requests through in live mode. Default:
2323https://api-3t.paypal.com/nvp
2324
2325=item *
2326
2327live_refresh_url - PayPal URL to refresh to in live mode. Default:
2328https://www.paypal.com/cgibin/webscr
2329
2330=back
2331
2332=head2 [paypal custom]
2333
2334Extra parameters supplied to the SetExpressCheckout API. See the
2335Express Checkout Advanced Features Guide (from PayPal) for details.
2336
2337Some settings that may be useful:
2338
2339=over
2340
2341=item *
2342
2343PAGESTYLE - the style of payment page to use from those listed in your
2344account profile.
2345
2346=item *
2347
2348HDRIMG - https URL to an image to use in the payment page header.
2349
2350=item *
2351
2352HDRBACKCOLOR - a 6 hex digit color to use as the background of the
2353payment page header.
2354
2355=item *
2356
2357HDRBORDERCOLOR - a 6 hex digit color to use as the border of the
2358payment page header.
2359
2360=back
2361
86972656
TC
2362=head2 [audit log]
2363
2364=over
2365
2366=item *
2367
2368mail - if non-zero any emails sent through BSE::ComposeMail are logged
2369in the audit log. Default: 0.
2370
2371=item *
2372
2373mail_max_dump - if non-zero this is the size limit of the dump stored
2374in the audit log when [audit log].mail is enabled.
2375
2376=back
2377
61551101
TC
2378=head1 AUTHOR
2379
2380Tony Cook <tony@develop-help.com>
2381
2382=cut