2010-11-02 11:57:33 +01:00
< ? php
2010-11-04 15:02:13 +01:00
/*
2011-05-27 19:23:47 +02:00
* Copyright ( c ) 2010 - 2011 Tinyboard Development Group
*
* WARNING : This is a project - wide configuration file and is overwritten when upgrading to a newer
* version of Tinyboard . Please leave this file unchanged , or it will be a lot harder for you to upgrade .
2010-11-04 15:18:23 +01:00
* If you would like to make instance - specific changes to your own setup , please use instance - config . php .
2010-11-04 15:02:13 +01:00
*
* This is the default configuration . You can copy values from here and use them in
* your instance - config . php
*
2011-02-16 09:41:34 +01:00
* You can also create per - board configuration files . Once a board is created , locate its directory and
* create a new file named config . php ( eg . b / config . php ) . Like instance - config . php , you can copy values
* from here and use them in your per - board configuration files .
*
2011-06-06 13:08:31 +02:00
* Some directives are commented out . This is either because they are optional and examples , or because
* they are " optionally configurable " , and given their default values by Tinyboard ' s code later if unset .
*
2011-05-27 19:23:47 +02:00
* More information : http :// tinyboard . org / wiki / index . php ? title = Config
*
2010-11-04 15:02:13 +01:00
*/
2011-02-12 07:25:15 +01:00
$config = Array (
'db' => Array (),
2011-10-07 07:51:19 +02:00
'cache' => Array (),
2011-02-12 07:25:15 +01:00
'cookies' => Array (),
'error' => Array (),
'dir' => Array (),
2011-02-17 12:03:52 +01:00
'mod' => Array (),
2011-03-27 11:38:11 +02:00
'spam' => Array (),
2011-04-06 11:18:36 +02:00
'flood_filters' => Array (),
2011-04-12 13:08:54 +02:00
'wordfilters' => Array (),
2011-05-19 09:37:23 +02:00
'custom_capcode' => Array (),
2011-05-25 08:21:36 +02:00
'custom_tripcode' => Array (),
2011-06-04 10:55:05 +02:00
'dnsbl' => Array (),
2011-06-04 17:50:39 +02:00
'dnsbl_exceptions' => Array (),
2011-10-05 07:45:34 +02:00
'remote' => Array (),
2011-10-05 07:48:31 +02:00
'allowed_ext' => Array (),
2011-10-05 07:45:34 +02:00
'allowed_ext_files' => Array (),
'file_icons' => Array ()
2011-02-12 07:25:15 +01:00
);
2010-12-17 15:18:03 +01:00
2011-10-03 15:48:09 +02:00
/*
* =======================
* General / misc settings
* =======================
*/
// Blotter -- the simple version.
//$config['blotter'] = 'This is an important announcement!';
2011-05-21 07:21:45 +02:00
// Automatically check if a newer version of Tinyboard is available when an administrator logs in
$config [ 'check_updates' ] = true ;
// How often to check for updates
$config [ 'check_updates_time' ] = 43200 ; // 12 hours
2011-02-12 07:25:15 +01:00
2011-10-03 15:48:09 +02:00
// Shows some extra information at the bottom of pages. Good for debugging development.
// Also experimental.
$config [ 'debug' ] = false ;
// For development purposes. Turns 'display_errors' on. Not recommended for production.
$config [ 'verbose_errors' ] = true ;
// Directory where temporary files will be created. Not really used much yet except for some experimental stuff.
$config [ 'tmp' ] = '/tmp' ;
// The HTTP status code to use when redirecting.
// Should be 3xx (redirection). http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
// "302" is strongly recommended. (This shouldn't even be configurable... It's not like it's going to change or anything.)
$config [ 'redirect_http' ] = 302 ;
// Make IPv4 addresses look like IPv4 addresses ("::ffff:8.8.8.8" becomes "8.8.8.8")
$config [ 'ipv6_ipv4' ] = true ;
2011-10-03 15:49:35 +02:00
// A small file in the main directory indicating that the script has been ran and the board(s) have been generated.
// This keeps the script from querying the database and causing strain when not needed.
$config [ 'has_installed' ] = '.installed' ;
2011-11-18 13:39:13 +01:00
// Use syslog() for logging all error messages and unauthorized login attempts.
$config [ 'syslog' ] = false ;
2011-10-03 15:48:09 +02:00
/*
* ====================
* Database settings
* ====================
*/
2010-12-17 16:24:27 +01:00
// SQL driver ("mysql", "pgsql", "sqlite", "dblib", etc)
// http://www.php.net/manual/en/pdo.drivers.php
2011-02-12 07:25:15 +01:00
$config [ 'db' ][ 'type' ] = 'mysql' ;
2010-12-17 15:18:03 +01:00
// Hostname or IP address
2011-02-12 07:25:15 +01:00
$config [ 'db' ][ 'server' ] = 'localhost' ;
2010-12-17 15:18:03 +01:00
// Login
2011-02-12 07:25:15 +01:00
$config [ 'db' ][ 'user' ] = '' ;
$config [ 'db' ][ 'password' ] = '' ;
// Tinyboard database
$config [ 'db' ][ 'database' ] = '' ;
2011-10-03 15:48:09 +02:00
// Use a persistent connection (experimental)
2011-04-22 16:24:15 +02:00
$config [ 'db' ][ 'persistent' ] = false ;
2010-12-17 16:24:27 +01:00
// Anything more to add to the DSN string (eg. port=xxx;foo=bar)
2011-02-12 07:25:15 +01:00
$config [ 'db' ][ 'dsn' ] = '' ;
2011-04-22 16:24:15 +02:00
// Timeout duration in seconds (not all drivers support this)
$config [ 'db' ][ 'timeout' ] = 5 ;
2011-10-07 07:51:19 +02:00
/*
* ====================
* Cache settings
* ====================
*/
$config [ 'cache' ][ 'enabled' ] = false ;
// $config['cache']['enabled'] = 'memcached';
// $config['cache']['enabled'] = 'apc';
// $config['cache']['enabled'] = 'xcache';
// Timeout for cached objects such as posts and HTML
$config [ 'cache' ][ 'timeout' ] = 43200 ; // 12 hours
2011-04-22 16:24:15 +02:00
// Memcached servers to use - http://www.php.net/manual/en/memcached.addservers.php
2011-10-07 07:51:19 +02:00
$config [ 'cache' ][ 'memcached' ] = Array (
2011-04-22 16:24:15 +02:00
Array ( 'localhost' , 11211 )
);
2011-10-03 15:48:09 +02:00
/*
* ====================
* Cookie settings
* ====================
*/
2010-11-02 11:57:33 +01:00
// The name of the session cookie (PHP's $_SESSION)
2011-02-12 07:25:15 +01:00
$config [ 'cookies' ][ 'session' ] = 'imgboard' ;
2010-12-01 06:42:48 +01:00
2011-02-12 07:25:15 +01:00
// Used to safely determine when the user was first seen, to prevent floods. Contains a UNIX timestamp.
$config [ 'cookies' ][ 'time' ] = 'arrived' ;
// Contains an MD5 hash of $config['cookies']['time'] for verification.
$config [ 'cookies' ][ 'hash' ] = 'hash' ;
2010-12-01 11:24:14 +01:00
// Used for moderation login
2011-02-12 07:25:15 +01:00
$config [ 'cookies' ][ 'mod' ] = 'mod' ;
2011-04-06 10:33:51 +02:00
// Used for communicating with Javascript; telling it when posts were successful.
// Rebuild Javascript file after changing this value or it won't work.
2011-04-06 10:31:26 +02:00
$config [ 'cookies' ][ 'js' ] = 'serv' ;
2011-03-27 17:22:48 +02:00
// Cookies "path". Defaults to $config['root']. If $config['root'] is a URL, you need to set this. Should be '/' or '/board/', depending on your installation.
// $config['cookies']['path'] = '/';
// Where to set the 'path' parameter to $config['cookies']['path'] when creating cookies. Recommended.
2011-02-12 07:25:15 +01:00
$config [ 'cookies' ][ 'jail' ] = true ;
2010-11-02 11:57:33 +01:00
// How long should the cookies last (in seconds)
2011-02-12 07:25:15 +01:00
$config [ 'cookies' ][ 'expire' ] = 15778463 ; //6 months
2010-12-17 17:01:46 +01:00
// Make this something long and random for security
2011-10-03 15:48:09 +02:00
$config [ 'cookies' ][ 'salt' ] = 'abcdefghijklmnopqrstuvwxyz09123456789!@#$%^&*()' ;
2011-02-12 07:25:15 +01:00
// How long should moderators should remain logged in (0=browser session) (in seconds)
$config [ 'mod' ][ 'expire' ] = 15778463 ; //6 months
2011-04-13 12:02:58 +02:00
// Used to salt secure tripcodes (##trip) and poster IDs (if enabled)
2011-10-03 15:48:09 +02:00
$config [ 'secure_trip_salt' ] = ')(*&^%$#@!98765432190zyxwvutsrqponmlkjihgfedcba' ;
2011-01-19 02:37:31 +01:00
2010-11-02 11:57:33 +01:00
// How many seconds before you can post, after the first visit
2011-05-25 11:07:57 +02:00
// Does not currently work due to technical limitations; disregard for now
2011-02-12 07:25:15 +01:00
$config [ 'lurktime' ] = 30 ;
2011-10-03 15:48:09 +02:00
/*
* ====================
* Flood / spam settings
* ====================
*/
2011-05-25 11:07:57 +02:00
2011-01-18 07:11:28 +01:00
// How many seconds between each post
2011-02-12 07:25:15 +01:00
$config [ 'flood_time' ] = 10 ;
2011-01-18 07:11:28 +01:00
// How many seconds between each post with exactly the same content and same IP
2011-02-12 07:25:15 +01:00
$config [ 'flood_time_ip' ] = 120 ;
2011-01-18 07:11:28 +01:00
// Same as above but different IP address
2011-02-12 07:25:15 +01:00
$config [ 'flood_time_same' ] = 30 ;
2011-10-03 15:48:09 +02:00
// DNS blacklists (DNSBL) http://www.dnsbl.info/dnsbl-list.php
$config [ 'dnsbl' ][] = 'tor.dnsbl.sectoor.de' ; // Tor exit nodes
//$config['dnsbl'][] = 'dnsbl.sorbs.net';
// A better way to check for Tor exit nodes (https://www.torproject.org/projects/tordnsel.html.en):
// server-port.reverse-server-ip.ip-port.exitlist.torproject.org
//$config['dnsbl'][] = $_SERVER['PORT'] . '.' . '4.3.2.1' . '.ip-port.exitlist.torproject.org';
// Skip checking certain IP addresses against blacklists (for troubleshooting or whatever)
$config [ 'dnsbl_exceptions' ][] = '127.0.0.1' ;
// Spam filter
$config [ 'spam' ][ 'hidden_inputs_min' ] = 4 ;
$config [ 'spam' ][ 'hidden_inputs_max' ] = 12 ;
// These are fields used to confuse the bots. Make sure they aren't actually used by Tinyboard, or it won't work.
$config [ 'spam' ][ 'hidden_input_names' ] = Array (
'user' ,
'username' ,
'login' ,
'search' ,
'q' ,
'url' ,
'firstname' ,
'lastname' ,
'text' ,
'message'
);
// Always update this when adding new valid fields to the post form, or EVERYTHING WILL BE DETECTED AS SPAM!
$config [ 'spam' ][ 'valid_inputs' ] = Array (
'hash' ,
'board' ,
'thread' ,
'mod' ,
'name' ,
'email' ,
'subject' ,
'post' ,
'body' ,
'password' ,
'sticky' ,
'lock' ,
'raw' ,
'embed' ,
'recaptcha_challenge_field' ,
2011-10-03 17:46:39 +02:00
'recaptcha_response_field' ,
'spoiler'
2011-10-03 15:48:09 +02:00
);
// Custom flood filters. Detect flood attacks and reject new posts if there's a positive match.
// See http://tinyboard.org/wiki/index.php?title=Flood_filters for more information.
//$config['flood_filters'][] = Array(
// 'condition' => Array(
// // 100 posts in the past 5 minutes (~20 p/m)
// 'posts_in_past_x_minutes' => Array(100, 5)
// ),
// // Don't allow the user to post
// 'action' => 'reject',
// // Display this message
// 'message' => 'Your post has been rejected on the suspicion of a flood attack on this board.'
//);
// Another filter
//$config['flood_filters'][] = Array(
// 'condition' => Array(
// // 10 new empty threads in the past 2 minutes
// 'threads_with_no_replies_in_past_x_minutes' => Array(10, 2),
// // Allow replies, but not new threads (ie. reject topics only).
// 'OP' => true
// ),
// 'action' => 'reject',
// 'message' => 'Your post has been rejected on the suspicion of a flood attack on this board (too many new threads); post a reply instead.'
//);
// Enable reCaptcha to make spam even harder
$config [ 'recaptcha' ] = false ;
// Public and private key pair from https://www.google.com/recaptcha/admin/create
$config [ 'recaptcha_public' ] = '6LcXTcUSAAAAAKBxyFWIt2SO8jwx4W7wcSMRoN3f' ;
$config [ 'recaptcha_private' ] = '6LcXTcUSAAAAAOGVbVdhmEM1_SyRF4xTKe8jbzf_' ;
/*
* ====================
* Post settings
* ====================
*/
2011-09-15 12:32:49 +02:00
// Do you need a body for your reply posts?
2011-03-17 08:56:18 +01:00
$config [ 'force_body' ] = false ;
2011-09-15 12:32:49 +02:00
// Do you need a body for new threads?
$config [ 'force_body_op' ] = true ;
2011-10-03 15:48:09 +02:00
// Strip superfluous new lines at the end of a post
$config [ 'strip_superfluous_returns' ] = true ;
2011-02-22 01:09:43 +01:00
2010-11-02 11:57:33 +01:00
// Max body length
2011-02-12 07:25:15 +01:00
$config [ 'max_body' ] = 1800 ;
2011-04-17 07:28:15 +02:00
// Amount of post lines to show on the index page
$config [ 'body_truncate' ] = 15 ;
// Amount of characters to show on the index page
$config [ 'body_truncate_char' ] = 2500 ;
2011-10-03 15:48:09 +02:00
// Typically spambots try to post a lot of links. Refuse a post with X standalone links?
$config [ 'max_links' ] = 20 ;
// Maximum number of cites per post (protects against abuse)
$config [ 'max_cites' ] = 45 ;
// Maximum number of cross-board links/cites per post
$config [ 'max_cross' ] = $config [ 'max_cites' ];
2011-10-01 14:12:31 +02:00
// Maximum filename length (will be truncated)
$config [ 'max_filename_len' ] = 255 ;
// Maximum filename length to display (the rest can be viewed upon mouseover)
$config [ 'max_filename_display' ] = 30 ;
2011-02-12 07:25:15 +01:00
2011-10-03 15:48:09 +02:00
// How long before you can delete a post after posting, in seconds.
$config [ 'delete_time' ] = 10 ;
// Reply limit (stops bumping thread when this is reached)
$config [ 'reply_limit' ] = 250 ;
2010-12-01 06:20:59 +01:00
2011-10-03 15:48:09 +02:00
// Strip repeating characters when making hashes
$config [ 'robot_enable' ] = false ;
$config [ 'robot_strip_repeating' ] = true ;
2011-10-03 09:38:19 +02:00
2011-10-03 15:48:09 +02:00
// Enable mutes
// Tinyboard uses ROBOT9000's original 2^x implementation
$config [ 'robot_mute' ] = true ;
// How many mutes x hours ago to include in the algorithm
$config [ 'robot_mute_hour' ] = 336 ; // 2 weeks
// If you want to alter the algorithm a bit. Default value is 2. n^x
$config [ 'robot_mute_multiplier' ] = 2 ;
$config [ 'robot_mute_descritpion' ] = 'You have been muted for unoriginal content.' ;
2010-12-01 11:24:14 +01:00
2011-10-03 15:48:09 +02:00
// Automatically convert things like "..." to Unicode characters ("…")
$config [ 'auto_unicode' ] = true ;
// Use some Wiki-like syntax (''em'', '''strong''', ==Heading==, etc)
$config [ 'wiki_markup' ] = true ;
// Whether to turn URLs into functional links
$config [ 'markup_urls' ] = true ;
2010-12-01 11:24:14 +01:00
2011-10-03 15:48:09 +02:00
// Wordfilters are used to automatically replace certain words/phrases with something else.
// For a normal string replacement:
// $config['wordfilters'][] = Array('cat', 'dog');
2011-02-20 07:19:57 +01:00
2011-10-03 15:48:09 +02:00
// Advanced raplcement (regular expressions):
// $config['wordfilters'][] = Array('/cat/', 'dog', true); // 'true' means it's a regular expression
2011-04-05 07:57:01 +02:00
2011-10-03 15:48:09 +02:00
// Always act as if they had typed "noko" in the email field no mattter what
$config [ 'always_noko' ] = false ;
2011-01-20 09:24:41 +01:00
2011-10-03 15:48:09 +02:00
// Custom tripcodes. The below example makes a tripcode
// of "#test123" evaluate to "!HelloWorld"
// $config['custom_tripcode']['#test123'] = '!HelloWorld';
// $config['custom_tripcode']['##securetrip'] = '!!somethingelse';
2011-02-21 05:51:46 +01:00
2011-10-03 17:47:58 +02:00
// Optional spoiler images
2011-10-03 17:46:39 +02:00
$config [ 'spoiler_images' ] = false ;
2011-10-03 15:48:09 +02:00
/*
* ====================
* Image settings
* ====================
*/
2010-11-02 11:57:33 +01:00
// For resizing, max values
2011-02-12 07:25:15 +01:00
$config [ 'thumb_width' ] = 255 ;
$config [ 'thumb_height' ] = 255 ;
2011-01-02 12:45:25 +01:00
2011-04-12 20:08:59 +02:00
// Thumbnail extension, empty for inherited (png recommended)
2011-04-12 20:09:37 +02:00
$config [ 'thumb_ext' ] = 'png' ;
2011-04-12 20:08:59 +02:00
2011-07-22 11:40:57 +02:00
// Use Imagick instead of GD (some further config options below are ignored if set)
$config [ 'imagick' ] = false ;
2011-10-03 15:48:09 +02:00
// Regular expression to check for IE MIME type detection XSS exploit. To disable, comment the line out
// https://github.com/savetheinternet/Tinyboard/issues/20
$config [ 'ie_mime_type_detection' ] = '/<(?:body|head|html|img|plaintext|pre|script|table|title|a href|channel|scriptlet)/i' ;
// Allowed image file extensions
2011-10-05 07:48:31 +02:00
$config [ 'allowed_ext' ][] = 'jpg' ;
$config [ 'allowed_ext' ][] = 'jpeg' ;
$config [ 'allowed_ext' ][] = 'bmp' ;
$config [ 'allowed_ext' ][] = 'gif' ;
$config [ 'allowed_ext' ][] = 'png' ;
2011-10-03 15:48:09 +02:00
// $config['allowed_ext'][] = 'svg';
// Allowed additional file extensions (not images; downloadable files)
2011-10-05 07:45:34 +02:00
// $config['allowed_ext_files'][] = 'txt';
// $config['allowed_ext_files'][] = 'zip';
// Non-image file icons
$config [ 'file_icons' ][ 'default' ] = 'file.png' ;
$config [ 'file_icons' ][ 'zip' ] = 'zip.png' ;
2011-10-03 15:48:09 +02:00
// Thumbnail to use for the downloadable files (not images)
2011-10-05 07:45:34 +02:00
$config [ 'file_thumb' ] = 'static/%s' ;
2011-10-03 17:46:39 +02:00
// Thumbnail to use for spoiler images
2011-10-03 18:06:47 +02:00
$config [ 'spoiler_image' ] = 'static/spoiler.png' ;
2011-10-03 15:48:09 +02:00
2011-04-12 20:08:59 +02:00
// Thumbnail quality (compression level), from 0 to 9
$config [ 'thumb_quality' ] = 7 ;
2011-04-12 14:58:01 +02:00
// When a thumbnailed image is going to be the same (in dimension), just copy the entire file and use that as a thumbnail instead of resizing/redrawing
$config [ 'minimum_copy_resize' ] = true ;
2011-01-02 12:45:25 +01:00
// Store image hash in the database for r9k-like boards implementation soon
// Function name for hashing
2011-10-03 15:48:09 +02:00
// sha1_file, md5_file, etc. You can also define your own similar function.
2011-02-12 07:25:15 +01:00
$config [ 'file_hash' ] = 'sha1_file' ;
2011-01-19 02:37:31 +01:00
2010-11-03 09:44:24 +01:00
// Maximum image upload size in bytes
2011-02-12 07:25:15 +01:00
$config [ 'max_filesize' ] = 10 * 1024 * 1024 ; // 10MB
2010-11-03 10:07:32 +01:00
// Maximum image dimensions
2011-02-16 11:13:32 +01:00
$config [ 'max_width' ] = 10000 ;
2011-10-01 08:13:23 +02:00
$config [ 'max_height' ] = $config [ 'max_width' ]; // 1:1
2011-10-03 15:48:09 +02:00
// Reject dupliate image uploads
2011-02-19 09:52:18 +01:00
$config [ 'image_reject_repost' ] = true ;
2011-07-22 11:45:45 +02:00
2011-10-03 15:48:09 +02:00
// Display the aspect ratio in a post's file info
$config [ 'show_ratio' ] = false ;
// Display the file's original filename
$config [ 'show_filename' ] = true ;
2011-07-22 11:45:45 +02:00
2010-11-03 13:37:28 +01:00
/**
Redraw the image using GD functions to strip any excess data ( commonly ZIP archives )
2011-02-12 07:25:15 +01:00
WARNING : Currently strips animated GIFs too : (
2011-07-22 11:45:45 +02:00
Note : Currently not implemented anymore . Will be added back at a later date .
2010-11-03 13:37:28 +01:00
**/
2011-02-12 07:25:15 +01:00
$config [ 'redraw_image' ] = false ;
// Temporary fix for the animation-stripping bug
$config [ 'redraw_gifs' ] = false ;
2010-11-30 09:21:06 +01:00
2011-10-03 15:48:09 +02:00
// Redrawing configuration
$config [ 'jpeg_quality' ] = 100 ;
/*
* ====================
* Board settings
* ====================
*/
// Maximum amount of threads to display on a given page.
$config [ 'threads_per_page' ] = 10 ;
// Maximum number of pages. Content past the last page is automatically purged.
$config [ 'max_pages' ] = 10 ;
// Replies to show per thread on the board index page.
$config [ 'threads_preview' ] = 5 ;
// Same as above, but for stickied threads.
$config [ 'threads_preview_sticky' ] = 1 ;
// Name of the boards. Usually '/%s/' (/b/, /mu/, etc)
// $config['board_abbreviation'] - BOARD_TITLE
$config [ 'board_abbreviation' ] = '/%s/' ;
// The default name (ie. Anonymous)
$config [ 'anonymous' ] = 'Anonymous' ;
// How many reports you can create in the same request.
$config [ 'report_limit' ] = 3 ;
/*
* ====================
* Display settings
* ====================
*/
2011-10-11 12:49:14 +02:00
// Locale (en, ru_RU)
$config [ 'locale' ] = 'en' ;
2011-10-03 15:48:09 +02:00
// Timezone
$config [ 'timezone' ] = 'America/Los_Angeles' ;
2011-07-07 15:07:38 +02:00
// Inline expanding of images with Javascript
$config [ 'inline_expanding' ] = true ;
2011-10-03 15:48:09 +02:00
// The string passed to date() for post times
// http://php.net/manual/en/function.date.php
$config [ 'post_date' ] = 'm/d/y (D) H:i:s' ;
2011-07-07 15:07:38 +02:00
2011-10-03 15:48:09 +02:00
// The names on the post buttons. (On most imageboards, these are both "Post")
$config [ 'button_newtopic' ] = 'New Topic' ;
$config [ 'button_reply' ] = 'New Reply' ;
2010-11-30 09:21:06 +01:00
2011-10-03 15:48:09 +02:00
// Assign each poster in a thread a unique ID, shown by "ID: {id}" before the post number.
$config [ 'poster_ids' ] = false ;
// Number of characters in the poster ID (maximum is 40)
$config [ 'poster_id_length' ] = 5 ;
// Characters used to generate a random password (with Javascript)
$config [ 'genpassword_chars' ] = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+' ;
// Optional banner at the top of every page.
// $config['url_banner'] = '/banner.php';
// Banner dimensions are also optional. As the banner loads after the rest of the page, everything
// may be shifted down a few pixels when it does. Making the banner a fixed size will prevent this.
// $config['banner_width'] = 300;
// $config['banner_height'] = 100;
// Custom stylesheets available. The prefix for each stylesheet URI is defined below.
$config [ 'stylesheets' ] = Array (
// Stylesheet name => URI
'Yotsuba B' => 'default.css' ,
'Yotsuba' => 'yotsuba.css'
);
// $config['stylesheets']['Futaba'] = 'futaba.css';
// The prefix for each stylesheet URI. Defaults to $config['root']/stylesheets/
//$config['uri_stylesheets'] = 'http://static.example.org/stylesheets/';
// The default stylesheet to use
$config [ 'default_stylesheet' ] = Array ( 'Yotsuba B' , $config [ 'stylesheets' ][ 'Yotsuba B' ]);
// Boardlinks
// You can group, order and place the boardlist at the top of every page, using the following template.
//$config['boards'] = Array(
// Array('a', 'b'),
// Array('c', 'd', 'e', 'f', 'g'),
// Array('h', 'i', 'j'),
// Array('k', Array('l', 'm')),
2011-10-05 14:53:43 +02:00
// Array('status' => 'http://status.example.org/')
2011-10-03 15:48:09 +02:00
//);
// Categories
// Required for the Categories theme. Array of the names of board groups in order, from $config['boards'].
//$config['categories'] = Array('groupname', 'name', 'anothername', 'kangaroos');
// Custom_categories
// Optional for the Categories theme. Array of name => (title, url) groups for categories with non-board links.
//$config['custom_categories'] = Array( 'Links' =>
// Array('Tinyboard' => 'http://tinyboard.org',
// 'AnotherName' => 'url')
//);
2011-11-16 06:01:02 +01:00
// Automatically remove unnecessary whitespace when compiling HTML files from templates.
$config [ 'minify_html' ] = false ;
2011-10-03 15:48:09 +02:00
/*
* ====================
* Video embedding
* ====================
*/
// Enable embedding (see below)
$config [ 'enable_embedding' ] = false ;
// Custom embedding (YouTube, vimeo, etc.)
// It's very important that you match the full string (with ^ and $) or things will not work correctly.
$config [ 'embedding' ] = Array (
Array (
2011-11-16 22:03:01 +01:00
'/^https?:\/\/(\w+\.)?youtube\.com\/watch\?v=([a-zA-Z0-9\-_]{10,11})(&.+)?$/i' ,
2011-10-03 15:48:09 +02:00
'<object style="float: left;margin: 10px 20px;" width="%%tb_width%%" height="%%tb_height%%"><param name="movie" value="http://www.youtube.com/v/$2?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$2?fs=1&hl=en_US" type="application/x-shockwave-flash" width="%%tb_width%%" height="%%tb_height%%" allowscriptaccess="always" allowfullscreen="true"></embed></object>'
),
Array (
'/^https?:\/\/(\w+\.)?vimeo\.com\/(\d{2,10})(\?.+)?$/i' ,
'<object style="float: left;margin: 10px 20px;" width="%%tb_width%%" height="%%tb_height%%"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=$2&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=00adef&fullscreen=1&autoplay=0&loop=0" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=$2&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=00adef&fullscreen=1&autoplay=0&loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="%%tb_width%%" height="%%tb_height%%"></embed></object>'
),
Array (
'/^https?:\/\/(\w+\.)?dailymotion\.com\/video\/([a-zA-Z0-9]{2,10})(_.+)?$/i' ,
'<object style="float: left;margin: 10px 20px;" width="%%tb_width%%" height="%%tb_height%%"><param name="movie" value="http://www.dailymotion.com/swf/video/$2"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><param name="wmode" value="transparent"></param><embed type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/video/$2" width="%%tb_width%%" height="%%tb_height%%" wmode="transparent" allowfullscreen="true" allowscriptaccess="always"></embed></object>'
),
Array (
'/^https?:\/\/(\w+\.)?metacafe\.com\/watch\/(\d+)\/([a-zA-Z0-9_\-.]+)\/(\?.+)?$/i' ,
'<div style="float:left;margin:10px 20px;width:%%tb_width%%px;height:%%tb_height%%px"><embed flashVars="playerVars=showStats=no|autoPlay=no" src="http://www.metacafe.com/fplayer/$2/$3.swf" width="%%tb_width%%" height="%%tb_height%%" wmode="transparent" allowFullScreen="true" allowScriptAccess="always" name="Metacafe_$2" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></div>'
),
Array (
'/^https?:\/\/video\.google\.com\/videoplay\?docid=(\d+)([&#](.+)?)?$/i' ,
'<embed src="http://video.google.com/googleplayer.swf?docid=$1&hl=en&fs=true" style="width:%%tb_width%%px;height:%%tb_height%%px;float:left;margin:10px 20px" allowFullScreen="true" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>'
)
);
// Embedding width and height
$config [ 'embed_width' ] = 300 ;
$config [ 'embed_height' ] = 246 ;
/*
* ====================
* Error messages
* ====================
*/
// Error messages
$config [ 'error' ][ 'lurk' ] = 'Lurk some more before posting.' ;
$config [ 'error' ][ 'bot' ] = 'You look like a bot.' ;
$config [ 'error' ][ 'referer' ] = 'Your browser sent an invalid or no HTTP referer.' ;
$config [ 'error' ][ 'toolong' ] = 'The %s field was too long.' ;
$config [ 'error' ][ 'toolong_body' ] = 'The body was too long.' ;
$config [ 'error' ][ 'tooshort_body' ] = 'The body was too short or empty.' ;
$config [ 'error' ][ 'noimage' ] = 'You must upload an image.' ;
$config [ 'error' ][ 'nomove' ] = 'The server failed to handle your upload.' ;
$config [ 'error' ][ 'fileext' ] = 'Unsupported image format.' ;
$config [ 'error' ][ 'noboard' ] = 'Invalid board!' ;
$config [ 'error' ][ 'nonexistant' ] = 'Thread specified does not exist.' ;
$config [ 'error' ][ 'locked' ] = 'Thread locked. You may not reply at this time.' ;
$config [ 'error' ][ 'nopost' ] = 'You didn\'t make a post.' ;
$config [ 'error' ][ 'flood' ] = 'Flood detected; Post discarded.' ;
$config [ 'error' ][ 'spam' ] = 'Your request looks automated; Post discarded.' ;
$config [ 'error' ][ 'unoriginal' ] = 'Unoriginal content!' ;
$config [ 'error' ][ 'muted' ] = 'Unoriginal content! You have been muted for %d seconds.' ;
$config [ 'error' ][ 'youaremuted' ] = 'You are muted! Expires in %d seconds.' ;
$config [ 'error' ][ 'dnsbl' ] = 'Your IP address is listed in %s.' ;
$config [ 'error' ][ 'toomanylinks' ] = 'Too many links; flood detected.' ;
$config [ 'error' ][ 'toomanycites' ] = 'Too many cites; post discarded.' ;
$config [ 'error' ][ 'toomanycross' ] = 'Too many cross-board links; post discarded.' ;
$config [ 'error' ][ 'nodelete' ] = 'You didn\'t select anything to delete.' ;
$config [ 'error' ][ 'noreport' ] = 'You didn\'t select anything to report.' ;
$config [ 'error' ][ 'toomanyreports' ] = 'You can\'t report that many posts at once.' ;
$config [ 'error' ][ 'invalidpassword' ] = 'Wrong password…' ;
$config [ 'error' ][ 'invalidimg' ] = 'Invalid image.' ;
$config [ 'error' ][ 'unknownext' ] = 'Unknown file extension.' ;
$config [ 'error' ][ 'filesize' ] = 'Maximum file size: %maxsz% bytes<br>Your file\'s size: %filesz% bytes' ;
$config [ 'error' ][ 'maxsize' ] = 'The file was too big.' ;
$config [ 'error' ][ 'invalidzip' ] = 'Invalid archive!' ;
$config [ 'error' ][ 'fileexists' ] = 'That file <a href="%s">already exists</a>!' ;
$config [ 'error' ][ 'delete_too_soon' ] = 'You\'ll have to wait another %s before deleting that.' ;
$config [ 'error' ][ 'mime_exploit' ] = 'MIME type detection XSS exploit (IE) detected; post discarded.' ;
$config [ 'error' ][ 'invalid_embed' ] = 'Couldn\'t make sense of the URL of the video you tried to embed.' ;
$config [ 'error' ][ 'captcha' ] = 'You seem to have mistyped the verification.' ;
// Moderator errors
$config [ 'error' ][ 'invalid' ] = 'Invalid username and/or password.' ;
$config [ 'error' ][ 'notamod' ] = 'You are not a mod…' ;
$config [ 'error' ][ 'invalidafter' ] = 'Invalid username and/or password. Your user may have been deleted or changed.' ;
$config [ 'error' ][ 'malformed' ] = 'Invalid/malformed cookies.' ;
$config [ 'error' ][ 'missedafield' ] = 'Your browser didn\'t submit an input when it should have.' ;
$config [ 'error' ][ 'required' ] = 'The %s field is required.' ;
$config [ 'error' ][ 'invalidfield' ] = 'The %s field was invalid.' ;
$config [ 'error' ][ 'boardexists' ] = 'There is already a %s board.' ;
$config [ 'error' ][ 'noaccess' ] = 'You don\'t have permission to do that.' ;
$config [ 'error' ][ 'invalidpost' ] = 'That post doesn\'t exist…' ;
$config [ 'error' ][ '404' ] = 'Page not found.' ;
$config [ 'error' ][ 'modexists' ] = 'That mod <a href="?/users/%d">already exists</a>!' ;
$config [ 'error' ][ 'invalidtheme' ] = 'That theme doesn\'t exist!' ;
/*
* =========================
* Directory / file settings
* =========================
*/
2011-05-20 14:44:35 +02:00
2010-11-02 13:05:18 +01:00
// The root directory, including the trailing slash, for Tinyboard.
2010-11-30 09:12:35 +01:00
// examples: '/', 'http://boards.chan.org/', '/chan/'
2011-05-18 08:00:33 +02:00
$config [ 'root' ] = ( str_replace ( '\\' , '/' , dirname ( $_SERVER [ 'REQUEST_URI' ])) == '/' ? '/' : str_replace ( '\\' , '/' , dirname ( $_SERVER [ 'REQUEST_URI' ])) . '/' );
2011-02-12 07:25:15 +01:00
2011-10-03 15:48:09 +02:00
// If for some reason the folders and static HTML index files aren't in the current working direcotry,
// enter the directory path here. Otherwise, keep it false.
$config [ 'root_file' ] = false ;
$config [ 'file_index' ] = 'index.html' ;
$config [ 'file_page' ] = '%d.html' ;
$config [ 'file_mod' ] = 'mod.php' ;
$config [ 'file_post' ] = 'post.php' ;
$config [ 'file_script' ] = 'main.js' ;
// Board directory, followed by a forward-slash (/). (%s is board abbreviation)
$config [ 'board_path' ] = '%s/' ;
2011-02-12 07:25:15 +01:00
$config [ 'dir' ][ 'img' ] = 'src/' ;
$config [ 'dir' ][ 'thumb' ] = 'thumb/' ;
$config [ 'dir' ][ 'res' ] = 'res/' ;
// For load balancing, having a seperate server (and domain/subdomain) for serving static content is possible.
// This can either be a directory or a URL (eg. http://static.example.org/)
2011-02-16 09:25:50 +01:00
//$config['dir']['static'] = $config['root'] . 'static/';
2011-02-12 07:25:15 +01:00
// Where to store the .html templates. This folder and templates must exist or fatal errors will be thrown.
$config [ 'dir' ][ 'template' ] = getcwd () . '/templates' ;
2011-05-27 17:47:59 +02:00
// For the themes (homepages, etc.)
$config [ 'dir' ][ 'themes' ] = getcwd () . '/templates/themes' ;
2011-04-13 15:47:47 +02:00
// Same as above, but a URI (accessable by web interface, not locally)
2011-05-27 17:47:59 +02:00
$config [ 'dir' ][ 'themes_uri' ] = 'templates/themes' ;
2011-04-13 15:47:47 +02:00
// Homepage directory
$config [ 'dir' ][ 'home' ] = '' ;
2011-01-02 05:30:20 +01:00
// Static images
// These can be URLs OR base64 (data URI scheme)
2011-02-16 09:25:50 +01:00
//$config['image_sticky'] = $config['dir']['static'] . 'sticky.gif';
//$config['image_locked'] = $config['dir']['static'] . 'locked.gif';
2011-10-10 13:37:39 +02:00
//$config['image_bumplocked'] = $config['dir']['static'] . 'sage.gif';
2011-04-12 20:08:59 +02:00
//$config['image_deleted'] = $config['dir']['static'] . 'deleted.';
//$config['image_zip'] = $config['dir']['static'] . 'zip.';
2011-01-02 05:30:20 +01:00
2011-03-17 08:56:18 +01:00
// If you want to put images and other dynamic-static stuff on another (preferably cookieless) domain, you can use this:
2011-10-03 15:48:09 +02:00
// This will override $config['root'] and $config['dir']['...'] directives.
2011-03-17 08:56:18 +01:00
// "%s" will get replaced with $board['dir'], which usually includes a trailing slash. To avoid double slashes, you don't need
// to put a slash after %s
// $config['uri_thumb'] = 'http://images.example.org/%sthumb/';
// $config['uri_img'] = 'http://images.example.org/%ssrc/';
2011-10-03 15:48:09 +02:00
// Set custom locations for stylesheets, scripts and maybe a banner.
// This can be good for load balancing across multiple servers or hostnames.
// $config['url_stylesheet'] = 'http://static.example.org/style.css'; // main/base stylesheet
// $config['url_javascript'] = 'http://static.example.org/main.js';
// $config['url_favicon'] = '/favicon.gif';
2011-02-12 07:25:15 +01:00
2011-10-03 15:48:09 +02:00
/*
* ====================
* Mod settings
* ====================
*/
// Server-side confirm button for actions like deleting posts, for when Javascript is disabled or the DOM isn't loaded.
$config [ 'mod' ][ 'server-side_confirm' ] = true ;
2011-01-18 14:41:43 +01:00
2010-12-02 08:02:04 +01:00
// Whether or not to lock moderator sessions to the IP address that was logged in with.
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'lock_ip' ] = true ;
2011-10-03 15:48:09 +02:00
2010-12-02 08:02:04 +01:00
// The page that is first shown when a moderator logs in. Defaults to the dashboard.
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'default' ] = '/' ;
2011-10-03 15:48:09 +02:00
2011-02-12 07:25:15 +01:00
// Don't even display MySQL password to administrators (in the configuration page).
$config [ 'mod' ][ 'never_reveal_password' ] = true ;
2010-12-02 08:02:04 +01:00
2011-10-03 15:48:09 +02:00
// Mod links (full HTML)
// Correspond to above permission directives
$config [ 'mod' ][ 'link_delete' ] = '[D]' ;
$config [ 'mod' ][ 'link_ban' ] = '[B]' ;
$config [ 'mod' ][ 'link_bandelete' ] = '[B&D]' ;
$config [ 'mod' ][ 'link_deletefile' ] = '[F]' ;
$config [ 'mod' ][ 'link_deletebyip' ] = '[D+]' ;
$config [ 'mod' ][ 'link_sticky' ] = '[Sticky]' ;
$config [ 'mod' ][ 'link_desticky' ] = '[-Sticky]' ;
$config [ 'mod' ][ 'link_lock' ] = '[Lock]' ;
$config [ 'mod' ][ 'link_unlock' ] = '[-Lock]' ;
2011-10-10 13:37:39 +02:00
$config [ 'mod' ][ 'link_bumplock' ] = '[Sage]' ;
$config [ 'mod' ][ 'link_bumpunlock' ] = '[-Sage]' ;
2011-10-03 15:48:09 +02:00
// Moderator capcodes
$config [ 'capcode' ] = ' <a class="capcode">## %s</a>' ;
// Custom capcodes, by example:
// "## Custom" becomes lightgreen, italic and bold
//$config['custom_capcode']['Custom'] ='<a class="capcode" style="color:lightgreen;font-style:italic;font-weight:bold"> ## %s</a>';
// "## Mod" makes everything purple, including the name and tripcode
//$config['custom_capcode']['Mod'] = Array(
// '<a class="capcode" style="color:purple"> ## %s</a>',
// 'color:purple', // Change name style; optional
// 'color:purple' // Change tripcode style; optional
//);
// "## Admin" makes everything red and bold, including the name and tripcode
//$config['custom_capcode']['Admin'] = Array(
// '<a class="capcode" style="color:red;font-weight:bold"> ## %s</a>',
// 'color:red;font-weight:bold', // Change name style; optional
// 'color:red;font-weight:bold' // Change tripcode style; optional
//);
// Enable IP range bans (eg. "127.*.0.1", "127.0.0.*", and "12*.0.0.1" all match "127.0.0.1").
// A little more load on the database
$config [ 'ban_range' ] = true ;
// Do a DNS lookup on IP addresses to get their hostname on the IP summary page
$config [ 'mod' ][ 'dns_lookup' ] = true ;
// Show ban form on the IP summary page
$config [ 'mod' ][ 'ip_banform' ] = true ;
// How many recent posts, per board, to show in the IP summary page
$config [ 'mod' ][ 'ip_recentposts' ] = 5 ;
// How many posts to display on the reports page
$config [ 'mod' ][ 'recent_reports' ] = 10 ;
// How many actions to show per page in the moderation log
$config [ 'mod' ][ 'modlog_page' ] = 350 ;
// Maximum number of results to display for a search, per board
$config [ 'mod' ][ 'search_results' ] = 75 ;
// Maximum number of notices to display on the moderator noticeboard
$config [ 'mod' ][ 'noticeboard_display' ] = 50 ;
// Number of entries to summarize and display on the dashboard
$config [ 'mod' ][ 'noticeboard_dashboard' ] = 5 ;
// Default public ban message
$config [ 'mod' ][ 'default_ban_message' ] = 'USER WAS BANNED FOR THIS POST' ;
// What to append to the post for public bans ("%s" is the message)
$config [ 'mod' ][ 'ban_message' ] = '<span class="public_ban">(%s)</span>' ;
// Wait indefinitely when rebuilding everything
$config [ 'mod' ][ 'rebuild_timelimit' ] = 0 ;
// PM snippet (for ?/inbox) length in characters
$config [ 'mod' ][ 'snippet_length' ] = 75 ;
// Probably best not to change these:
if ( ! defined ( 'JANITOR' )) {
define ( 'JANITOR' , 0 , true );
2011-02-16 09:38:08 +01:00
define ( 'MOD' , 1 , true );
define ( 'ADMIN' , 2 , true );
}
2010-12-02 10:55:56 +01:00
2011-10-03 15:48:09 +02:00
/*
* ====================
* Mod permissions
* ====================
*/
2011-07-03 15:11:31 +02:00
// Don't worry about per-board moderators. Let all mods moderate any board.
2011-07-08 15:03:12 +02:00
$config [ 'mod' ][ 'skip_per_board' ] = true ;
2011-07-03 15:11:31 +02:00
2010-12-16 16:20:16 +01:00
/* Post Controls */
2010-12-12 16:44:43 +01:00
// View IP addresses
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'show_ip' ] = MOD ;
2010-12-12 16:44:43 +01:00
// Delete a post
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'delete' ] = JANITOR ;
2010-12-12 16:44:43 +01:00
// Ban a user for a post
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'ban' ] = MOD ;
2010-12-12 16:44:43 +01:00
// Ban and delete (one click; instant)
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'bandelete' ] = MOD ;
2011-02-17 14:36:50 +01:00
// Remove bans
$config [ 'mod' ][ 'unban' ] = MOD ;
2010-12-12 16:44:43 +01:00
// Delete file (and keep post)
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'deletefile' ] = JANITOR ;
2010-12-12 16:44:43 +01:00
// Delete all posts by IP
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'deletebyip' ] = MOD ;
2010-12-16 07:04:33 +01:00
// Sticky a thread
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'sticky' ] = MOD ;
2011-01-02 15:23:34 +01:00
// Lock a thread
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'lock' ] = MOD ;
2011-01-02 15:33:57 +01:00
// Post in a locked thread
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'postinlocked' ] = MOD ;
2011-10-10 13:37:39 +02:00
// Prevent a thread from being bumped
$config [ 'mod' ][ 'bumplock' ] = MOD ;
// View whether a thread has been bumplocked ("-1" to allow non-mods to see too)
$config [ 'mod' ][ 'view_bumplock' ] = MOD ;
// Post bypass unoriginal content check on robot-enabled boards
2011-02-16 10:38:28 +01:00
$config [ 'mod' ][ 'postunoriginal' ] = ADMIN ;
2011-02-17 07:07:22 +01:00
// Bypass flood check
$config [ 'mod' ][ 'flood' ] = ADMIN ;
2011-02-03 10:28:14 +01:00
// Raw HTML posting
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'rawhtml' ] = MOD ;
2010-12-12 16:44:43 +01:00
2010-12-16 16:20:16 +01:00
/* Administration */
2011-02-12 07:25:15 +01:00
// Display the contents of instance-config.php
$config [ 'mod' ][ 'show_config' ] = ADMIN ;
2011-02-20 07:19:57 +01:00
// View the report queue
$config [ 'mod' ][ 'reports' ] = JANITOR ;
// Dismiss an abuse report
$config [ 'mod' ][ 'report_dismiss' ] = JANITOR ;
// Dismiss all abuse reports by an IP
$config [ 'mod' ][ 'report_dismiss_ip' ] = JANITOR ;
2011-02-06 14:38:01 +01:00
// View list of bans
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'view_banlist' ] = MOD ;
2011-02-06 14:38:01 +01:00
// View the username of the mod who made a ban
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'view_banstaff' ] = MOD ;
// If the moderator doesn't fit the $config['mod']['view_banstaff''] (previous) permission,
2011-02-06 14:38:01 +01:00
// show him just a "?" instead. Otherwise, it will be "Mod" or "Admin"
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'view_banquestionmark' ] = false ;
2011-02-06 14:38:01 +01:00
// Show expired bans in the ban list (they are kept in cache until the culprit returns)
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'view_banexpired' ] = true ;
2011-02-17 14:36:50 +01:00
// View ban for IP address
2011-10-01 08:13:23 +02:00
$config [ 'mod' ][ 'view_ban' ] = $config [ 'mod' ][ 'view_banlist' ];
2011-04-05 09:36:00 +02:00
// View IP address notes
$config [ 'mod' ][ 'view_notes' ] = JANITOR ;
// Create notes
2011-10-01 08:13:23 +02:00
$config [ 'mod' ][ 'create_notes' ] = $config [ 'mod' ][ 'view_notes' ];
2011-04-05 09:36:00 +02:00
// Remote notes
$config [ 'mod' ][ 'remove_notes' ] = ADMIN ;
2010-12-16 16:20:16 +01:00
// Create a new board
2011-02-12 07:25:15 +01:00
$config [ 'mod' ][ 'newboard' ] = ADMIN ;
2011-02-22 07:38:38 +01:00
// Manage existing boards (change title, etc)
$config [ 'mod' ][ 'manageboards' ] = ADMIN ;
// Delete a board
$config [ 'mod' ][ 'deleteboard' ] = ADMIN ;
2011-03-02 07:15:37 +01:00
// List/manage users
$config [ 'mod' ][ 'manageusers' ] = MOD ;
// Promote/demote users
$config [ 'mod' ][ 'promoteusers' ] = ADMIN ;
// Edit any users' login information
$config [ 'mod' ][ 'editusers' ] = ADMIN ;
2011-03-27 17:41:06 +02:00
// Change user's own password
$config [ 'mod' ][ 'change_password' ] = JANITOR ;
2011-03-02 07:15:37 +01:00
// Delete a user
$config [ 'mod' ][ 'deleteusers' ] = ADMIN ;
// Create a user
$config [ 'mod' ][ 'createusers' ] = ADMIN ;
2011-03-02 07:51:29 +01:00
// View the moderation log
$config [ 'mod' ][ 'modlog' ] = ADMIN ;
2011-03-17 08:56:18 +01:00
// Create a PM (viewing mod usernames)
$config [ 'mod' ][ 'create_pm' ] = JANITOR ;
2011-04-10 21:15:15 +02:00
// Read any PM, sent to or from anybody
$config [ 'mod' ][ 'master_pm' ] = ADMIN ;
2011-03-26 16:36:32 +01:00
// Rebuild everything
$config [ 'mod' ][ 'rebuild' ] = ADMIN ;
2011-03-29 15:56:38 +02:00
// Search through posts
$config [ 'mod' ][ 'search' ] = JANITOR ;
2011-03-30 12:47:06 +02:00
// Read the moderator noticeboard
$config [ 'mod' ][ 'noticeboard' ] = JANITOR ;
// Post to the moderator noticeboard
$config [ 'mod' ][ 'noticeboard_post' ] = MOD ;
// Delete entries from the noticeboard
$config [ 'mod' ][ 'noticeboard_delete' ] = ADMIN ;
2011-04-03 10:20:55 +02:00
// Public ban messages; attached to posts
$config [ 'mod' ][ 'public_ban' ] = MOD ;
2011-04-13 15:47:47 +02:00
// Manage and install themes for homepage
$config [ 'mod' ][ 'themes' ] = ADMIN ;
2011-04-13 16:24:49 +02:00
// Post news entries
$config [ 'mod' ][ 'news' ] = ADMIN ;
// Custom name when posting news
$config [ 'mod' ][ 'news_custom' ] = ADMIN ;
// Delete news entries
$config [ 'mod' ][ 'news_delete' ] = ADMIN ;
2010-12-16 16:20:16 +01:00
2011-10-03 15:48:09 +02:00
/*
* ====================
* Other / uncategorized
* ====================
*/
// Meta keywords. It's probably best to include these in per-board configurations.
2011-03-28 07:53:57 +02:00
//$config['meta_keywords'] = 'chan,anonymous discussion,imageboard,tinyboard';
2011-04-06 10:31:26 +02:00
// Link imageboard to your Google Analytics account to track users and provide marketing insights.
// $config['google_analytics'] = 'UA-xxxxxxx-yy';
2011-04-22 16:24:15 +02:00
// Keep the Google Analytics cookies to one domain -- ga._setDomainName()
// $config['google_analytics_domain'] = 'www.example.org';
2011-04-13 14:21:07 +02:00
2011-10-03 15:48:09 +02:00
// If you use Varnish, Squid, or any similar caching reverse-proxy in front of Tinyboard,
2011-05-21 17:12:57 +02:00
// you can configure Tinyboard to PURGE files when they're written to
//$config['purge'] = Array(
// Array('127.0.0.1', 80)
2011-05-21 17:19:06 +02:00
// Array('127.0.0.1', 80, 'example.org')
2011-05-21 17:12:57 +02:00
//);
// Connection timeout, in seconds
$config [ 'purge_timeout' ] = 3 ;
2011-06-04 10:57:37 +02:00
// Remote servers
// http://tinyboard.org/wiki/index.php?title=Multiple_Servers
2011-08-04 07:47:34 +02:00
//$config['remote']['static'] = Array(
// 'host' => 'static.example.org',
// 'auth' => Array(
// 'method' => 'plain',
// 'username' => 'username',
// 'password' => 'password!123'
// ),
// 'type' => 'scp'
2011-06-04 10:57:37 +02:00
//);
2011-10-03 15:48:09 +02:00
// Complex regular expression to catch URLs
$config [ 'url_regex' ] = '/' . '(https?|ftp):\/\/' . '(([\w\-]+\.)+[a-zA-Z]{2,6}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' . '(:\d+)?' . '(\/([\w\-~.#\/?=&;:+%!*\[\]@$\'()+,|]+)?)?' . '/' ;
// INSANE regular expression for IPv6 addresses
$config [ 'ipv6_regex' ] = '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?' ;
2011-06-15 20:59:16 +02:00
2011-04-13 14:21:07 +02:00
if ( $_SERVER [ 'SCRIPT_FILENAME' ] == str_replace ( '\\' , '/' , __FILE__ )) {
// You cannot request this file directly.
header ( 'Location: ../' , true , 302 );
exit ;
}
2011-06-15 19:58:17 +02:00
?>