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. This can contain references like
83 $(section/key) to other configuration entries. Split on the systems
84 PATH separators (run: perl -V:path_sep)
88 Local Directory base for templates. This is searched before the
89 templates directory. This can contain references like $(section/key)
90 to other configuration entries. Split on the system's PATH separator.
94 Where uploaded images are stored. This is not yet completely
95 implemented. Default: $IMAGEDIR.
99 Local search path for BSE::Custom, or the class configured by
100 C<custom_class> in [basic].
102 =item siteuser_images
104 Where uploaded siteuser images are stored. This must be set in the
105 config file. The default bse.cfg include an entry to use the current
106 values of [paths].downloads
110 Pregenerated dynamic article pages are stored here. This must be
111 defined if you site contains any dynamicly generated pages.
115 The directory where cached versions of scaled thumbnails are stored.
116 Defaults to image_dir/scaled. This must be in the document tree. If
117 you set this you should also set scalecacheurl.
121 The URL to the directory represented by scalecache. Defaults to
128 This section is used by the file wizard to map uploaded file
129 extensions to MIME content types. This can be used to extend
130 BSE::FileEditor's internal extension map. It cannot override that
133 The key for each entry is the extension, without the leading '.'.
137 xls = application/msexcel
141 Used for translating symbolic template names into full names under the
144 In each case the default is the name with a C<.tmpl> extension.
154 user registration page
158 =head2 [admin templates]
160 Used for translating the names of administration templates into filenames.
162 In each case the default is the name with a C<.tmpl> extension.
172 Catalog editor page. Default admin/edit_catalog.tmpl
184 Article edit pages. Default admin/edit_<number>.tmpl
188 Step child/parent management page. Default admin/edit_steps.tmpl
200 The value of the charset keyword when outputting HTML from a script.
201 Set to the empty string to suppress the charset keyword. Default:
206 If this is a non-zero number, then all but mailto links are redirected
207 to C<nuser.pl/redirect> so you can display a diclaimer. If this
208 contained alphabetics it's treated as a comma separated list of url
209 schemes that should be handled via C<nuser.pl/redirect>. If 0 or not
210 present, no redirection is done.
212 The redirect URL includes a hash of the url, title and the redirect
213 salt to prevent using this mechanism by external sites for cookie
218 The salt used in generating the has for redirect_links. Default: an
227 =item cookie_lifetime
229 The expiry time for cookies. This should be in the form supported by
230 CGI.pm for the -expires parameter. Typically you want a plus ('+'), a
231 number, and a time character (s - seconds, m - minutes, h - hours, d -
232 days, M - months). Default: +3h
236 This overrides the domain value set for cookies. This is useful if
237 you allow the site to run under both example.com and www.example.com,
238 if you set cookie_domain to example.com then a user visiting
239 www.example.com will still have their cookies when they visit
244 This overrides the cookie name used to store the session id. Default:
245 sessionid. This is useful when you have 2 sites under the same
246 top-level domain, and helps disambiguate the cookie returned by the
251 Minimum password length in characters. Default: 4.
255 Device to read random data from. This device should not block when it
260 If this is true then the encrypted messages containing the customer's
261 credit card number are sent to the shop owner signed. To avoid
262 keeping a passphrase and signing key on the server you can set this to
263 false (0). This has the effect that anyone could send you an unsigned
264 message encrypted with your public key, though this may not be a
265 security threat. Default: True.
269 If this is true then the links to your articles within BSE will be
270 followed by a / and then by a simplified version of the article title.
271 The aim is to include at least some title information in the URL
272 without modifying the name of the HTML file. Default: False.
276 If this is true then the user/group/permissions database is used to
277 control access to the system. Default: False.
279 =item access_filter_steps
281 If this is true, then the drop-down lists of possible stepparents and
282 stepchildren on the article edit pages are filtered for access control.
285 =item access_filter_parents
287 If this is true, then the drop-down lists of possible parents on the
288 newsletter edit pages are filtered for access control.
293 Set this to non-zero to enable authentication via server
294 authentication (usually Basic Authentication.) You should normally
295 set this if you set htusers below. Default: 0 (disabled)
299 This should be the path to a file to be updated with the list of users
300 and crypt() versions of their passwords. If this is set then the
301 security system will check for a user set by the browser before
302 attempting a form based logon. Default: None.
306 The name of the custom class for your site. This is currently only
307 used for article editing customizations. This class should derive
308 from BSE::CustomBase. Default: BSE::Custom.
310 =item jit_dynamic_pregen
312 If this is true, then pre-generation for dynamic pages will be delayed
313 until the page is displayed to a user. Default: off.
317 If true, the ifAjax and ajax tags will be active for static pages.
319 =item cache_thumbnails
321 If set to zero the results of the thumbimage/gthumbimage body/template
322 tags will not be cached. Default: 1 (caching is enabled).
324 =item static_thumbnails
326 If true and cache_thumbnails is true then thumbnails for the thumbnail
327 cache will be generated when a static page is regenerated, and the
328 link from the page will link to the image in the cache rather than to
329 C<thumb.pl>. Default: 1 (static thumbnails enabled).
333 The prefix applied to articles that use a linkAlias url. This should
338 If this is non-zero then an article with linkAlias set will use an
339 alias url instead of the "real" url. You will need to configure a
340 RewriteRule or ErrorDocument to page.pl to direct the user to the
341 correct URL. Default: 1.
345 If this is non-zero then the title is cleaned up (all but
346 alphanumerics removed) and appended to the alias URL generated.
348 =item default_popupimage
350 This is the default popup image class for the popimage[] and
351 gpopimage[] tags. Default: popup.
355 Some obsolete tags will warn to stderr if this is non-zero. Default:
358 =item no_cache_dynamic
360 If non-zero, the default, dynamic responses will include a
361 C<Cache-Control: no-cache> header. This can be overridden for
362 articles via , article flags, C<[template >
363 I<templatename>C<].no_cache_dynamic> and [article].no_cache_dynamic.
368 If true then page.pl will 301 redirect (Moved Permanently) requests
369 for an article by its id to the generated link if the article has a
370 link alias. Default: false. Must only be used with use_alias true.
376 This section controls how BSE sends email.
382 The host or IP address of your mail server. If this is not set
383 C<sendmail> will be used instead. If this is set you must also set
388 The name that BSE uses to identify itself when sending mail via SMTP.
389 Required if I<smtp_server> is set.
393 The path to the C<sendmail> binary. Default: /usr/lib/sendmail
397 The options supplied to sendmail. Default: -t -oi
399 You may want to add the -odq option to this if you want mail queued
400 rather than sent immediately.
402 =item set_errors_to_from
404 If true, we add an Errors-To header set to the same as the From
405 header. Default: true.
407 =item html_system_email
409 If non-zero then emails sent via the compose mail system that aren't
410 being sent to a member record, will be sent as HTML, if the HTML
411 template is available.
415 =head2 [children of I<id>]
417 Where I<id> is the identifier for an article.
423 the name of the default template for children of the given parent
427 a comma-separated list of extra directories under $TMPLDIR to search
428 for templates that can be used for children of the given parent article.
432 =head2 [article I<id>]
434 Where I<id> is the identifier of an article.
440 A comma-separated list of extra directories under $TMPLDIR to search
441 for templates that can be used for children of the given parent
444 =item extra_templates
446 A comma-separated list of extra templates under $TMPLDIR that can be
447 used for the given article.
451 =head2 [level I<level>]
457 The default template for this level of article, assuming it hasn't
458 been set in the [children of I<article id>] section.
462 A comma-separated list of extra directories under $TMPLDIR to search
463 for templates that can be used for articles at the given I<level>.
473 The default template for catalogs.
483 The default template for products.
485 =item extra_templates
487 A comma separated list of extra templates that can be used for
494 This can be used to control translation of error messages. Each key
495 has a prefix identifying the module that uses the error, followed by
496 '/' followed by a specific identifier for the message.
498 Message parameters, expressed as $I<digit>, are replaced with the
499 parameters passed to the message. C<$$> is replaced with C<$>.
501 Each message identifier below is documented with the id, when it
502 occurs, the default message, and any parameters.
508 the user attempted to logon without entering a logon name. Default:
509 "Please enter a logon name". No parameters.
513 the user attempted to logon without entering a password. Default:
514 "Please enter your password." No parameters.
516 =item user/baduserpass
518 the user's logon name or password was not found or did not match.
519 Default: "Invalid user or password". No parameters.
521 =item user/notloggedon
523 the user attempted to logoff while not logged on. Default: "You
524 aren't logged on". No parameters.
526 =item user/optsoldpass
528 the user entered a new password on the options page without entering
529 their old password. Default: "You need to enter your old password to
530 change your password". No parameters.
532 =item shop/logonrequired
534 Displayed if the user attempts to checkout when [shop].require_logon
545 if non-zero, the order must be marked as paid for before the file can
550 if non-zero the order must be marked as filled before the files can be
555 if non-zero the user must be registered/logged on to download I<any>
560 if non-zero, downloads of userfiles will be logged. Default: 0
562 =item log_downufile_maxage
564 the maximum age of entries in the user file download log, in days.
569 =head2 [confirmations]
571 Control over confirmation emails.
577 The subject of email confirmation emails. Default: Subcription
582 The from field for the email. Default: $SHOP_FROM
586 =head2 [subscriptions]
588 Control over subscription messages.
594 The from field for the email. Default: $SHOP_FROM.
598 Default for the "Test Name" field for sending test subscription
603 Default for the "Test Email" field for sending test subscription
608 Set to 1 if you want the "Test Text Only" box checked by default for
609 sending test subscription messages.
613 Set to 0 to disable display of the test subscription messages portions
614 of the subscriptions send form.
616 =item text_link_inline
618 Set to format links as they appear in the text version of emails.
619 C<$1> is replaced with the title, C<$2> with the URL and C<$3> with
620 the index. C<$$> is replaced with '$'. Default: C<$1 [$3]>
624 Set to format links as they appear at the footer of the body text. If
625 this is set to the empty string then no list appears. C<$1>, C<$2>,
626 C<$3>, C<$$> are replaced as for I<text_link_inline> and $n is
627 replaced with newline. Default: C<[$3] $2>
629 =item text_link_list_prefix
631 A line of text produced above the list of URLs if there is one.
632 Default: C<----->. $n in this is replaced with newlines.
636 For example, if the configuration is:
638 text_link_inline="$1" ($3)
639 text_link_list_prefix=$n$n-------
640 text_link_list=($3) "$1"$n => $2
642 and the body text is:
645 link[http://www.example.com/|Example]
655 => http://www.yoursite.com/shop/index.html
657 => http://www.example.com/
663 =item highlight_partial
665 If this is true then partial matches will be highlight in search
666 result excerpts. Default: True
668 =item keep_inaccessible
670 If this is true then resulting articles that can't be accessed by the
671 user are listed in the search results. Default: false.
675 The default regular expression used to match words in text during
676 indexing. Default: \w+
678 =item wordre_I<fieldname>
680 The field specific word match regular expression for the built-in
681 search indexer. Default: the value of C<wordre>.
685 =head2 [search highlight]
687 Sets the prefix and suffix used for highlighting matches for different
690 These are used by the highlight_result, excerpt, pageTitle, author,
691 keywords and matchFile tags.
693 Each field has a prefix and suffix entry. The key is
694 I<fieldname>_prefix or I<fieldname>_suffix. For file fields this is
695 file_I<fieldname}_prefix and file_I<fieldname}_suffix.
697 The default prefix is <b>. The default suffix is </b>.
699 For example you can do:
702 body_prefix=<span class="searchfound">
711 Used by some templates to check if the shop is enabled. Set this to 1
712 to enable the shop, or 0 to disable it.
714 =item secureurl_articles
716 If this is false then shop articles will not use the secureurl as their
717 baseurl. Default: True
719 =item register_if_files
721 If true the customer is required to register before checkout if there
722 are any for sale files attached to products in the cart. Default: True
726 If true the customer is required to be logged on before checkout,
727 whether or not for sale files are attached to products in the cart.
732 A comma-separated list of acceptable payment types. Default: 0
734 The possible payment types are:
740 0 - the user enters a credit card number, name and expiry date
744 1 - the customer will send a cheque
748 2 - contact customer for details
752 Other types can be added by adding entries to the [payment type names]
753 and [payment type descs] sections.
761 These are used by various shop templates to present an address that a
762 cheque payment should be sent to.
766 From email address for emails sent by the shop. Overides $SHOP_FROM
771 To name for emailed orders sent by the shop. Overrides $SHOP_TO_NAME
776 To email for emailed orders sent by the shop. Overrides $SHOP_TO_EMAIL
781 If this is true then orders sent to you by the shop will not be
782 encrypted. Enabling this disabled acceptance of credit card orders,
783 and the default for C<payment_types> will become C<1> instead or C<0>.
785 Please realize that other potentially commercially sensitive
786 information is being sent in the clear to a central location,
791 If true, then the order is email to to_email, possibly with credit
792 card information included. Default: $SHOP_EMAIL_ORDER.
794 =item display_I<field>
796 Used to translate the stored order field name into a presentation name
797 suitable for error messages.
801 The name of a class to load to process credit card transactions online.
803 Currently this can be either DevHelp::Payments::Test or
804 DevHelp::Payments::Inpho.
808 Name of the encryption module to use. Default: $SHOP_CRYPTO.
810 =item crypt_signing_id
812 Id of the key to sign the order email with. If this is non-empty then
813 the email is signed even if [basic].sign is false. Default:
818 Path to the GnuPG program. Default: $SHOP_GPG
820 =item crypt_passphrase
822 Passphrase of the key used to sign the email. Default:
827 If true, request the card type when requesting credit card
828 information. Default: False.
830 =item cart_entry_limit
832 Maximum number of entries in the cart. This limits the number of
833 distinct products (with options) in the cart, not the total
834 quantities. Default: Unlimited.
844 A space-separated list of modules under Courier::, e.g. "Fastway::Road
845 AustraliaPost::Air". These will be made available as shipping methods
846 on the checkout page.
850 The post code from which products are shipped.
852 =item fastwayfranchisee
854 The name of the Fastway franchisee used to ship products from the
857 =item fastwayfranchiseecode
859 The Fastway franchisee code for the customer, if any.
863 =head2 [Shop Order Validation]
865 This section can contain extra order validation information, including
866 specifying required fields, display names and extra validation rules.
874 The maximum length of the article title field. Default: 255. Should
875 not be set higher than this unless you change the database schema.
881 Controls the interest.pl script.
887 Email address that is notified of the interest. Defaults to $SHOP_FROM.
899 When a user logs on, and the site url is different to the secure url
900 BSE attempts to refresh to the other "side" of the site to set the
903 BSE does some simple comparisons to attempt to determine whether the
904 logon form was triggered on the secure side of the site (possibly from
905 the shop) or on the insecure side. Since CGI doesn't necessarily give
906 us all the information required, it's possible it will guess wrong.
908 Setting this option to 1 will enable debugging information sent to
909 standard error, which will be sent to the error log on Apache. This
910 probably isn't useful on IIS.
914 Reports errors to STDERR (hence to the error log on Apache) if there
915 is a problem deleting the actual file when an attached file is
918 =item mail_encryption
920 Reports debugging information to standard error while encrypting your
925 Reports cookies received from the browser and sent to the browser to
926 STDERR (hence to the error log on Apache.)
930 If nonzero the session hash is dumped to STDERR after it is retrived
933 =item subscription_expiry
935 If non-zero then subscription expiry date calculations are dumped to
938 =item jit_dynamic_regen
940 If non-zero then information about jit_dynamic_regen is sent to
945 If non-zero then the ifUserCan tag will output some trace information
952 Contains various URIs.
954 This is underused, so don't rely on it yet.
960 The URI to the CGI directory. Default: /cgi-bin
964 The URI where images are kept. Default: /images
974 This will provide translations from symbolic names to article ids.
976 Currently this is used for converting article ids in the access
977 control code, and for looking up the id of the shop.
979 =head2 [printable type]
981 If the user supplies a template name to printable.pl then you can use
982 a different content type by adding an entry to this section. The key
983 is the template name, and the value is the full content type.
985 =head2 [search index scores]
987 This section is used when generating the search index to override the
988 default scores for each field in the articles.
990 The default scores are:
1000 description 0 Products only
1001 product_code 0 Products only
1002 file_displayName 2 displayName for files
1003 file_description 2 description for files
1004 file_notes 1 notes for files
1006 =head2 [article flags]
1008 =head2 [product flags]
1010 =head2 [catalog flags]
1012 Flags that can be set for articles, products and catalogs
1013 respectively. Note that flags for articles are also visible in
1014 products and catalogs.
1016 All flag Ids are single letters or digits. Uppercase letters are
1017 reserved for use by BSE internally, leaving lower-case letters and
1018 digits for your own use.
1020 Use the id of the flag as the key, and a description of the flag as
1023 =head2 [article uris]
1025 Each key is an article id, the values are base URIs to store the HTML
1026 form of those articles and their children under.
1028 =head2 [protect link]
1030 The keys are ids of articles that shouldn't have their link field
1031 overwritten. The value should be a true value, but is otherwise
1040 The recipient for the data dump email sent by datadump.pl. Default:
1045 the From for the data dump email sent by datadump.pl. Default:
1052 Configuration for site users.
1058 If this is set to true then no passwords are required during
1059 registration, a confirmation email is sent immediately upon
1060 registration and that confirmation email contains a link the user can
1061 use to manage their details.
1063 This option has some security concerns since it can leave links to the
1064 user's information in the browser history. This option is not
1067 You cannot use this to control access to the shop.
1073 =item require_address
1079 =item require_postcode
1081 =item require_telephone
1083 =item require_facsimile
1085 =item require_country
1089 =item require_organization
1091 Set these to true to require the corresponding field during
1092 registration, and to keep it required after modification. Default:
1095 If you enable any of these, you should enable C<info_on_register> as
1096 well, or modify the registration template to include the given fields.
1098 =item display_I<field name>
1100 Controls how the given field is displayed in error messages. If you
1101 change the field names on the registration and/or options forms you
1102 should probably change them here too. Default: internal field name
1103 with the first character converted to upper-case.
1105 =item info_on_register
1107 If this is set then the user info is prompted for during user
1108 registration. The information still isn't required unless the
1109 appropriate require_I<field> option is set. Default: false.
1111 =item register_refresh
1113 The default URL to refresh to on completing registration if no r
1114 parameter is supplied.
1118 If this is set then the subcription checkboxes are all checked on
1119 registration by default. Default: false.
1121 The user will only receive the subscriptions if they leave them checked
1122 and follow the link in the confirmation email.
1124 =item subscribe_I<id>
1126 Where I<id> is the number identifying a subscription. If this is set
1127 then the subscription checkbox for that subscription will be checked
1128 by default on the registration form. Default: false.
1130 The user will only receive the subscriptions if they leave it checked
1131 and follow the link in the confirmation email.
1133 You can get the I<id> of a subcription by looking at the Edit link on the
1134 subscriptions management page, the number after "id=" is the id.
1136 =item billing_on_main_opts
1138 If set to zero then user billing options will be managed on a separate
1139 page. This is controlled by the user/options_base.tmpl template.
1143 If set to zero then users cannot register themselves. Default: true,
1144 allowing users to register themselves.
1146 =item notify_register
1148 If true then an email is sent when a new user registers on your site.
1149 The email address sent to is the first set of [site
1150 users].notify_register_email, [shop].from or $SHOP_FROM from
1153 No email is sent if a new user is created from the administration user
1156 See also: notify_register_email, notify_register_subject.
1158 =item notify_register_email
1160 The email to sent the registration notification too. See
1161 notify_register above.
1163 =item notify_register_subject
1165 The subject of the notification email sent when a new user registers.
1166 Any {I<field>} is replaced with the given field from the registered
1167 user. See notify_register above.
1169 Default: New user {userId} registered
1171 =item notify_register_customer
1173 If non-zero then email id C<notify_register_customer> will be sent to
1174 new user on registration. By default this uses template
1175 user/email_register, subject "Thank you for registering" which can be
1176 overridden in [email notify_register_customer]
1180 =head2 [payment type names]
1182 This section and [payment type descs] are used to configure new
1185 The key is the integer representing the payment type. The value is
1186 the name used in tags for checking the payment type.
1188 You can also add a description (currently unused) to [payment type
1191 You should use numbers starting from 10 to avoid conflicts with future
1194 =head2 [payment type descs]
1196 See [payment type names].
1198 =head2 [payment type required]
1200 Set the key given by the payment type id to a value of a
1201 comma-separated list of fields required for that payment type.
1203 =head2 [help style I<style-name>]
1205 This type of configuration section is used to set values for a style
1206 of help icon. Only the C<template> and C<prefix> values are used
1207 directly by the code, the others are used by the default helpicon
1214 The URI to the help files for this style. Default: /help/ in style
1215 "user", /admin/help/ in style "admin".
1219 The template used to produce the icon. Default: helpicon in style
1220 user, admin/helpicon in style "admin".
1224 URI to the help icon image. Default: /images/admin/help.gif
1228 The width of the help icon image. Default: 16
1232 The height of the help icon image. Default: 16
1236 If you just want to change the help icon image for user help icons you
1240 icon=/images/help.gif
1246 =item allowed_referer
1248 A semi-colon (;) separated list of referer domains that are allowed to
1249 link to the C<a_set> target of L<affiliate.pl>.
1251 If the user's browser supplies a referer header then it will be
1252 checked against this list.
1254 =item require_referer
1256 If this is set then the C<a_set> target of L<affiliate.pl> will
1257 require that the user's browser supply a Referer header.
1259 =item default_refresh
1261 If no C<r> parameter is supplied to the C<a_set> target of
1262 L<affiliate.pl> then this is used as the default refresh.
1264 Default: the site base url.
1266 =item subscription_required
1268 This is either the numeric or text of a subscription for which the
1269 affiliate must have an active subscription.
1273 A single letter flag which the site administrator must set for the
1274 affiliate page to be displayed for the given member.
1278 If this is set then affiliate.pl will set the named cookie to the
1283 This is a comma-separated list of other cookies that should be set by
1284 the a_set target. The values for the cookies should be passed to the
1285 a_set target. For example with:
1288 other_cookies=alpha,beta
1292 http://your.site.com/cgi-bin/affiliate.pl?a_set=1&id=someid&alpha=1&beta=2&gamme=3
1294 is accessed, then the cookie alpha is set to "1", beta is set to "2".
1295 The cookie gamma will not be set since it's not listed.
1299 Used as the link base URL for the afflink.tmpl side bar template when
1300 an affiliate id is set. Default: example.com
1304 Used at the text of the link for the afflink.tmpl side bar template
1305 when an affiliate id is set. Default: Your Site.
1309 Used as the link URL for the afflink.tmpl side bar template when an
1310 affiliate id is not set. Default: example.com
1314 Used as the text of the link for the afflink.tmpl side bar template
1315 when an affiliate id is not set. Default: Our site
1319 =head2 [BSE Siteuser Images]
1321 Each key is the id of a member image, with a corresponding [BSE
1322 Siteuser Image I<image_id>] section. The values are ignored.
1324 =head2 [BSE Siteuser Image I<image_id>]
1326 Provides information about a single member image "template".
1332 Short description on the image, like "Logo". Used in error messages.
1336 Longer description of the image. Accessible with the member_image tag.
1346 The minimum and maximum dimensions of the image.
1348 =item widthsmallerror
1350 =item heightsmallerror
1352 =item widthlargeerror
1354 =item heightlargeerror
1356 Error messages displayed in the when the image is outside the
1357 configured dimensions.
1363 Default error messages for the above.
1367 Maximum storage the image can use in bytes. Default: 1000000.
1371 Error message displayed if the image uses too much storage.
1377 Various editor settings.
1383 If this is non-zero the system will attempt to load the configured
1384 thumbnail class, and put thumbnail images on the image manager page
1385 rather than full-size images. Default: off
1389 The name of a perl class that implement's BSE's thumbnail API. At
1390 this point the only class that implements that is BSE::Thumb::Imager,
1391 supplied with BSE. Default: None
1393 =item default_thumbnail
1395 URI to the default thumbnail image. This is presented when the
1396 runtime production of a thumbnail image fails.
1398 =item default_thumbnail_width
1400 =item default_thumbnail_height
1402 Dimensions of the default thumbnail image.
1404 =item default_thumbnail_alt
1406 Alt text for the default thumbnail image.
1408 =item check_modified
1410 If this is true then BSE will check the value of the lastModified
1411 parameter passed against the value in the article. If these don't
1412 match the article isn't saved and is redisplayed with an error
1413 message. This provides simple protection against one user saving
1414 changes over those made by another.
1428 Default values for the thumbimage tag.
1434 Each value is used as the relative or absolute name of a file or
1435 directory to load more configuration data from.
1437 The keywords must remain unique.
1439 Only the [includes] section from bse.cfg itself is used to locate more
1442 If the value references a directory, all files with an extension of
1443 C<.cfg> are read for configuration data.
1445 The order the files are read (which later files overriding older
1456 the entries in [includes] are sorted alphabetically (or rather
1457 asciily), so an entry with key "A" is read before one with key "B",
1458 one with key "01" is read before "02", but key "10" would be read
1463 if an entry is a file then that is read and the values merged.
1467 if an entry is a directory, then that is scanned and the files found
1468 read alphabetically as above.
1474 This is used to configure the error icon displayed next to fields that
1481 URI to the image file.
1487 The width and height of the error icon image.
1491 =head2 [site user flags]
1493 Flags that can be set for site users.
1495 All flag Ids are single letters or digits. Uppercase letters are
1496 reserved for use by BSE internally, leaving lower-case letters and
1497 digits for your own use.
1499 Use the id of the flag as the key, and a description of the flag as
1502 =head2 [article defaults]
1504 =head2 [catalog defaults]
1506 =head2 [product defaults]
1508 These sections contain defaults values for the corresponding article
1511 Each key is the name of a column for the article type.
1513 If an entry is not found in [catalog defaults] then [article defaults]
1516 If an entry is not found in [product defaults] then [article defaults]
1519 These sections are checked B<after> the C<[children of >I<id>C<]> and
1520 C<[level >I<level>C<]> sections.
1522 These defaults are used when creating an article where no value is
1523 supplied, they can also be accessed via the <:default I<name>:> tag.
1525 =head2 [newsletter filters]
1527 Contains C<criteria>I<index> entries starting from C<criteria1>, then
1530 Each entry consists of a filter class name, followed by a ; followed
1531 by data passed to that filter.
1533 ; user the original SQL based filter, configured from
1535 criteria1=BSE::NLFilter::SQL;foo
1537 See the documentation for each filter to configure the filters.
1539 =head2 [Query Groups]
1541 The key of each entry is the numeric identifier of a query group, the
1542 values are the name of the query group. For example:
1547 [query group some name]
1548 sql=select id from site_users where id = ? and name1 like '%some%'
1550 Each entry also has a corresponding [Query Group I<name>] section.
1552 =head2 [query group I<name>]
1554 This section corresponds to an entry in [Query Groups].
1560 This is an SQL statement. One placeholder is required and is passed
1561 the siteuser id (primary key) of the user to be checked. If this
1562 query returns I<any> rows then the user is considered part of the
1567 =head2 [template types]
1569 Each key is a template name, the value is the content type to be used
1570 when displaying the template dynamically.
1574 This section defines CSS class names for BSE's body text link tags.
1575 The key is the tag name, the value is the CSS class to be used.
1577 By default the class used is the same as the name of the tag, but you
1578 can switch this off by adding an entry setting the class to the empty
1579 string, for example:
1581 ; no class attribute for any of the links
1588 You can set p here too to set the class for paragraphs generated as
1589 body text. By default no class is set.
1593 Controls the behaviour of the window displayed by the popimage[] body
1594 text tag. If the Javascript for this has been customized then this
1603 Extra width and height for the window beyond the size of the image.
1604 Default: no extra width or height.
1608 If set to non-zero popimage[] will attempt to centre the popup within
1609 the current window. Default: 0.
1619 This is used to configure the DevHelp::Payments::Inpho module.
1625 If this is set then the test parameters are used instead of the
1630 The URL to process requests through.
1632 Default: https://extranet.inpho.com.au/cc_ssl/process
1636 Inpho supplied user name.
1640 Inpho supplied password.
1644 The URL to process test requests through.
1648 The user to supply to test requests.
1652 The password to supply to test requests.
1658 This section controls whether some custom class methods are called:
1664 If this is non-zero then siteuser_saveopts is called.
1668 =head2 [levelI<level> menus]
1670 Where I<level> is the article level at which the defined menu options will be available.
1671 Configure each menu value and description as I<key> and I<value>.
1682 To create a menus using such values, use the "allkids_of" iterator "filter" option.
1686 <:iterator begin allkids_of -1 filter: [menu] == 2 :>
1690 =head2 [title alias]
1692 Enable the "titleAlias" article field and set which level it will be available.
1698 Where I<level> is the article "level" for which the "titleAlias" field should be enabled. To enable
1699 set the value to non-zero.
1706 The "titleAlias" can be used as an alternate "short" title for the given article, especially useful
1707 for space critical iterated menus. A template conditional can be used to display the "titleAlias"
1708 in place of the article "title" when appropriate.
1712 =head2 [thumb geometries]
1714 Each key represents a geometry identifier for use by the thumbimage[],
1715 gthumbimage[] body text tags and the <:thumbimage ...:>, <:gthumbimage
1716 ...:>, <:dthumbimage ...:> template tags.
1718 The key is the geometry identifier, the value is the geometry string
1721 The geometry string consists of:
1731 crop flag - if present
1739 The dimensions can be in any of the following forms:
1745 <width>x<height> - the desired maximum width and height. eg 200x150
1749 <width>x - the desired width, with the height calculated
1750 proportionally based on the source image size
1754 x<height> - the designed height, with the width calculated
1755 proportionally based on the source image size.
1759 <size> - the desired maximum size in both directions. so "200" is
1760 equivalent to "200x200"
1764 The crop flag is a single letter "c", if present then the image should
1765 be scaled so the smaller dimension matches the requested size, and the
1766 longer dimension will be cropped to fit.
1768 The fill if present is: fill(color) where color is a color recognized
1769 by the underlying graphics implementation. This should be at least
1770 hex web colors without the #, eg fill(FF0000) will fill with red.
1772 =head2 [thumb classes]
1774 Each key represents a geometry identifier for use by the thumbimage[],
1775 gthumbimage[] body text tags and the <:thumbimage ...:>, <:gthumbimage
1776 ...:>, <:dthumbimage ...:> template tags.
1778 The value is used as the class for the generated img tag.
1782 Each value represents a handler or script name for the <:dyntarget
1783 I<script> I<target> ...:> tag.
1785 Each key has a TARGET version and a no-TARGET version, with the key
1786 suffixed with C<_n>.
1788 The default C<nuser> target is C</cgi-bin/nuser.pl/user/TARGET>. The
1789 default no-target C<nuser> is C</cgi-bin/nuser.pl/user>.
1791 For other targets the default is
1792 C</cgi-bin/>I<script>C<.pl?a_TARGET=1> and
1793 C</cgi-bin/>I<script>C<.pl>.
1795 The string C<TARGET> is replaced with the target specified in the
1798 This, along with dyntarget is intended to allow a more "Web 2.0" type
1799 of access to BSE. eg. you might set:
1805 and have a rewrite rule:
1807 RewriteRule ^/xshop/(.*)$ /cgi-bin/nuser.pl/shop/$1 [PT]
1809 =head2 [popimage class I<classname>]
1811 This defines the settings for a class of images generated by the
1812 popimage[] and gpopimage[] body text markup tags. For example, the
1813 settings for C<popimage[imageid|foo]> can be found in section
1814 C<[popimage class foo]>.
1820 The html generated for this class. Tags of the form
1821 C<{>I<identifier>C<}> are replaced, where I<identifier> can be
1822 C<inline_> or C<outline_> followed by an image field name, for example
1823 C<inline_src> is the URL to the inline image.
1825 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>
1827 The default may be tuned as needed.
1831 The inline image geometry. Default: editor (the value used for
1832 thumbnails on the admin side)
1836 The outline image geometry. If no value is supplied then the original
1837 image values are used.
1841 =head2 [mail resources]
1843 Each key is the identifier of a file that can be attached to
1844 BSE::ComposeMail emails. The value is comma separated filename,
1845 content type, inline status.
1847 The files are searched for through the template search mechanism, so
1848 the filename can be relative to either the master or local templates
1851 If the content type is not supplied, if the filename end in gif, png
1852 or jpg the appropriate content type is used, otherwise
1853 application/octet-stream.
1855 If the inline status is not supplied then images are considered
1856 inline, and other files arent.
1858 =head2 [shop registration]
1860 Each key represents a message id from attempts to checkout. Except
1861 the all key which covers all cases.
1863 If the C<all> key or the message id key is non-zero then the checkout
1864 page will redirect to registration instead of login if the cart or
1865 configuration requires that the user be logged in.
1867 =head2 [template I<template-name>]
1869 Settings for articles based on a particular template.
1873 =item no_cache_dynamic
1875 Controls whether a cache-control: no-cache header will be produced.
1876 Can be overridden with the A and B article flags. If not set the
1877 value of [article].no_cache_dynamic is used.
1883 Global settings for articles.
1887 =item no_cache_dynamic
1889 Controls whether a cache-control: no-cache header will be produced.
1890 Can be overridden with the A and B article flags or [template
1891 I<template-name>].no_cache_dynamic. If not set the value of
1892 [basic].no_cache_dynamic is used.
1898 For the <:recaptcha:> tag currently only used for fmail.pl.
1902 =item api_public_key
1904 =item api_private_key
1906 The public and private key you receive when you register with reCAPTCHA.
1908 =item error_I<error_code>
1910 Replace the error message for the given I<error_code> where
1911 I<error_code> is the reCAPTCHA error code
1912 (eg. "incorrect-captcha-sol") with dash replaced by underscore.
1916 error_incorrect_captch_sol=VERY BAD INPUT
1920 =head2 [global file metadata]
1922 Each key represents an item of metadata for files attached to
1925 The values are ignored.
1927 For each key, extra information is defined in the [file metadata
1930 =head2 [file metadata I<name>]
1932 Definition for the file metadata item I<name>.
1938 title - descriptive name of the metadata. Defaults to I<name>.
1942 rules - validation rules, separated by ;. Custom rules can be defined
1943 in [file metadata validation].
1947 ro - if non-zero the metadata cannot be modified directly by the admin
1948 (applications can still generate it). Default: writable.
1952 type - the data type of the metadata, any of string, text, enum,
1953 integer, real, image. If this is enum values must be defined and
1954 labels should be. Default: string.
1962 string - single line of text
1966 text - one or more lines of text
1970 integer - whole number
1974 real - number with decimal points
1978 enum - select from a list of possible values.
1988 values - semi-colon separated list of values for this metadata.
1992 labels - semi-colon separated list of labels for the values
1996 help - help html to display for the metadata
2000 data_name - (images only) the key to use to store the image data.
2001 Default: I<name>_data.
2005 width_name - (images only) the key to use to store the image width.
2006 Default: I<name>_width.
2010 height_name - (images only) the key to use to store the image height.
2011 Default: I<name>_height.
2015 cond - a perl expression indicating whether the metadata should be
2016 prompted for, for this file. $file is the file object. Default: 1.
2020 unit - text displayed after the entry box for the metadata. Default:
2021 empty. Useful for including a unit ("pixels") or format help
2026 =head2 [session cleanup]
2028 Controls the processing of the bse_session_clean.pl script.
2034 days - the minimum age in days of sessions to be removed. Default: 30.
2038 per - the number of records to remove per SQL delete request.
2043 count - the number of SQL delete requests to perform, maximum.
2048 optimize - whether to perform a table optimization after deleting
2049 records. Default: 1 (set to 0 to skip optimization)
2053 =head2 [nightly work]
2055 Controls the bse_nightly.pl script.
2061 jobs - a comma separated list of BSE background processes to run when
2062 bse_nightly.pl is run. Default: bse_session_clean
2068 Tony Cook <tony@develop-help.com>