forked from github/Quit.mwForum
1722 lines
49 KiB
Perl
1722 lines
49 KiB
Perl
#-----------------------------------------------------------------------------
|
|
# mwForum - Web-based discussion forum
|
|
# Copyright (c) 1999-2015 Markus Wichitill
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#-----------------------------------------------------------------------------
|
|
|
|
package MwfDefaults;
|
|
use strict;
|
|
use warnings;
|
|
our $VERSION = "2.29.4";
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Configuration option defaults. Don't change.
|
|
|
|
our $options = [
|
|
{
|
|
section => "Email Options",
|
|
id => "email",
|
|
},
|
|
{
|
|
name => 'mailer',
|
|
type => 'radio',
|
|
title => "Email transport",
|
|
help => "See FAQ.html for SMTP authentication and SSL/TLS details.",
|
|
radio => [
|
|
SMTP => "Use SMTP server via MwfSendmail",
|
|
SMTP2 => "Use SMTP server via Net::SMTP (authentication and SSL supported)",
|
|
ESMTP => "Use SMTP server via Mail::Sender (authentication and SSL supported)",
|
|
sendmail => "Use sendmail command (path and options can be set in MwfConfig.pm)",
|
|
mail => "Use mail command (that parses headers from mail)",
|
|
mailx => "Use mailx command (lacks sender and MIME headers)",
|
|
],
|
|
default => "SMTP",
|
|
},
|
|
{
|
|
name => 'forumEmail',
|
|
type => 'text',
|
|
title => "Sender address of emails sent by forum software",
|
|
help => "Should be a valid address, even if nobody reads the received emails.",
|
|
example => [ "noreply\@example.com" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'smtpServer',
|
|
type => 'text',
|
|
title => "SMTP email server host",
|
|
help => "Only used with SMTP.",
|
|
example => [ "localhost", "mail.example.com" ],
|
|
default => "localhost",
|
|
},
|
|
{
|
|
name => 'esmtpUser',
|
|
type => 'text',
|
|
title => "SMTP authentication user",
|
|
help => "Only used with Net::SMTP and Mail::Sender when authentication is required. See FAQ.html for details.",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'esmtpPassword',
|
|
type => 'text',
|
|
title => "SMTP authentication password",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'subsInstant',
|
|
type => 'checkbox',
|
|
title => "Enable instant subscriptions of boards and topics?",
|
|
help => "Instant subscription emails are sent out by a forked process when a post gets submitted. Requires the <var>\$cfg->{scriptFsPath}</var> and <var>\$cfg->{perlBinary}</var> options to be set up.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'subsDigest',
|
|
type => 'checkbox',
|
|
title => "Enable digest subscriptions of boards and topics?",
|
|
help => "Digest subscription emails are sent out by the cron_subscriptions.pl cronjob, which must be set up to execute regularly (typically daily).",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Global Display Options",
|
|
id => "globaldisp",
|
|
},
|
|
{
|
|
name => 'forumName',
|
|
type => 'text',
|
|
title => "Name of forum",
|
|
help => "Try to keep this short.",
|
|
default => "Nameless Forum",
|
|
},
|
|
{
|
|
name => 'homeUrl',
|
|
type => 'text',
|
|
title => "URL of your homepage",
|
|
help => "Leave empty to disable display of home link.",
|
|
example => [ "http://www.example.com/" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'homeTitle',
|
|
type => 'text',
|
|
title => "Displayed title of homepage link",
|
|
default => "Home",
|
|
},
|
|
{
|
|
name => 'titleImage',
|
|
type => 'text',
|
|
title => "Title image filename",
|
|
help => "Image file needs to be placed in data directory. It's recommended to leave this empty, as vertical screen space is precious.",
|
|
example => [ "title.png" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'timeFormat',
|
|
type => 'text',
|
|
title => "Time format",
|
|
help => "Parameters: %Y=year %m=month %d=day %H=hour %M=minute. For more parameters, see FAQ.html. The example is the ISO time format, recommended for international forums.",
|
|
example => [ "%Y-%m-%d %H:%M" ],
|
|
default => "%Y-%m-%d %H:%M",
|
|
},
|
|
{
|
|
name => 'languages',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Installed language modules",
|
|
help => "One Language=Module pair per line. Don't delete the MwfEnglish.pm file, even if you don't enable it here.",
|
|
example => [ "English=MwfEnglish" ],
|
|
default => { English => "MwfEnglish", German => "MwfGerman" },
|
|
},
|
|
{
|
|
name => 'languageCodes',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Language code to language name mapping ",
|
|
help => "One code=Language pair per line. Code must be in lowercase. Used for automatic language selection by HTTP <a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4'>Accept-Language</a> header for new users and guests.",
|
|
example => [ "en=English" ],
|
|
default => { en => "English", de => "German" },
|
|
},
|
|
{
|
|
name => 'styles',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Installed CSS styles",
|
|
help => "One Name=identifier pair per line. The name is what is displayed to users on their options pages, the identifier is used as the name of a subdirectory in the data directory and the name without extension of the CSS file. It is recommended to not remove the bundled Default2 style even if you add other styles and/or make another style the default for users.",
|
|
example => [ "Default2=default2" ],
|
|
default => { Default2 => "default2" },
|
|
},
|
|
{
|
|
name => 'styleOptions',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Options for installed styles",
|
|
help => "See FAQ.html for details.",
|
|
example => [ "Default2=buttonIcons=\"1\"" ],
|
|
default => { Default2 => "buttonIcons=\"1\"" },
|
|
},
|
|
{
|
|
name => 'styleSnippets',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "CSS style snippets",
|
|
help => "See FAQ.html for details.",
|
|
example => [ "styAvaLft=div.pst img.ava { float: left; margin: 0 5px 0 0; }" ],
|
|
default => {},
|
|
},
|
|
{
|
|
name => 'forumStyle',
|
|
type => 'text',
|
|
title => "Additional CSS file to include",
|
|
help => "File goes into the data directory and is always included as the last stylesheet.",
|
|
example => [ "forum.css" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'boardJumpList',
|
|
type => 'checkbox',
|
|
title => "Show go-to-board dropdown list?",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Forum Page Display Options",
|
|
id => "forumdisp",
|
|
},
|
|
{
|
|
name => 'showOnlUsers',
|
|
type => 'radio',
|
|
title => "Show online users?",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, show to registered users only",
|
|
2 => "Yes, show to everybody",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'showNewUsers',
|
|
type => 'radio',
|
|
title => "Show newest users?",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, show to registered users only",
|
|
2 => "Yes, show to everybody",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'showBdayUsers',
|
|
type => 'radio',
|
|
title => "Show users that have their birthday today?",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, show to registered users only",
|
|
2 => "Yes, show to everybody",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Board Page Display Options",
|
|
id => "boarddisp",
|
|
},
|
|
{
|
|
name => 'boardPageDesc',
|
|
type => 'checkbox',
|
|
title => "Show board's long description on board page?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'allowTopicTags',
|
|
type => 'radio',
|
|
title => "Enable topic tags?",
|
|
help => "Only admins and moderators can tag other users' topics.",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, enable tagging for admins and moderators",
|
|
2 => "Yes, enable tagging for every topic poster",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'topicTags',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Topic tags",
|
|
help => "See FAQ.html for details.",
|
|
example => [ "hot=topic_hot.png Hot" ],
|
|
default => {},
|
|
},
|
|
{
|
|
name => 'maxTopicsPP',
|
|
type => 'number',
|
|
title => "Max. number of topics per board page",
|
|
default => 100,
|
|
},
|
|
{
|
|
name => 'skipStickySort',
|
|
type => 'checkbox',
|
|
title => "Disable topic sorting by stickyness?",
|
|
help => "Disable for better board page performance in forums with thousands of topics, especially with InnoDB or PostgreSQL. Sticky topics won't be at the top anymore, but they're still in bold.",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Topic Page Display Options",
|
|
id => "topicdisp",
|
|
},
|
|
{
|
|
name => 'showPostIp',
|
|
type => 'checkbox',
|
|
title => "Show IP addresses of posts to admins and moderators?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'maxPostsPP',
|
|
type => 'number',
|
|
title => "Max. number of posts per topic page",
|
|
help => "Allowing too many posts per page would be wasteful.",
|
|
default => 100,
|
|
},
|
|
{
|
|
section => "Forum Info Display Options",
|
|
id => "foruminfo",
|
|
},
|
|
{
|
|
name => 'statUserAgent',
|
|
type => 'checkbox',
|
|
title => "Enable user agent statistics page for everybody?",
|
|
help => "Uses the <a href='https://developers.google.com/chart/'>Google Chart API</a> (<a href='https://developers.google.com/chart/terms'>Terms of Use</a>) to generate pie charts by default. See <var>uaGraphType</var> in FAQ.html for alternatives.",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'statUserCntry',
|
|
type => 'checkbox',
|
|
title => "Enable user country statistics page for everybody?",
|
|
help => "Uses the <a href='https://developers.google.com/chart/'>Google Chart API</a> (<a href='https://developers.google.com/chart/terms'>Terms of Use</a>) to generate map image. Requires GeoIP, see FAQ.html for details.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'statForumActiv',
|
|
type => 'checkbox',
|
|
title => "Enable forum and user activity statistics pages for everybody?",
|
|
help => "Can be rather slow in big forums.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'adminEmail',
|
|
type => 'text',
|
|
title => "Main administrator's email address",
|
|
help => "Only displayed on the forum info page. Can be obfuscated or empty if you don't want spambots to collect the address.",
|
|
example => [ "webmaster\@example.com", "webmaster at example company" ],
|
|
default => "",
|
|
},
|
|
{
|
|
section => "User Display Options",
|
|
id => "userdisp",
|
|
},
|
|
{
|
|
name => 'userInfoReg',
|
|
type => 'checkbox',
|
|
title => "Only show user info pages to registered users?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'allowUnregName',
|
|
type => 'checkbox',
|
|
title => "Allow unregistered guests to specify a username while posting?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'anonName',
|
|
type => 'text',
|
|
title => "String to display as username for posts by unregistered guests",
|
|
example => [ "Anonymous Coward" ],
|
|
default => "?",
|
|
},
|
|
{
|
|
name => 'userTitles',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "User titles",
|
|
help => "See FAQ.html for details.",
|
|
example => [ "Admin", "Moderator" ],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'userRanks',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "User ranks",
|
|
help => "See FAQ.html for details.",
|
|
example => [ "1000 stars4.png ****", "500 stars3.png ***" ],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'badges',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "User badges",
|
|
help => "See FAQ.html for details.",
|
|
example => [
|
|
"linux user linux.png linux_big.png \"Linux\" \"User uses a Linux distribution.\"",
|
|
"gold admin gold.png gold_big.png \"Gold Star\" \"User has been awarded the Gold Star.\"",
|
|
],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'geoIp',
|
|
type => 'text',
|
|
title => "Path of GeoIP data file",
|
|
help => "Set to filesystem path of GeoIP.dat or GeoLiteCity.dat file used by optional features. See FAQ.html for details.",
|
|
example => [ "/usr/local/share/GeoIP/GeoIP.dat" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'userFlags',
|
|
type => 'checkbox',
|
|
title => "Enable country flags?",
|
|
help => "Shown on user info and topic pages. Requires GeoIP, see FAQ.html for details.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'userInfoMap',
|
|
type => 'checkbox',
|
|
title => "Enable Google Maps on user info pages?",
|
|
help => "Shows the user's location based on Location field or GeoIP data. See FAQ.html for details.",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Registration and Login Options",
|
|
id => "login",
|
|
},
|
|
{
|
|
name => 'noEmailReq',
|
|
type => 'checkbox',
|
|
title => "Disable email address input and verification during user registration?",
|
|
help => "Due to all the spam out there, forum emails will often get delayed or end up in spam folders.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'adminUserReg',
|
|
type => 'checkbox',
|
|
title => "Hide user registration page and allow registration only by admins?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'tempLogin',
|
|
type => 'checkbox',
|
|
title => "Have login remember-me checkbox unchecked by default?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'policyTitle',
|
|
type => 'text',
|
|
title => "Forum policy title",
|
|
example => [ "Terms of Service and Privacy Policy" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'policy',
|
|
type => 'textarea',
|
|
title => "Forum policy",
|
|
help => "Can contain terms of service, privacy policy, etc. This text is sent in registration emails, displayed on the forum info page and can be made a mandatory click-through agreement. Don't use HTML.",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'policyVersion',
|
|
type => 'number',
|
|
title => "Forum policy version",
|
|
help => "A number > 0 forces users to accept the policy before using the forum while logged in. Increase number when policy changes to force re-acceptance.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'openId',
|
|
type => 'radio',
|
|
title => "Enable OpenID login?",
|
|
help => "See FAQ.html for details.",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes",
|
|
2 => "Yes, and disable normal registrations and logins",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'openIdServers',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Accepted OpenID identity providers",
|
|
help => "Leave empty to allow all providers.",
|
|
example => [ "http://www.myopenid.com/", "http://www.livejournal.com/" ],
|
|
default => [],
|
|
},
|
|
{
|
|
section => "Avatar Options",
|
|
id => "avatar",
|
|
},
|
|
{
|
|
name => 'avatars',
|
|
type => 'checkbox',
|
|
title => "Enable avatar images?",
|
|
help => "See FAQ.html for details before enabling.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'avatarUpload',
|
|
type => 'checkbox',
|
|
title => "Enable avatar upload?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'avatarGallery',
|
|
type => 'checkbox',
|
|
title => "Enable avatar gallery?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'avatarGravatar',
|
|
type => 'checkbox',
|
|
title => "Enable Gravatar service?",
|
|
help => "See <a href='http://en.gravatar.com/'>gravatar.com</a>. Only use with square dimensions configured below.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'avatarResize',
|
|
type => 'checkbox',
|
|
title => "Automatically resize uploaded avatars that don't conform to restrictions?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'avatarMaxSize',
|
|
type => 'number',
|
|
title => "Max. filesize of uploaded avatars in bytes",
|
|
help => "Only applies when automatic resizing isn't available.",
|
|
default => 6144,
|
|
},
|
|
{
|
|
name => 'avatarWidth',
|
|
type => 'number',
|
|
title => "Width of avatars in pixels",
|
|
default => 50,
|
|
},
|
|
{
|
|
name => 'avatarHeight',
|
|
type => 'number',
|
|
title => "Height of avatars in pixels",
|
|
default => 50,
|
|
},
|
|
{
|
|
section => "Quoting Options",
|
|
id => "quote",
|
|
},
|
|
{
|
|
name => 'quote',
|
|
type => 'radio',
|
|
title => "Enable auto-quoting of posts and messages in replies?",
|
|
help => "Auto-quoting will often turn topics into deserts consisting of mostly quotes and very little new text, while eating lots of precious RAM. NOT recommended, just use manual copy&paste quoting instead. See FAQ.html for details.",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, in non-threaded topics",
|
|
2 => "Yes, in threaded topics, too (doesn't work well because of the often narrow posts)",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'quotePrefix',
|
|
type => 'checkbox',
|
|
title => "Prefix 'username:' to quotes?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'quoteCols',
|
|
type => 'number',
|
|
title => "Width of quoted text in characters",
|
|
default => 60,
|
|
},
|
|
{
|
|
section => "Markup Options",
|
|
id => "markup",
|
|
},
|
|
{
|
|
name => 'rawBody',
|
|
type => 'checkbox',
|
|
title => "Enable a separate raw post body?",
|
|
help => "Used for source code etc. that shouldn't go through normal text processing.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'fullSigs',
|
|
type => 'checkbox',
|
|
title => "Allow full signatures with markup and no size limit?",
|
|
help => "Otherwise only classic signatures with max. 100 characters on two lines are allowed.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'imgTag',
|
|
type => 'checkbox',
|
|
title => "Enable image embedding tag?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'videoTag',
|
|
type => 'checkbox',
|
|
title => "Enable video embedding tag?",
|
|
help => "Warning: letting users embed videos can make you liable for copyright infringement.",
|
|
example => [
|
|
"[vid=youtube]KmcPeuf5aXo[/vid]",
|
|
"[vid=vimeo]2772480[/vid]",
|
|
"[vid=html]http://example.org/test.webm[/vid]",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'openUrlNewTab',
|
|
type => 'checkbox',
|
|
title => "Open user-posted links in new tabs/windows?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'tagButtons',
|
|
type => 'radio',
|
|
title => "Show tag insert buttons?",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, show buttons for [tags]",
|
|
2 => "Yes, show buttons for [tags] and :tags:",
|
|
],
|
|
default => 2,
|
|
},
|
|
{
|
|
name => 'tags',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Replace :tags: in colons with text or HTML",
|
|
help => "One tag=value pair per line. If a value starts with \"?\", no insertion button will be shown for that tag. If it starts with \"!\", it will not be replaced for users with the show-decoration user option disabled. \"[[dataPath]]\" will be replaced with the configured data path value.",
|
|
example => [
|
|
"readfaq=?<img src='/img/readfaq.png' alt='Read the FAQ'>",
|
|
"eek=<img class='fsm fsm_eek' src='[[dataPath]]/epx.png' title='eek' alt=':eek:'>"
|
|
],
|
|
default => {
|
|
confused => "<img class='fsm fsm_confused' src='[[dataPath]]/epx.png' title='confused' alt=':confused:'>",
|
|
cool => "<img class='fsm fsm_cool' src='[[dataPath]]/epx.png' title='cool' alt=':cool:'>",
|
|
cry => "<img class='fsm fsm_cry' src='[[dataPath]]/epx.png' title='cry' alt=':cry:'>",
|
|
eek => "<img class='fsm fsm_eek' src='[[dataPath]]/epx.png' title='eek' alt=':eek:'>",
|
|
evil => "<img class='fsm fsm_evil' src='[[dataPath]]/epx.png' title='evil' alt=':evil:'>",
|
|
fat => "<img class='fsm fsm_fat' src='[[dataPath]]/epx.png' title='fat' alt=':fat:'>",
|
|
grin => "<img class='fsm fsm_grin' src='[[dataPath]]/epx.png' title='grin' alt=':grin:'>",
|
|
lol => "<img class='fsm fsm_lol' src='[[dataPath]]/epx.png' title='lol' alt=':lol:'>",
|
|
mad => "<img class='fsm fsm_mad' src='[[dataPath]]/epx.png' title='mad' alt=':mad:'>",
|
|
neutral => "<img class='fsm fsm_neutral' src='[[dataPath]]/epx.png' title='neutral' alt=':neutral:'>",
|
|
razz => "<img class='fsm fsm_razz' src='[[dataPath]]/epx.png' title='razz' alt=':razz:'>",
|
|
red => "<img class='fsm fsm_red' src='[[dataPath]]/epx.png' title='red' alt=':red:'>",
|
|
roll => "<img class='fsm fsm_roll' src='[[dataPath]]/epx.png' title='roll' alt=':roll:'>",
|
|
sad => "<img class='fsm fsm_sad' src='[[dataPath]]/epx.png' title='sad' alt=':sad:'>",
|
|
slim => "<img class='fsm fsm_slim' src='[[dataPath]]/epx.png' title='slim' alt=':slim:'>",
|
|
smile => "<img class='fsm fsm_smile' src='[[dataPath]]/epx.png' title='smile' alt=':smile:'>",
|
|
surprised => "<img class='fsm fsm_surprised' src='[[dataPath]]/epx.png' title='surprised' alt=':surprised:'>",
|
|
twisted => "<img class='fsm fsm_twisted' src='[[dataPath]]/epx.png' title='twisted' alt=':twisted:'>",
|
|
wink => "<img class='fsm fsm_wink' src='[[dataPath]]/epx.png' title='wink' alt=':wink:'>",
|
|
yell => "<img class='fsm fsm_yell' src='[[dataPath]]/epx.png' title='yell' alt=':yell:'>",
|
|
},
|
|
},
|
|
{
|
|
name => 'customStyles',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Styles for the custom style tag",
|
|
help => "One name=css pair per line. See FAQ.html for details.",
|
|
example => [
|
|
"strk=text-decoration: line-through;",
|
|
"mark=font-weight: bold; background-color: yellow",
|
|
],
|
|
default => {},
|
|
},
|
|
{
|
|
name => 'cstButtons',
|
|
type => 'radio',
|
|
title => "Show tag insert button(s) for custom styles?",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, show one generic [c=][/c] button",
|
|
2 => "Yes, show buttons for all custom styles",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'textSnippets',
|
|
type => 'textarea',
|
|
title => "Text snippets that can be inserted into posts",
|
|
help => "See FAQ.html for details.",
|
|
default => "",
|
|
},
|
|
{
|
|
section => "Attachment Options",
|
|
id => "attach",
|
|
},
|
|
{
|
|
name => 'attachments',
|
|
type => 'checkbox',
|
|
title => "Enable file attachments?",
|
|
help => "See FAQ.html for details before enabling.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'attachUrlPath',
|
|
type => 'text',
|
|
title => "URL path of attachments",
|
|
help => "No trailing slash. Should not be a subpath of the script path, or HTML attachments will be able to steal login cookies. Can also include a separate domain for more security.",
|
|
example => [ "/mwf/attach", "http://attach.example.org/mwf" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'attachList',
|
|
type => 'radio',
|
|
title => "Enable the attachment list page?",
|
|
radio => [
|
|
0 => "No",
|
|
3 => "Yes, visible for admins only",
|
|
2 => "Yes, visible for registered users only",
|
|
1 => "Yes, visible for everybody",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'attachImg',
|
|
type => 'checkbox',
|
|
title => "Enable embedded display of attached images?",
|
|
help => "Embedded images will use up a whole lot more bandwidth than non-embedded images.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'attachImgThb',
|
|
type => 'checkbox',
|
|
title => "Show embedded attached images that exceed certain limits as thumbnails?",
|
|
help => "Requires either GD, Imager, Graphics::Magick or Image::Magick Perl modules. Default limits are 150x150 pixels and 15kB.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'attachImgRsz',
|
|
type => 'checkbox',
|
|
title => "Resize all attached images that exceed certain limits?",
|
|
help => "Requires either GD, Imager, Graphics::Magick or Image::Magick Perl modules. Default limits are 1280x1024 pixels and 150kB.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'attachGallery',
|
|
type => 'checkbox',
|
|
title => "Enable image gallery mode of attachment list?",
|
|
help => "Requires either GD, Imager, Graphics::Magick or Image::Magick Perl modules.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'attachBlockExt',
|
|
type => 'text',
|
|
title => "Disallowed file extensions",
|
|
help => "Can be used if you provider's webserver executes scripts everywhere based on file extension, and if you can't change that.",
|
|
example => [ "cgi|pl|py|rb|php|php4|php5|phtml" ],
|
|
default => "cgi|pl|py|rb|php|php4|php5|phtml",
|
|
},
|
|
{
|
|
name => 'fsEncoding',
|
|
type => 'text',
|
|
title => "Encoding of the filesystem as seen by Perl",
|
|
help => "Non-ASCII characters in filenames may cause all sorts of trouble, it's safest to leave this at 'ascii'.",
|
|
example => [ "iso-8859-1", "utf-8" ],
|
|
default => "ascii",
|
|
},
|
|
{
|
|
section => "Chat Options",
|
|
id => "chat",
|
|
},
|
|
{
|
|
name => 'chat',
|
|
type => 'radio',
|
|
title => "Enable chat page?",
|
|
radio => [
|
|
0 => "No",
|
|
2 => "Yes, visible for registered users only",
|
|
1 => "Yes, visible for everybody",
|
|
],
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'chatMaxLength',
|
|
type => 'number',
|
|
title => "Max. chat message length",
|
|
default => 400,
|
|
},
|
|
{
|
|
name => 'chatMaxMsgs',
|
|
type => 'number',
|
|
title => "Max. number of chat messages displayed",
|
|
default => 25,
|
|
},
|
|
{
|
|
name => 'chatMaxAge',
|
|
type => 'number',
|
|
title => "Expire old chat messages after x days",
|
|
default => 1,
|
|
},
|
|
{
|
|
section => "Cronjob Options",
|
|
id => "cron",
|
|
},
|
|
{
|
|
name => 'cronEmu',
|
|
type => 'checkbox',
|
|
title => "Enable cron emulation?",
|
|
help => "Starts the main cronjob on the first page request of every day. Requires the <var>\$cfg->{scriptFsPath}</var> and <var>\$cfg->{perlBinary}</var> options to be set up.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'scriptUrlPath',
|
|
type => 'text',
|
|
title => "URL path to script directory",
|
|
help => "No trailing slash. Cronjobs need to get the path from this option, since they can't get it from the webserver.",
|
|
example => [ "/cgi-bin/mwf" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'acctExpiration',
|
|
type => 'number',
|
|
title => "Expire user accounts that have never been used after x days",
|
|
help => "0 = never",
|
|
default => 7,
|
|
},
|
|
{
|
|
name => 'userExpiration',
|
|
type => 'number',
|
|
title => "Expire user accounts after x days of absence",
|
|
help => "0 = never",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'noUserPostsExp',
|
|
type => 'checkbox',
|
|
title => "But never expire user accounts with existing posts?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'userDataExp',
|
|
type => 'number',
|
|
title => "Expire non-vital user data after x days of absence",
|
|
help => "Subscriptions, ignore/watch entries, birthdays, additional variables (incl. style snippet options). 0 = never",
|
|
default => 365,
|
|
},
|
|
{
|
|
name => 'ipExpiration',
|
|
type => 'number',
|
|
title => "Wipe IP addresses stored in user and post entries after x days",
|
|
help => "0 = never. Might be necessary for legal reasons. Also see <var>recordIp</var> option.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'logExpiration',
|
|
type => 'number',
|
|
title => "Expire log entries after x days",
|
|
help => "0 = never. Might be necessary for legal reasons.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'msgExpiration',
|
|
type => 'number',
|
|
title => "Expire private messages after x days",
|
|
help => "0 = never",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'hugeTpcLocking',
|
|
type => 'number',
|
|
title => "Lock topics with more than x posts",
|
|
help => "0 = don't. Huge topics drain a lot of performance and RAM due to their threaded nature.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'pollLockTime',
|
|
type => 'number',
|
|
title => "Close polls x days after topic creation",
|
|
help => "0 = never",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'pollLocking',
|
|
type => 'checkbox',
|
|
title => "Close polls in locked topics?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'archiveExpired',
|
|
type => 'checkbox',
|
|
title => "Move expired topics to archive instead of deleting them?",
|
|
help => "See FAQ.html for details.",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Default User Options",
|
|
id => "user",
|
|
},
|
|
{
|
|
name => 'privacy',
|
|
type => 'checkbox',
|
|
title => "Hide online status and GeoIP info?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'notify',
|
|
type => 'checkbox',
|
|
title => "Receive notifications of replies to posts?",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'msgNotify',
|
|
type => 'checkbox',
|
|
title => "Receive post reply and message notifications by email, too?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'userTimezone',
|
|
type => 'text',
|
|
title => "Timezone",
|
|
help => "Number relative to GMT from -14 to +14 in .5 increments, or SVR for server time.",
|
|
default => "0",
|
|
},
|
|
{
|
|
name => 'language',
|
|
type => 'text',
|
|
title => "User interface language",
|
|
example => [ "English" ],
|
|
default => "English",
|
|
},
|
|
{
|
|
name => 'style',
|
|
type => 'text',
|
|
title => "CSS style",
|
|
example => [ "Default2" ],
|
|
help => "This should be a style that is more or less compatible with all browsers in common use, such as the bundled Default2 style.",
|
|
default => "Default2",
|
|
},
|
|
{
|
|
name => 'fontFace',
|
|
type => 'text',
|
|
title => "Font face",
|
|
example => [ "Verdana" ],
|
|
default => "Verdana",
|
|
},
|
|
{
|
|
name => 'fontSize',
|
|
type => 'number',
|
|
title => "Font size in pixels",
|
|
help => "0 = use browser's default size.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'boardDescs',
|
|
type => 'checkbox',
|
|
title => "Show board descriptions?",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'showDeco',
|
|
type => 'checkbox',
|
|
title => "Show decorations like user titles, ranks, smileys and topic tags?",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'showAvatars',
|
|
type => 'checkbox',
|
|
title => "Show avatars?",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'showImages',
|
|
type => 'checkbox',
|
|
title => "Show embedded images?",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'showSigs',
|
|
type => 'checkbox',
|
|
title => "Show signatures?",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'collapse',
|
|
type => 'checkbox',
|
|
title => "Auto-collapse topic branches without new/unread posts?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'indent',
|
|
type => 'number',
|
|
title => "Threading indent in percent",
|
|
default => 3,
|
|
},
|
|
{
|
|
name => 'topicsPP',
|
|
type => 'number',
|
|
title => "Topics per board page",
|
|
default => 25,
|
|
},
|
|
{
|
|
name => 'postsPP',
|
|
type => 'number',
|
|
title => "Posts per topic page",
|
|
default => 50,
|
|
},
|
|
{
|
|
name => 'renamesLeft',
|
|
type => 'number',
|
|
title => "Number of times users can rename themselves",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Custom User Profile Options",
|
|
id => "profile",
|
|
},
|
|
{
|
|
name => 'extra1',
|
|
type => 'text',
|
|
title => "Short custom field 1 label on user info page",
|
|
help => "Leave empty to not use custom field.",
|
|
example => [ "Reg. Name", "Reg. Code" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'extra2',
|
|
type => 'text',
|
|
title => "Short custom field 2 label on user info page",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'extra3',
|
|
type => 'text',
|
|
title => "Short custom field 3 label on user info page",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'longExtra1',
|
|
type => 'text',
|
|
title => "Long custom field 1 label on user profile and registration pages",
|
|
example => [ "Shareware registration name", "Shareware registration code" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'longExtra2',
|
|
type => 'text',
|
|
title => "Long custom field 2 label on user profile and registration pages",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'longExtra3',
|
|
type => 'text',
|
|
title => "Long custom field 3 label on user profile and registration pages",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'showExtra1',
|
|
type => 'checkbox',
|
|
title => "Show custom field 1 on user info page to everybody?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'showExtra2',
|
|
type => 'checkbox',
|
|
title => "Show custom field 2 on user info page to everybody?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'showExtra3',
|
|
type => 'checkbox',
|
|
title => "Show custom field 3 on user info page to everybody?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'regExtra1',
|
|
type => 'radio',
|
|
title => "Show editable custom field 1 on which page?",
|
|
radio => [
|
|
0 => "Only on user profile page",
|
|
1 => "On both pages",
|
|
2 => "Only on registration page",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'regExtra2',
|
|
type => 'radio',
|
|
title => "Show editable custom field 2 on which page?",
|
|
radio => [
|
|
0 => "Only on user profile page",
|
|
1 => "On both pages",
|
|
2 => "Only on registration page",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'regExtra3',
|
|
type => 'radio',
|
|
title => "Show editable custom field 3 on which page?",
|
|
radio => [
|
|
0 => "Only on user profile page",
|
|
1 => "On both pages",
|
|
2 => "Only on registration page",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Bounced Email Options",
|
|
id => "bounce",
|
|
},
|
|
{
|
|
name => 'bounceTrshWarn',
|
|
type => 'number',
|
|
title => "Add a notification message for user if he has at least x bounces",
|
|
help => "0 = never. See FAQ.html for details about bounced email handling.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'bounceTrshCncl',
|
|
type => 'number',
|
|
title => "Cancel subscriptions/notifications if user has x bounces",
|
|
help => "0 = never",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'bounceTrshDsbl',
|
|
type => 'number',
|
|
title => "Disable all email to user if user has x bounces",
|
|
help => "0 = never",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'bouncePopHost',
|
|
type => 'text',
|
|
title => "POP3 host",
|
|
default => "localhost",
|
|
},
|
|
{
|
|
name => 'bouncePopUser',
|
|
type => 'text',
|
|
title => "POP3 username",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'bouncePopPwd',
|
|
type => 'text',
|
|
title => "POP3 password",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'bouncePopSsl',
|
|
type => 'checkbox',
|
|
title => "Enable POP3 via SSL/TLS",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Feed Options",
|
|
id => "feed",
|
|
},
|
|
{
|
|
name => 'rssLink',
|
|
type => 'checkbox',
|
|
title => "Enable link to feeds page?",
|
|
help => "Only enable if feeds and their cronjob have been set up. See FAQ.html for details.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'rssDiscovery',
|
|
type => 'checkbox',
|
|
title => "Enable feed autodiscovery?",
|
|
help => "This adds the HTML headers that make the feed icons in browsers' address bars appear. Not enabled by default as a few stupid browser addons always fetch all linked feeds on every page request.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'rssItems',
|
|
type => 'number',
|
|
title => "Number of posts in feeds",
|
|
default => 15,
|
|
},
|
|
{
|
|
name => 'rssDesc',
|
|
type => 'text',
|
|
title => "Feed description",
|
|
default => "Latest forum posts",
|
|
},
|
|
{
|
|
name => 'rssExclude',
|
|
type => 'text',
|
|
title => "Comma-separated list of board IDs to exclude from global feed",
|
|
help => "Use for test and unimportant boards etc.",
|
|
example => [ "3,5,7" ],
|
|
default => "",
|
|
},
|
|
{
|
|
section => "Cookie Options",
|
|
id => "cookie",
|
|
},
|
|
{
|
|
name => 'cookiePrefix',
|
|
type => 'text',
|
|
title => "Cookie prefix string used for unique cookie names",
|
|
help => "Only needs to be modified if you are using multiple forums where one script path is a substring of another (e.g. /cgi-bin/mwf and /cgi-bin/mwf2) or when you change the cookie domain and/or path.",
|
|
example => [ "mwf_" ],
|
|
default => "mwf_",
|
|
},
|
|
{
|
|
name => 'cookieDomain',
|
|
type => 'text',
|
|
title => "Cookie domain override",
|
|
help => "If your site is available at http://example.com and http://www.example.com then set cookieDomain to 'example.com' to allow login cookies to work with either hostname. If you change this in an established forum, also change the cookie prefix string.",
|
|
example => [ "example.com" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'cookiePath',
|
|
type => 'text',
|
|
title => "Cookie path override",
|
|
help => "The attachment URL path must never be a subpath of the cookie path or HTML attachments will be able to steal login cookies. If you change this in an established forum, also change the cookie prefix string.",
|
|
example => [ "/" ],
|
|
default => "",
|
|
},
|
|
{
|
|
section => "Search Options",
|
|
id => "search",
|
|
},
|
|
{
|
|
name => 'forumSearch',
|
|
type => 'radio',
|
|
title => "Enable forum search feature?",
|
|
help => "Search is an important feature, but can sometimes overtax a busy server.",
|
|
radio => [
|
|
0 => "No",
|
|
2 => "Yes, enable for registered users",
|
|
1 => "Yes, enable for everybody",
|
|
],
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'advSearch',
|
|
type => 'checkbox',
|
|
title => "Enable indexed fulltext search for MySQL or PostgreSQL?",
|
|
help => "See FAQ.html for details.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'blockExtSearch',
|
|
type => 'checkbox',
|
|
title => "Block forum searches not coming from the built-in search form?",
|
|
help => "If URLs like \"forum_search.pl?words=blah\" get posted somewhere and lots of people and bots visit them, executing the search every time, it can cause a lot of work for the server. Can't block external searches through POST forms and links including page numbers.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'sqliteLike',
|
|
type => 'checkbox',
|
|
title => "Use custom LIKE function for SQLite?",
|
|
help => "Makes forum search case-insensitive for non-ASCII characters, but lowers search performance.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'searchMaxAge',
|
|
type => 'number',
|
|
title => "Max. age of searched posts",
|
|
help => "Improve searching performance in big forums by limiting the age of searched posts to x days. 0 = no limit.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'googleSearch',
|
|
type => 'checkbox',
|
|
title => "Enable Google forum search?",
|
|
help => "Can be enabled for everybody instead of or in addition to the built-in forum search feature. Also see SEO topic in FAQ.html.",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Restriction Options",
|
|
id => "restrict",
|
|
},
|
|
{
|
|
name => 'locked',
|
|
type => 'text',
|
|
title => 'Lock forum',
|
|
help => "Set to a notice text displayed to users to lock forum (except for admins), and set to empty or 0 to unlock again.",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'maxUserNameLen',
|
|
type => 'number',
|
|
title => "Max. length of usernames",
|
|
default => 15,
|
|
},
|
|
{
|
|
name => 'reservedNames',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Reserved usernames that cannot be registered",
|
|
help => "One username per line. Entries use simple substring matching, i.e. 'admin' will also prevent registrations with names like 'the_administrator'.",
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'userNameRegExp',
|
|
type => 'text',
|
|
title => "Regular expression that defines a valid username",
|
|
help => "Only change this if you know what you are doing.",
|
|
example => [ "^[\\w\\-. ]+\\z", "^[A-Za-z_0-9]+\\z" ],
|
|
default => "^[\\w\\-. ]+\\z",
|
|
},
|
|
{
|
|
name => 'maxSubjectLen',
|
|
type => 'number',
|
|
title => "Max. topic subject length",
|
|
default => 60,
|
|
},
|
|
{
|
|
name => 'maxBodyLen',
|
|
type => 'number',
|
|
title => "Max. post and message body length",
|
|
default => 16000,
|
|
},
|
|
{
|
|
name => 'maxPostsOvw',
|
|
type => 'number',
|
|
title => "Max. number of posts on forum overview pages",
|
|
help => "Allowing a big number of posts on the New/Unread Posts pages is generally less wasteful than it would be for normal topic pages (maxPostsPP). This is a soft limit, topics will be displayed to the end even if that means exceeding the limit.",
|
|
default => 500,
|
|
},
|
|
{
|
|
name => 'maxMsgRecv',
|
|
type => 'number',
|
|
title => "Max. number of recipients for private messages",
|
|
help => "Only allow more than one if your users are not likely to spam. Sending PM to many users with email notifications enabled may take a while.",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'minRegTime',
|
|
type => 'number',
|
|
title => "Users must be registered for a least x seconds before they can post",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'repostTime',
|
|
type => 'number',
|
|
title => "Users must pause x seconds between posts/messages",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'postEditTime',
|
|
type => 'number',
|
|
title => "Limit editing of posts to x seconds after posting",
|
|
help => "0 = don't limit",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'maxUnreadDays',
|
|
type => 'number',
|
|
title => "Treat posts as read after x days",
|
|
help => "This limit is for performance reasons. Can be increased a lot if forum is small or has good hardware.",
|
|
default => 30,
|
|
},
|
|
{
|
|
name => 'hostnameBlocks',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Email address hostname blocking",
|
|
help => "One hostname per line.",
|
|
example => [ "example.com" ],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'ipBlocks',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "IP blocking",
|
|
help => "One IP, CIDR or IP range per line. Space starts comment. Don't mix IPv4 and IPv6 formats. Blocking on the firewall or webserver level is more efficient. Requires Net::CIDR::Lite Perl module.",
|
|
example => [ "128.112.139.243", "38.0.0.0/8 There be evil", "192.168.0.0-192.168.0.255" ],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'censorWords',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Censor words, replace with asterisks",
|
|
help => "One word per line. This feature is easily fooled, don't expect too much of it.",
|
|
default => [],
|
|
},
|
|
{
|
|
section => "Captcha Options",
|
|
id => "captcha",
|
|
},
|
|
{
|
|
name => 'captcha',
|
|
type => 'radio',
|
|
title => "Use captchas to keep out spambots?",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Yes, use for user registrations",
|
|
2 => "Yes, use for user registrations and posts by unregistered guests",
|
|
3 => "Yes, use for user registrations and all posts and private messages",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'captchaOpenId',
|
|
type => 'checkbox',
|
|
title => "Also use captchas for OpenID logins?",
|
|
help => "Don't enable unless spambots start using OpenID.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'captchaMethod',
|
|
type => 'radio',
|
|
title => "Which built-in captcha implementation should be used?",
|
|
help => "Use first or second implementation if you can't install additional Perl modules. If a non-standard MwfCaptcha.pm module is installed, this selection has no effect. See FAQ.html for details.",
|
|
radio => [
|
|
0 => "Invisible honeypot field",
|
|
1 => "Question & answer",
|
|
2 => "GD::SecurityImage",
|
|
3 => "reCAPTCHA 1.0 service",
|
|
6 => "reCAPTCHA 2.0 service",
|
|
4 => "Akismet service",
|
|
5 => "DNSBL service",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'captchaQuestn',
|
|
type => 'text',
|
|
title => 'Question for the Q&A captcha',
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'captchaAnswer',
|
|
type => 'text',
|
|
title => 'Answer for the Q&A captcha',
|
|
default => "",
|
|
},
|
|
{
|
|
section => "Misc. Feature Options",
|
|
id => "misc",
|
|
},
|
|
{
|
|
name => 'messages',
|
|
type => 'checkbox',
|
|
title => "Enable private messages?",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'polls',
|
|
type => 'radio',
|
|
title => "Enable polls?",
|
|
help => "Only admins and moderators can add polls to other users' topics.",
|
|
radio => [
|
|
0 => "No",
|
|
2 => "Yes, enable poll creation for admins and moderators only",
|
|
1 => "Yes, enable poll creation for all users",
|
|
],
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'userList',
|
|
type => 'radio',
|
|
title => "Enable user list?",
|
|
help => "This is not the same user list as the one used by admins.",
|
|
radio => [
|
|
0 => "No",
|
|
2 => "Yes, visible for registered users only",
|
|
1 => "Yes, visible for everybody",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'watchWords',
|
|
type => 'checkbox',
|
|
title => "Enable word watch list?",
|
|
help => "Users can receive notifications if words on their watch list are mentioned in new posts.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'watchUsers',
|
|
type => 'checkbox',
|
|
title => "Enable user watch list?",
|
|
help => "Users can receive notifications if users on their watch list post anything.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'noteDefMod',
|
|
type => 'checkbox',
|
|
title => "Enable the 'Notify user' checkbox for moderator actions by default?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'recordIp',
|
|
type => 'checkbox',
|
|
title => "Record IP addresses per user and post?",
|
|
help => "Might have to be disabled for legal reasons. Also see <var>ipExpiration</var> option.",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'postLikes',
|
|
type => 'checkbox',
|
|
title => "Enable upvoting of posts?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'reports',
|
|
type => 'checkbox',
|
|
title => "Enable reporting of posts for rule violations?",
|
|
help => "Generally a good feature to enable for legal reasons.",
|
|
default => 1,
|
|
},
|
|
{
|
|
name => 'trashBoardId',
|
|
type => 'number',
|
|
title => "Board ID of a board to be used as a trash bin for manually deleted topics",
|
|
help => "0 = none",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'replyAgeWarn',
|
|
type => 'number',
|
|
title => "Warning threshold when replying to old posts",
|
|
help => "If someone replies to a post that's older than x days, they get a warning about the post's age before they can reply. This is an alternative to automatically locking old topics. 0 = don't warn.",
|
|
default => 14,
|
|
},
|
|
{
|
|
section => "Expert Options",
|
|
id => "exp",
|
|
},
|
|
{
|
|
name => 'logLevel',
|
|
type => 'radio',
|
|
title => "Enable event logging?",
|
|
radio => [
|
|
0 => "No",
|
|
1 => "Level 1 - Log important events only (those that usually modify the database)",
|
|
2 => "Level 2 - Also log important page views (forum, board, topic)",
|
|
3 => "Level 3 - Also log less important page views",
|
|
],
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'debug',
|
|
type => 'checkbox',
|
|
title => "Enable debug messages/logging?",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'noIndex',
|
|
type => 'checkbox',
|
|
title => "Enable 'Robots: noindex,nofollow' meta tag?",
|
|
help => "Tells robots not to index this forum, should using <a href='http://www.robotstxt.org/wc/robots.html'>robots.txt</a> be impossible. Regardless of setting, tag is always used on pages other than forum, board and topic pages.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'sslOnly',
|
|
type => 'checkbox',
|
|
title => "Is SSL/TLS mandatory?",
|
|
help => "Signals that only secured connections are used. mwForum will then set the secure flag for cookies. Enforcement of SSL/TLS is up to the webserver. Make sure <var>\$cfg->{baseUrl}</var> starts with https. You might also want to configure <a href='http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security'>Strict Transport Security</a> headers with the <var>httpHeader</var> forum option below.",
|
|
default => 0,
|
|
},
|
|
{
|
|
name => 'fileMode',
|
|
type => 'text',
|
|
title => "File access mode for attachments and other mwForum-created files",
|
|
help => "If empty, 0666 with applied process umask will be used.",
|
|
example => [ "0640" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'dirMode',
|
|
type => 'text',
|
|
title => "File access mode for mwForum-created directories",
|
|
help => "If empty, 0777 with applied process umask will be used.",
|
|
example => [ "0750" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'dataVersion',
|
|
type => 'number',
|
|
title => "Version number added to dataPath to force reloading of files",
|
|
help => "See FAQ.html for details, otherwise leave at 0.",
|
|
default => 0,
|
|
},
|
|
{
|
|
section => "Autocompletion Options",
|
|
id => "autocomplete",
|
|
},
|
|
{
|
|
name => 'fontFaces',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Font faces listed on user options page",
|
|
help => "Autocompletions listed here use HTML5 and don't work with all browsers yet.",
|
|
default => [
|
|
"Arial", "Calibri", "Cambria", "Candara", "Corbel", "Georgia",
|
|
"Tahoma", "Times New Roman", "Trebuchet MS", "Verdana",
|
|
],
|
|
},
|
|
{
|
|
name => 'modReasons',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Reasons for moderation actions (post edit/delete, topic move/delete etc.)",
|
|
example => [ "ToS violation", "Double post" ],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'banReasons',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Reasons for user banning",
|
|
example => [ "Spam", "Trolling" ],
|
|
default => [],
|
|
},
|
|
{
|
|
section => "Include Options",
|
|
id => "include",
|
|
},
|
|
{
|
|
name => 'httpHeader',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Additional static HTTP headers",
|
|
example => [
|
|
"Content-Security-Policy: default-src 'self'; style-src 'self' 'unsafe-inline'; img-src *",
|
|
"Strict-Transport-Security: max-age=604800",
|
|
"X-Frame-Options: deny",
|
|
],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'htmlHeader',
|
|
type => 'textarea',
|
|
title => "Additional static HTML headers",
|
|
example => [ "<meta name='viewport' content='width=device-width'>" ],
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'htmlTop',
|
|
type => 'textarea',
|
|
title => "Additional static HTML at the top of pages",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'htmlMiddle',
|
|
type => 'textarea',
|
|
title => "Additional static HTML after the top bar",
|
|
default => "",
|
|
},
|
|
{
|
|
name => 'htmlBottom',
|
|
type => 'textarea',
|
|
title => "Additional static HTML at the bottom",
|
|
default => "",
|
|
},
|
|
{
|
|
section => "Plugin Options",
|
|
id => "plugin",
|
|
},
|
|
{
|
|
name => 'includePlg',
|
|
type => 'textarea',
|
|
parse => 'arrayhash',
|
|
title => "Include plugins",
|
|
help => "One subtype=MwfPlgModuleName::functionName definition per line, multiple plugins of the same subtype are allowed.",
|
|
example => [ "top=MwfPlgExample::printAds" ],
|
|
default => {},
|
|
},
|
|
{
|
|
name => 'msgDisplayPlg',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Message display plugins",
|
|
help => "One MwfPlgModuleName::functionName definition per line.",
|
|
example => [ "MwfPlgExample::moreSmileys" ],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'logPlg',
|
|
type => 'textarea',
|
|
parse => 'array',
|
|
title => "Event plugins",
|
|
help => "One MwfPlgModuleName::functionName definition per line.",
|
|
example => [ "MwfPlgExample::userRegisterQueue" ],
|
|
default => [],
|
|
},
|
|
{
|
|
name => 'authzPlg',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Authorization plugins",
|
|
help => "One subtype=MwfPlgModuleName::functionName definition per line.",
|
|
example => [ "viewBoard=MwfPlgExample::viewBoard" ],
|
|
default => {},
|
|
},
|
|
{
|
|
name => 'authenPlg',
|
|
type => 'textarea',
|
|
parse => 'hash',
|
|
title => "Authentication plugin",
|
|
help => "One subtype=MwfPlgModuleName::functionName definition.",
|
|
example => [ "request=MwfPlgExample::authenRequest" ],
|
|
default => {},
|
|
},
|
|
];
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Database tables used by mwForum
|
|
|
|
our @tables = qw(
|
|
attachments
|
|
boardAdminGroups
|
|
boardHiddenFlags
|
|
boardMemberGroups
|
|
boards
|
|
boardSubscriptions
|
|
categories
|
|
chat
|
|
config
|
|
groupAdmins
|
|
groupMembers
|
|
groups
|
|
log
|
|
messages
|
|
notes
|
|
pollOptions
|
|
polls
|
|
pollVotes
|
|
postLikes
|
|
postReports
|
|
posts
|
|
tickets
|
|
topicReadTimes
|
|
topics
|
|
topicSubscriptions
|
|
userBadges
|
|
userBans
|
|
userIgnores
|
|
users
|
|
userVariables
|
|
variables
|
|
watchUsers
|
|
watchWords
|
|
);
|
|
|
|
our @arcTables = qw(
|
|
arc_boards
|
|
arc_posts
|
|
arc_topics
|
|
);
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Load local additions
|
|
|
|
do 'MwfDefaultsLocal.pm';
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Return OK
|
|
1;
|