3 config.pod - documents BSE configuration file options
7 BSE historically used Constants.pm to keep most configuration
8 information. The plan is to make sure any new configuration is kept
9 in bse.cfg, and to slowly move most configuration information into
12 Keeping configuration information in Constants.pm makes it difficult
13 to perform upgrades and makes it impossible to use tools such as
14 mod_perl, at least if you want more than one site on the machine.
16 =head1 CONFIGURATION ENTRIES
20 Contains URL configuration for the site.
26 The normal URL for the non-secure parts of the site.
30 The secure URL for the shop, products and other portions of the site
31 that should use SSL. This isn't checked to make sure it is https.
35 Used as the site "name" in a few places.
39 If set, this is used as the base URL for accessing the administrative
40 functions of your site.
44 Ignored if C<adminurl> is set.
46 If this is true then C<secureurl> is used as the base URL for
47 accessing the administrative functions of your site, otherwise C<url>
48 is used as the base URL. Default: false (C<url>'s value is used)
52 Configure the IP address of one or more front-end proxies. This can
53 be a regular expression except that C<.> is translated to C<\.> and
54 C<*> is tranlated to C<.*> to give more glob() like matching.
56 If the reqesting host matches then admin site URL matching is done
57 against HTTP_X_FORWARDED_SERVER instead of SERVER_NAME.
59 Default: no front-end server configured.
65 Contains various file system paths.
71 This is where the files uploads with the file wizard are stored. It
72 must be writable by the web server user.
76 Directory containing administrative templates. Note: this is not
77 completely implemented for now, so assume the default. Default: admin
78 directory under $TMPLDIR.
82 Directory base for most templates.
86 Local Directory base for templates. This is searched before the
91 Where uploaded images are stored. This is not yet completely
92 implemented. Default: $IMAGEDIR.
96 Local search path for BSE::Custom, or the class configured by
97 C<custom_class> in [basic].
101 Where uploaded siteuser images are stored. This must be set in the
102 config file. The default bse.cfg include an entry to use the current
103 values of [paths].downloads
107 Pregenerated dynamic article pages are stored here. This must be
108 defined if you site contains any dynamicly generated pages.
112 The directory where cached versions of scaled thumbnails are stored.
113 Defaults to image_dir/scaled. This must be in the document tree. If
114 you set this you should also set scalecacheurl.
118 The URL to the directory represented by scalecache. Defaults to
125 This section is used by the file wizard to map uploaded file
126 extensions to MIME content types. This can be used to extend
127 BSE::FileEditor's internal extension map. It cannot override that
130 The key for each entry is the extension, without the leading '.'.
134 xls = application/msexcel
138 Used for translating symbolic template names into full names under the
141 In each case the default is the name with a C<.tmpl> extension.
151 user registration page
155 =head2 [admin templates]
157 Used for translating the names of administration templates into filenames.
159 In each case the default is the name with a C<.tmpl> extension.
169 Catalog editor page. Default admin/edit_catalog.tmpl
181 Article edit pages. Default admin/edit_<number>.tmpl
185 Step child/parent management page. Default admin/edit_steps.tmpl
197 The value of the charset keyword when outputting HTML from a script.
198 Set to the empty string to suppress the charset keyword. Default:
203 If this is a non-zero number, then all but mailto links are redirected
204 to C<nuser.pl/redirect> so you can display a diclaimer. If this
205 contained alphabetics it's treated as a comma separated list of url
206 schemes that should be handled via C<nuser.pl/redirect>. If 0 or not
207 present, no redirection is done.
209 The redirect URL includes a hash of the url, title and the redirect
210 salt to prevent using this mechanism by external sites for cookie
215 The salt used in generating the has for redirect_links. Default: an
224 =item cookie_lifetime
226 The expiry time for cookies. This should be in the form supported by
227 CGI.pm for the -expires parameter. Typically you want a plus ('+'), a
228 number, and a time character (s - seconds, m - minutes, h - hours, d -
229 days, M - months). Default: +3h
233 This overrides the domain value set for cookies. This is useful if
234 you allow the site to run under both example.com and www.example.com,
235 if you set cookie_domain to example.com then a user visiting
236 www.example.com will still have their cookies when they visit
241 This overrides the cookie name used to store the session id. Default:
242 sessionid. This is useful when you have 2 sites under the same
243 top-level domain, and helps disambiguate the cookie returned by the
248 Minimum password length in characters. Default: 4.
252 Device to read random data from. This device should not block when it
257 If this is true then the encrypted messages containing the customer's
258 credit card number are sent to the shop owner signed. To avoid
259 keeping a passphrase and signing key on the server you can set this to
260 false (0). This has the effect that anyone could send you an unsigned
261 message encrypted with your public key, though this may not be a
262 security threat. Default: True.
266 If this is true then the links to your articles within BSE will be
267 followed by a / and then by a simplified version of the article title.
268 The aim is to include at least some title information in the URL
269 without modifying the name of the HTML file. Default: False.
273 If this is true then the user/group/permissions database is used to
274 control access to the system. Default: False.
276 =item access_filter_steps
278 If this is true, then the drop-down lists of possible stepparents and
279 stepchildren on the article edit pages are filtered for access control.
282 =item access_filter_parents
284 If this is true, then the drop-down lists of possible parents on the
285 newsletter edit pages are filtered for access control.
290 Set this to non-zero to enable authentication via server
291 authentication (usually Basic Authentication.) You should normally
292 set this if you set htusers below. Default: 0 (disabled)
296 This should be the path to a file to be updated with the list of users
297 and crypt() versions of their passwords. If this is set then the
298 security system will check for a user set by the browser before
299 attempting a form based logon. Default: None.
303 The name of the custom class for your site. This is currently only
304 used for article editing customizations. This class should derive
305 from BSE::CustomBase. Default: BSE::Custom.
307 =item jit_dynamic_pregen
309 If this is true, then pre-generation for dynamic pages will be delayed
310 until the page is displayed to a user. Default: off.
314 If true, the ifAjax and ajax tags will be active for static pages.
316 =item cache_thumbnails
318 If set to zero the results of the thumbimage/gthumbimage body/template
319 tags will not be cached. Default: 1 (caching is enabled).
321 =item static_thumbnails
323 If true and cache_thumbnails is true then thumbnails for the thumbnail
324 cache will be generated when a static page is regenerated, and the
325 link from the page will link to the image in the cache rather than to
326 C<thumb.pl>. Default: 1 (static thumbnails enabled).
330 The prefix applied to articles that use a linkAlias url. This should
335 If this is non-zero then an article with linkAlias set will use an
336 alias url instead of the "real" url. You will need to configure a
337 RewriteRule or ErrorDocument to page.pl to direct the user to the
338 correct URL. Default: 1.
342 If this is non-zero then the title is cleaned up (all but
343 alphanumerics removed) and appended to the alias URL generated.
345 =item default_popupimage
347 This is the default popup image class for the popimage[] and
348 gpopimage[] tags. Default: popup.
352 Some obsolete tags will warn to stderr if this is non-zero. Default:
355 =item no_cache_dynamic
357 If non-zero, the default, dynamic responses will include a
358 C<Cache-Control: no-cache> header. This can be overridden for
359 articles via , article flags, C<[template >
360 I<templatename>C<].no_cache_dynamic> and [article].no_cache_dynamic.
367 This section controls how BSE sends email.
373 The host or IP address of your mail server. If this is not set
374 C<sendmail> will be used instead. If this is set you must also set
379 The name that BSE uses to identify itself when sending mail via SMTP.
380 Required if I<smtp_server> is set.
384 The path to the C<sendmail> binary. Default: /usr/lib/sendmail
388 The options supplied to sendmail. Default: -t -oi
390 You may want to add the -odq option to this if you want mail queued
391 rather than sent immediately.
393 =item set_errors_to_from
395 If true, we add an Errors-To header set to the same as the From
396 header. Default: true.
398 =item html_system_email
400 If non-zero then emails sent via the compose mail system that aren't
401 being sent to a member record, will be sent as HTML, if the HTML
402 template is available.
406 =head2 [children of I<id>]
408 Where I<id> is the identifier for an article.
414 the name of the default template for children of the given parent
418 a comma-separated list of extra directories under $TMPLDIR to search
419 for templates that can be used for children of the given parent article.
423 =head2 [article I<id>]
425 Where I<id> is the identifier of an article.
431 A comma-separated list of extra directories under $TMPLDIR to search
432 for templates that can be used for children of the given parent
435 =item extra_templates
437 A comma-separated list of extra templates under $TMPLDIR that can be
438 used for the given article.
442 =head2 [level I<level>]
448 The default template for this level of article, assuming it hasn't
449 been set in the [children of I<article id>] section.
453 A comma-separated list of extra directories under $TMPLDIR to search
454 for templates that can be used for articles at the given I<level>.
464 The default template for catalogs.
474 The default template for products.
476 =item extra_templates
478 A comma separated list of extra templates that can be used for
485 This can be used to control translation of error messages. Each key
486 has a prefix identifying the module that uses the error, followed by
487 '/' followed by a specific identifier for the message.
489 Message parameters, expressed as $I<digit>, are replaced with the
490 parameters passed to the message. C<$$> is replaced with C<$>.
492 Each message identifier below is documented with the id, when it
493 occurs, the default message, and any parameters.
499 the user attempted to logon without entering a logon name. Default:
500 "Please enter a logon name". No parameters.
504 the user attempted to logon without entering a password. Default:
505 "Please enter your password." No parameters.
507 =item user/baduserpass
509 the user's logon name or password was not found or did not match.
510 Default: "Invalid user or password". No parameters.
512 =item user/notloggedon
514 the user attempted to logoff while not logged on. Default: "You
515 aren't logged on". No parameters.
517 =item user/optsoldpass
519 the user entered a new password on the options page without entering
520 their old password. Default: "You need to enter your old password to
521 change your password". No parameters.
523 =item shop/logonrequired
525 Displayed if the user attempts to checkout when [shop].require_logon
536 if non-zero, the order must be marked as paid for before the file can
541 if non-zero the order must be marked as filled before the files can be
546 if non-zero the user must be registered/logged on to download I<any>
551 if non-zero, downloads of userfiles will be logged. Default: 0
553 =item log_downufile_maxage
555 the maximum age of entries in the user file download log, in days.
560 =head2 [confirmations]
562 Control over confirmation emails.
568 The subject of email confirmation emails. Default: Subcription
573 The from field for the email. Default: $SHOP_FROM
577 =head2 [subscriptions]
579 Control over subscription messages.
585 The from field for the email. Default: $SHOP_FROM.
589 Default for the "Test Name" field for sending test subscription
594 Default for the "Test Email" field for sending test subscription
599 Set to 1 if you want the "Test Text Only" box checked by default for
600 sending test subscription messages.
604 Set to 0 to disable display of the test subscription messages portions
605 of the subscriptions send form.
607 =item text_link_inline
609 Set to format links as they appear in the text version of emails.
610 C<$1> is replaced with the title, C<$2> with the URL and C<$3> with
611 the index. C<$$> is replaced with '$'. Default: C<$1 [$3]>
615 Set to format links as they appear at the footer of the body text. If
616 this is set to the empty string then no list appears. C<$1>, C<$2>,
617 C<$3>, C<$$> are replaced as for I<text_link_inline> and $n is
618 replaced with newline. Default: C<[$3] $2>
620 =item text_link_list_prefix
622 A line of text produced above the list of URLs if there is one.
623 Default: C<----->. $n in this is replaced with newlines.
627 For example, if the configuration is:
629 text_link_inline="$1" ($3)
630 text_link_list_prefix=$n$n-------
631 text_link_list=($3) "$1"$n => $2
633 and the body text is:
636 link[http://www.example.com/|Example]
646 => http://www.yoursite.com/shop/index.html
648 => http://www.example.com/
654 =item highlight_partial
656 If this is true then partial matches will be highlight in search
657 result excerpts. Default: True
659 =item keep_inaccessible
661 If this is true then resulting articles that can't be accessed by the
662 user are listed in the search results. Default: false.
666 The default regular expression used to match words in text during
667 indexing. Default: \w+
669 =item wordre_I<fieldname>
671 The field specific word match regular expression for the built-in
672 search indexer. Default: the value of C<wordre>.
676 =head2 [search highlight]
678 Sets the prefix and suffix used for highlighting matches for different
681 These are used by the highlight_result, excerpt, pageTitle, author,
682 keywords and matchFile tags.
684 Each field has a prefix and suffix entry. The key is
685 I<fieldname>_prefix or I<fieldname>_suffix. For file fields this is
686 file_I<fieldname}_prefix and file_I<fieldname}_suffix.
688 The default prefix is <b>. The default suffix is </b>.
690 For example you can do:
693 body_prefix=<span class="searchfound">
702 Used by some templates to check if the shop is enabled. Set this to 1
703 to enable the shop, or 0 to disable it.
705 =item secureurl_articles
707 If this is false then shop articles will not use the secureurl as their
708 baseurl. Default: True
710 =item register_if_files
712 If true the customer is required to register before checkout if there
713 are any for sale files attached to products in the cart. Default: True
717 If true the customer is required to be logged on before checkout,
718 whether or not for sale files are attached to products in the cart.
723 A comma-separated list of acceptable payment types. Default: 0
725 The possible payment types are:
731 0 - the user enters a credit card number, name and expiry date
735 1 - the customer will send a cheque
739 2 - contact customer for details
743 Other types can be added by adding entries to the [payment type names]
744 and [payment type descs] sections.
752 These are used by various shop templates to present an address that a
753 cheque payment should be sent to.
757 From email address for emails sent by the shop. Overides $SHOP_FROM
762 To name for emailed orders sent by the shop. Overrides $SHOP_TO_NAME
767 To email for emailed orders sent by the shop. Overrides $SHOP_TO_EMAIL
772 If this is true then orders sent to you by the shop will not be
773 encrypted. Enabling this disabled acceptance of credit card orders,
774 and the default for C<payment_types> will become C<1> instead or C<0>.
776 Please realize that other potentially commercially sensitive
777 information is being sent in the clear to a central location,
782 If true, then the order is email to to_email, possibly with credit
783 card information included. Default: $SHOP_EMAIL_ORDER.
785 =item display_I<field>
787 Used to translate the stored order field name into a presentation name
788 suitable for error messages.
792 The name of a class to load to process credit card transactions online.
794 Currently this can be either DevHelp::Payments::Test or
795 DevHelp::Payments::Inpho.
799 Name of the encryption module to use. Default: $SHOP_CRYPTO.
801 =item crypt_signing_id
803 Id of the key to sign the order email with. If this is non-empty then
804 the email is signed even if [basic].sign is false. Default:
809 Path to the GnuPG program. Default: $SHOP_GPG
811 =item crypt_passphrase
813 Passphrase of the key used to sign the email. Default:
818 If true, request the card type when requesting credit card
819 information. Default: False.
821 =item cart_entry_limit
823 Maximum number of entries in the cart. This limits the number of
824 distinct products (with options) in the cart, not the total
825 quantities. Default: Unlimited.
835 A space-separated list of modules under Courier::, e.g. "Fastway::Road
836 AustraliaPost::Air". These will be made available as shipping methods
837 on the checkout page.
841 The post code from which products are shipped.
843 =item fastwayfranchisee
845 The name of the Fastway franchisee used to ship products from the
848 =item fastwayfranchiseecode
850 The Fastway franchisee code for the customer, if any.
854 =head2 [Shop Order Validation]
856 This section can contain extra order validation information, including
857 specifying required fields, display names and extra validation rules.
865 The maximum length of the article title field. Default: 255. Should
866 not be set higher than this unless you change the database schema.
872 Controls the interest.pl script.
878 Email address that is notified of the interest. Defaults to $SHOP_FROM.
890 When a user logs on, and the site url is different to the secure url
891 BSE attempts to refresh to the other "side" of the site to set the
894 BSE does some simple comparisons to attempt to determine whether the
895 logon form was triggered on the secure side of the site (possibly from
896 the shop) or on the insecure side. Since CGI doesn't necessarily give
897 us all the information required, it's possible it will guess wrong.
899 Setting this option to 1 will enable debugging information sent to
900 standard error, which will be sent to the error log on Apache. This
901 probably isn't useful on IIS.
905 Reports errors to STDERR (hence to the error log on Apache) if there
906 is a problem deleting the actual file when an attached file is
909 =item mail_encryption
911 Reports debugging information to standard error while encrypting your
916 Reports cookies received from the browser and sent to the browser to
917 STDERR (hence to the error log on Apache.)
921 If nonzero the session hash is dumped to STDERR after it is retrived
924 =item subscription_expiry
926 If non-zero then subscription expiry date calculations are dumped to
929 =item jit_dynamic_regen
931 If non-zero then information about jit_dynamic_regen is sent to
936 If non-zero then the ifUserCan tag will output some trace information
943 Contains various URIs.
945 This is underused, so don't rely on it yet.
951 The URI to the CGI directory. Default: /cgi-bin
955 The URI where images are kept. Default: /images
965 This will provide translations from symbolic names to article ids.
967 Currently this is used for converting article ids in the access
968 control code, and for looking up the id of the shop.
970 =head2 [printable type]
972 If the user supplies a template name to printable.pl then you can use
973 a different content type by adding an entry to this section. The key
974 is the template name, and the value is the full content type.
976 =head2 [search index scores]
978 This section is used when generating the search index to override the
979 default scores for each field in the articles.
981 The default scores are:
991 description 0 Products only
992 product_code 0 Products only
993 file_displayName 2 displayName for files
994 file_description 2 description for files
995 file_notes 1 notes for files
997 =head2 [article flags]
999 =head2 [product flags]
1001 =head2 [catalog flags]
1003 Flags that can be set for articles, products and catalogs
1004 respectively. Note that flags for articles are also visible in
1005 products and catalogs.
1007 All flag Ids are single letters or digits. Uppercase letters are
1008 reserved for use by BSE internally, leaving lower-case letters and
1009 digits for your own use.
1011 Use the id of the flag as the key, and a description of the flag as
1014 =head2 [article uris]
1016 Each key is an article id, the values are base URIs to store the HTML
1017 form of those articles and their children under.
1019 =head2 [protect link]
1021 The keys are ids of articles that shouldn't have their link field
1022 overwritten. The value should be a true value, but is otherwise
1031 The recipient for the data dump email sent by datadump.pl. Default:
1036 the From for the data dump email sent by datadump.pl. Default:
1043 Configuration for site users.
1049 If this is set to true then no passwords are required during
1050 registration, a confirmation email is sent immediately upon
1051 registration and that confirmation email contains a link the user can
1052 use to manage their details.
1054 This option has some security concerns since it can leave links to the
1055 user's information in the browser history. This option is not
1058 You cannot use this to control access to the shop.
1064 =item require_address
1070 =item require_postcode
1072 =item require_telephone
1074 =item require_facsimile
1076 =item require_country
1080 =item require_organization
1082 Set these to true to require the corresponding field during
1083 registration, and to keep it required after modification. Default:
1086 If you enable any of these, you should enable C<info_on_register> as
1087 well, or modify the registration template to include the given fields.
1089 =item display_I<field name>
1091 Controls how the given field is displayed in error messages. If you
1092 change the field names on the registration and/or options forms you
1093 should probably change them here too. Default: internal field name
1094 with the first character converted to upper-case.
1096 =item info_on_register
1098 If this is set then the user info is prompted for during user
1099 registration. The information still isn't required unless the
1100 appropriate require_I<field> option is set. Default: false.
1102 =item register_refresh
1104 The default URL to refresh to on completing registration if no r
1105 parameter is supplied.
1109 If this is set then the subcription checkboxes are all checked on
1110 registration by default. Default: false.
1112 The user will only receive the subscriptions if they leave them checked
1113 and follow the link in the confirmation email.
1115 =item subscribe_I<id>
1117 Where I<id> is the number identifying a subscription. If this is set
1118 then the subscription checkbox for that subscription will be checked
1119 by default on the registration form. Default: false.
1121 The user will only receive the subscriptions if they leave it checked
1122 and follow the link in the confirmation email.
1124 You can get the I<id> of a subcription by looking at the Edit link on the
1125 subscriptions management page, the number after "id=" is the id.
1127 =item billing_on_main_opts
1129 If set to zero then user billing options will be managed on a separate
1130 page. This is controlled by the user/options_base.tmpl template.
1134 If set to zero then users cannot register themselves. Default: true,
1135 allowing users to register themselves.
1137 =item notify_register
1139 If true then an email is sent when a new user registers on your site.
1140 The email address sent to is the first set of [site
1141 users].notify_register_email, [shop].from or $SHOP_FROM from
1144 No email is sent if a new user is created from the administration user
1147 See also: notify_register_email, notify_register_subject.
1149 =item notify_register_email
1151 The email to sent the registration notification too. See
1152 notify_register above.
1154 =item notify_register_subject
1156 The subject of the notification email sent when a new user registers.
1157 Any {I<field>} is replaced with the given field from the registered
1158 user. See notify_register above.
1160 Default: New user {userId} registered
1162 =item notify_register_customer
1164 If non-zero then email id C<notify_register_customer> will be sent to
1165 new user on registration. By default this uses template
1166 user/email_register, subject "Thank you for registering" which can be
1167 overridden in [email notify_register_customer]
1171 =head2 [payment type names]
1173 This section and [payment type descs] are used to configure new
1176 The key is the integer representing the payment type. The value is
1177 the name used in tags for checking the payment type.
1179 You can also add a description (currently unused) to [payment type
1182 You should use numbers starting from 10 to avoid conflicts with future
1185 =head2 [payment type descs]
1187 See [payment type names].
1189 =head2 [payment type required]
1191 Set the key given by the payment type id to a value of a
1192 comma-separated list of fields required for that payment type.
1194 =head2 [help style I<style-name>]
1196 This type of configuration section is used to set values for a style
1197 of help icon. Only the C<template> and C<prefix> values are used
1198 directly by the code, the others are used by the default helpicon
1205 The URI to the help files for this style. Default: /help/ in style
1206 "user", /admin/help/ in style "admin".
1210 The template used to produce the icon. Default: helpicon in style
1211 user, admin/helpicon in style "admin".
1215 URI to the help icon image. Default: /images/admin/help.gif
1219 The width of the help icon image. Default: 16
1223 The height of the help icon image. Default: 16
1227 If you just want to change the help icon image for user help icons you
1231 icon=/images/help.gif
1237 =item allowed_referer
1239 A semi-colon (;) separated list of referer domains that are allowed to
1240 link to the C<a_set> target of L<affiliate.pl>.
1242 If the user's browser supplies a referer header then it will be
1243 checked against this list.
1245 =item require_referer
1247 If this is set then the C<a_set> target of L<affiliate.pl> will
1248 require that the user's browser supply a Referer header.
1250 =item default_refresh
1252 If no C<r> parameter is supplied to the C<a_set> target of
1253 L<affiliate.pl> then this is used as the default refresh.
1255 Default: the site base url.
1257 =item subscription_required
1259 This is either the numeric or text of a subscription for which the
1260 affiliate must have an active subscription.
1264 A single letter flag which the site administrator must set for the
1265 affiliate page to be displayed for the given member.
1269 If this is set then affiliate.pl will set the named cookie to the
1274 This is a comma-separated list of other cookies that should be set by
1275 the a_set target. The values for the cookies should be passed to the
1276 a_set target. For example with:
1279 other_cookies=alpha,beta
1283 http://your.site.com/cgi-bin/affiliate.pl?a_set=1&id=someid&alpha=1&beta=2&gamme=3
1285 is accessed, then the cookie alpha is set to "1", beta is set to "2".
1286 The cookie gamma will not be set since it's not listed.
1290 Used as the link base URL for the afflink.tmpl side bar template when
1291 an affiliate id is set. Default: example.com
1295 Used at the text of the link for the afflink.tmpl side bar template
1296 when an affiliate id is set. Default: Your Site.
1300 Used as the link URL for the afflink.tmpl side bar template when an
1301 affiliate id is not set. Default: example.com
1305 Used as the text of the link for the afflink.tmpl side bar template
1306 when an affiliate id is not set. Default: Our site
1310 =head2 [BSE Siteuser Images]
1312 Each key is the id of a member image, with a corresponding [BSE
1313 Siteuser Image I<image_id>] section. The values are ignored.
1315 =head2 [BSE Siteuser Image I<image_id>]
1317 Provides information about a single member image "template".
1323 Short description on the image, like "Logo". Used in error messages.
1327 Longer description of the image. Accessible with the member_image tag.
1337 The minimum and maximum dimensions of the image.
1339 =item widthsmallerror
1341 =item heightsmallerror
1343 =item widthlargeerror
1345 =item heightlargeerror
1347 Error messages displayed in the when the image is outside the
1348 configured dimensions.
1354 Default error messages for the above.
1358 Maximum storage the image can use in bytes. Default: 1000000.
1362 Error message displayed if the image uses too much storage.
1368 Various editor settings.
1374 If this is non-zero the system will attempt to load the configured
1375 thumbnail class, and put thumbnail images on the image manager page
1376 rather than full-size images. Default: off
1380 The name of a perl class that implement's BSE's thumbnail API. At
1381 this point the only class that implements that is BSE::Thumb::Imager,
1382 supplied with BSE. Default: None
1384 =item default_thumbnail
1386 URI to the default thumbnail image. This is presented when the
1387 runtime production of a thumbnail image fails.
1389 =item default_thumbnail_width
1391 =item default_thumbnail_height
1393 Dimensions of the default thumbnail image.
1395 =item default_thumbnail_alt
1397 Alt text for the default thumbnail image.
1399 =item check_modified
1401 If this is true then BSE will check the value of the lastModified
1402 parameter passed against the value in the article. If these don't
1403 match the article isn't saved and is redisplayed with an error
1404 message. This provides simple protection against one user saving
1405 changes over those made by another.
1419 Default values for the thumbimage tag.
1425 Each value is used as the relative or absolute name of a file or
1426 directory to load more configuration data from.
1428 The keywords must remain unique.
1430 Only the [includes] section from bse.cfg itself is used to locate more
1433 If the value references a directory, all files with an extension of
1434 C<.cfg> are read for configuration data.
1436 The order the files are read (which later files overriding older
1447 the entries in [includes] are sorted alphabetically (or rather
1448 asciily), so an entry with key "A" is read before one with key "B",
1449 one with key "01" is read before "02", but key "10" would be read
1454 if an entry is a file then that is read and the values merged.
1458 if an entry is a directory, then that is scanned and the files found
1459 read alphabetically as above.
1465 This is used to configure the error icon displayed next to fields that
1472 URI to the image file.
1478 The width and height of the error icon image.
1482 =head2 [site user flags]
1484 Flags that can be set for site users.
1486 All flag Ids are single letters or digits. Uppercase letters are
1487 reserved for use by BSE internally, leaving lower-case letters and
1488 digits for your own use.
1490 Use the id of the flag as the key, and a description of the flag as
1493 =head2 [article defaults]
1495 =head2 [catalog defaults]
1497 =head2 [product defaults]
1499 These sections contain defaults values for the corresponding article
1502 Each key is the name of a column for the article type.
1504 If an entry is not found in [catalog defaults] then [article defaults]
1507 If an entry is not found in [product defaults] then [article defaults]
1510 These sections are checked B<after> the C<[children of >I<id>C<]> and
1511 C<[level >I<level>C<]> sections.
1513 These defaults are used when creating an article where no value is
1514 supplied, they can also be accessed via the <:default I<name>:> tag.
1516 =head2 [newsletter filters]
1518 Contains C<criteria>I<index> entries starting from C<criteria1>, then
1521 Each entry consists of a filter class name, followed by a ; followed
1522 by data passed to that filter.
1524 ; user the original SQL based filter, configured from
1526 criteria1=BSE::NLFilter::SQL;foo
1528 See the documentation for each filter to configure the filters.
1530 =head2 [Query Groups]
1532 The key of each entry is the numeric identifier of a query group, the
1533 values are the name of the query group. For example:
1538 [query group some name]
1539 sql=select id from site_users where id = ? and name1 like '%some%'
1541 Each entry also has a corresponding [Query Group I<name>] section.
1543 =head2 [query group I<name>]
1545 This section corresponds to an entry in [Query Groups].
1551 This is an SQL statement. One placeholder is required and is passed
1552 the siteuser id (primary key) of the user to be checked. If this
1553 query returns I<any> rows then the user is considered part of the
1558 =head2 [template types]
1560 Each key is a template name, the value is the content type to be used
1561 when displaying the template dynamically.
1565 This section defines CSS class names for BSE's body text link tags.
1566 The key is the tag name, the value is the CSS class to be used.
1568 By default the class used is the same as the name of the tag, but you
1569 can switch this off by adding an entry setting the class to the empty
1570 string, for example:
1572 ; no class attribute for any of the links
1579 You can set p here too to set the class for paragraphs generated as
1580 body text. By default no class is set.
1584 Controls the behaviour of the window displayed by the popimage[] body
1585 text tag. If the Javascript for this has been customized then this
1594 Extra width and height for the window beyond the size of the image.
1595 Default: no extra width or height.
1599 If set to non-zero popimage[] will attempt to centre the popup within
1600 the current window. Default: 0.
1610 This is used to configure the DevHelp::Payments::Inpho module.
1616 If this is set then the test parameters are used instead of the
1621 The URL to process requests through.
1623 Default: https://extranet.inpho.com.au/cc_ssl/process
1627 Inpho supplied user name.
1631 Inpho supplied password.
1635 The URL to process test requests through.
1639 The user to supply to test requests.
1643 The password to supply to test requests.
1649 This section controls whether some custom class methods are called:
1655 If this is non-zero then siteuser_saveopts is called.
1659 =head2 [levelI<level> menus]
1661 Where I<level> is the article level at which the defined menu options will be available.
1662 Configure each menu value and description as I<key> and I<value>.
1673 To create a menus using such values, use the "allkids_of" iterator "filter" option.
1677 <:iterator begin allkids_of -1 filter: [menu] == 2 :>
1681 =head2 [title alias]
1683 Enable the "titleAlias" article field and set which level it will be available.
1689 Where I<level> is the article "level" for which the "titleAlias" field should be enabled. To enable
1690 set the value to non-zero.
1697 The "titleAlias" can be used as an alternate "short" title for the given article, especially useful
1698 for space critical iterated menus. A template conditional can be used to display the "titleAlias"
1699 in place of the article "title" when appropriate.
1703 =head2 [thumb geometries]
1705 Each key represents a geometry identifier for use by the thumbimage[],
1706 gthumbimage[] body text tags and the <:thumbimage ...:>, <:gthumbimage
1707 ...:>, <:dthumbimage ...:> template tags.
1709 The key is the geometry identifier, the value is the geometry string
1712 The geometry string consists of:
1722 crop flag - if present
1730 The dimensions can be in any of the following forms:
1736 <width>x<height> - the desired maximum width and height. eg 200x150
1740 <width>x - the desired width, with the height calculated
1741 proportionally based on the source image size
1745 x<height> - the designed height, with the width calculated
1746 proportionally based on the source image size.
1750 <size> - the desired maximum size in both directions. so "200" is
1751 equivalent to "200x200"
1755 The crop flag is a single letter "c", if present then the image should
1756 be scaled so the smaller dimension matches the requested size, and the
1757 longer dimension will be cropped to fit.
1759 The fill if present is: fill(color) where color is a color recognized
1760 by the underlying graphics implementation. This should be at least
1761 hex web colors without the #, eg fill(FF0000) will fill with red.
1763 =head2 [thumb classes]
1765 Each key represents a geometry identifier for use by the thumbimage[],
1766 gthumbimage[] body text tags and the <:thumbimage ...:>, <:gthumbimage
1767 ...:>, <:dthumbimage ...:> template tags.
1769 The value is used as the class for the generated img tag.
1773 Each value represents a handler or script name for the <:dyntarget
1774 I<script> I<target> ...:> tag.
1776 Each key has a TARGET version and a no-TARGET version, with the key
1777 suffixed with C<_n>.
1779 The default C<nuser> target is C</cgi-bin/nuser.pl/user/TARGET>. The
1780 default no-target C<nuser> is C</cgi-bin/nuser.pl/user>.
1782 For other targets the default is
1783 C</cgi-bin/>I<script>C<.pl?a_TARGET=1> and
1784 C</cgi-bin/>I<script>C<.pl>.
1786 The string C<TARGET> is replaced with the target specified in the
1789 This, along with dyntarget is intended to allow a more "Web 2.0" type
1790 of access to BSE. eg. you might set:
1796 and have a rewrite rule:
1798 RewriteRule ^/xshop/(.*)$ /cgi-bin/nuser.pl/shop/$1 [PT]
1800 =head2 [popimage class I<classname>]
1802 This defines the settings for a class of images generated by the
1803 popimage[] and gpopimage[] body text markup tags. For example, the
1804 settings for C<popimage[imageid|foo]> can be found in section
1805 C<[popimage class foo]>.
1811 The html generated for this class. Tags of the form
1812 C<{>I<identifier>C<}> are replaced, where I<identifier> can be
1813 C<inline_> or C<outline_> followed by an image field name, for example
1814 C<inline_src> is the URL to the inline image.
1816 Default: <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>
1818 The default may be tuned as needed.
1822 The inline image geometry. Default: editor (the value used for
1823 thumbnails on the admin side)
1827 The outline image geometry. If no value is supplied then the original
1828 image values are used.
1832 =head2 [mail resources]
1834 Each key is the identifier of a file that can be attached to
1835 BSE::ComposeMail emails. The value is comma separated filename,
1836 content type, inline status.
1838 The files are searched for through the template search mechanism, so
1839 the filename can be relative to either the master or local templates
1842 If the content type is not supplied, if the filename end in gif, png
1843 or jpg the appropriate content type is used, otherwise
1844 application/octet-stream.
1846 If the inline status is not supplied then images are considered
1847 inline, and other files arent.
1849 =head2 [shop registration]
1851 Each key represents a message id from attempts to checkout. Except
1852 the all key which covers all cases.
1854 If the C<all> key or the message id key is non-zero then the checkout
1855 page will redirect to registration instead of login if the cart or
1856 configuration requires that the user be logged in.
1858 =head2 [template I<template-name>]
1860 Settings for articles based on a particular template.
1864 =item no_cache_dynamic
1866 Controls whether a cache-control: no-cache header will be produced.
1867 Can be overridden with the A and B article flags. If not set the
1868 value of [article].no_cache_dynamic is used.
1874 Global settings for articles.
1878 =item no_cache_dynamic
1880 Controls whether a cache-control: no-cache header will be produced.
1881 Can be overridden with the A and B article flags or [template
1882 I<template-name>].no_cache_dynamic. If not set the value of
1883 [basic].no_cache_dynamic is used.
1889 For the <:recaptcha:> tag currently only used for fmail.pl.
1893 =item api_public_key
1895 =item api_private_key
1897 The public and private key you receive when you register with reCAPTCHA.
1899 =item error_I<error_code>
1901 Replace the error message for the given I<error_code> where
1902 I<error_code> is the reCAPTCHA error code
1903 (eg. "incorrect-captcha-sol") with dash replaced by underscore.
1907 error_incorrect_captch_sol=VERY BAD INPUT
1913 Tony Cook <tony@develop-help.com>