Merge branch 'master' of github.com:savetheinternet/Tinyboard

Conflicts:
	inc/config.php
	inc/functions.php
	post.php
This commit is contained in:
Savetheinternet 2010-11-05 01:35:53 +11:00
commit 599530e935
8 changed files with 185 additions and 86 deletions

10
.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
# static html
*.html
# directories
res/
src/
thumb/
# instance-config
inc/instance-config.php

View File

@ -12,7 +12,7 @@ Tinyboard is not currently at a stable state.
2. Import 'install.sql' into the database. There are several ways to do this.
- using phpMyAdmin
- `mysql -uUSERNAME -pPASSWORD DATABASE < install.sql`
3. Edit '[inc/config.php][c]' to suit your installation
3. Edit 'instance-config.php' to suit your installation. You should copy some values from '[inc/config.php][c]' to redefine them in the instance-config.
4. Make sure that the directories used by Tinyboard are writable. Depending on your setup, you may need to `chmod` the directories to 777.
The default directories are:
- ./res
@ -43,3 +43,4 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

View File

@ -1,36 +1,46 @@
<?php
/*
* WARNING: This is a project-wide configuration file shared by all Tinyboard users around the globe.
* If you would like to make instance-specific changes to your own setup, please use instance-config.php.
*
* This is the default configuration. You can copy values from here and use them in
* your instance-config.php
*
*/
// Database stuff
define('MY_SERVER', 'localhost');
define('MY_USER', '');
define('MY_PASSWORD', '');
define('MY_DATABASE', '');
define('MY_SERVER', 'localhost', true);
define('MY_USER', '', true);
define('MY_PASSWORD', '', true);
define('MY_DATABASE', '', true);
// The name of the session cookie (PHP's $_SESSION)
define('SESS_COOKIE', 'imgboard');
define('SESS_COOKIE', 'imgboard', true);
// Used to safely determine when the user was first seen, to prevent floods.
// time()
define('TIME_COOKIE', 'arrived');
define('TIME_COOKIE', 'arrived', true);
// HASH_COOKIE contains an MD5 hash of TIME_COOKIE+SALT for verification.
define('HASH_COOKIE', 'hash');
define('HASH_COOKIE', 'hash', true);
// How long should the cookies last (in seconds)
define('COOKIE_EXPIRE', 15778463); //6 months
define('COOKIE_EXPIRE', 15778463, true); //6 months
define('SALT', 'wefaw98YHEWUFuo');
define('SALT', 'wefaw98YHEWUFuo', true);
// How many seconds before you can post, after the first visit
define('LURKTIME', 30);
define('LURKTIME', 30, true);
// Max body length
define('MAX_BODY', 1800);
define('MAX_BODY', 1800, true);
define('THREADS_PER_PAGE', 10);
define('MAX_PAGES', 5);
define('THREADS_PREVIEW', 5);
define('THREADS_PER_PAGE', 10, true);
define('MAX_PAGES', 5, true);
define('THREADS_PREVIEW', 5, true);
// Error messages
<<<<<<< HEAD
define('ERROR_LURK', 'Lurk some more before posting.');
define('ERROR_BOT', 'You look like a bot.');
define('ERROR_TOOLONG', 'The %s field was too long.');
@ -42,16 +52,33 @@
define('ERR_INVALIDIMG','Invalid image.');
define('ERR_FILESIZE', 'Maximum file size: %maxsz% bytes<br>Your file\'s size: %filesz% bytes');
define('ERR_MAXSIZE', 'The file was too big.');
=======
define('ERROR_LURK', 'Lurk some more before posting.', true);
define('ERROR_BOT', 'You look like a bot.', true);
define('ERROR_TOOLONG', 'The %s field was too long.', true);
define('ERROR_TOOLONGBODY', 'The body was too long.', true);
define('ERROR_TOOSHORTBODY', 'The body was too short or empty.', true);
define('ERROR_NOIMAGE', 'You must upload an image.', true);
define('ERROR_NOMOVE', 'The server failed to handle your upload.', true);
define('ERROR_FILEEXT', 'Unsupported image format.', true);
define('ERR_INVALIDIMG','Invalid image.', true);
define('ERR_FILESIZE', 'Maximum file size: %maxsz% bytes<br>Your file\'s size: %filesz% bytes', true);
define('ERR_MAXSIZE', 'The file was too big.', true);
>>>>>>> 6cdaed486e6c373b52f639d3e92d7365242f6a89
// For resizing, max values
define('THUMB_WIDTH', 200);
define('THUMB_HEIGHT', 200);
define('THUMB_WIDTH', 200, true);
define('THUMB_HEIGHT', 200, true);
// Maximum image upload size in bytes
define('MAX_FILESIZE', 1048576); // 10MB
define('MAX_FILESIZE', 10*1024*1024, true); // 10MB
// Maximum image dimensions
define('MAX_WIDTH', 10000);
define('MAX_HEIGHT', MAX_WIDTH);
define('MAX_WIDTH', 10000, true);
define('MAX_HEIGHT', MAX_WIDTH, true);
define('ALLOW_ZIP', true, true);
define('ZIP_IMAGE', 'src/zip.png', true);
define('ALLOW_ZIP', true);
define('ZIP_IMAGE', 'src/zip.png');
@ -61,44 +88,54 @@
Redraw the image using GD functions to strip any excess data (commonly ZIP archives)
WARNING: Very beta. Currently strips animated GIFs too :(
**/
define('REDRAW_IMAGE', true);
define('REDRAW_IMAGE', false, true);
// Redrawing configuration
define('JPEG_QUALITY', 100);
define('REDRAW_GIF', false);
define('JPEG_QUALITY', 100, true);
define('REDRAW_GIF', false, true);
// Display the aspect ratio in a post's file info
<<<<<<< HEAD
define('SHOW_RATIO', true);
=======
define('SHOW_RATIO', true, true);
>>>>>>> 6cdaed486e6c373b52f639d3e92d7365242f6a89
define('DIR_IMG', 'src/');
define('DIR_THUMB', 'thumb/');
define('DIR_RES', 'res/');
define('DIR_IMG', 'src/', true);
define('DIR_THUMB', 'thumb/', true);
define('DIR_RES', 'res/', true);
// The root directory, including the trailing slash, for Tinyboard.
// examples: '/', '/board/', '/chan/'
define('ROOT', '/');
define('POST_URL', ROOT . 'post.php');
define('FILE_INDEX', 'index.html');
define('FILE_PAGE', '%d.html');
define('ROOT', '/', true);
define('POST_URL', ROOT . 'post.php', true);
define('FILE_INDEX', 'index.html', true);
define('FILE_PAGE', '%d.html', true);
// Automatically convert things like "..." to Unicode characters ("<22>")
define('AUTO_UNICODE', true);
define('AUTO_UNICODE', true, true);
// Whether to turn URLs into functional links
define('MARKUP_URLS', true);
define('URL_REGEX', '/' . '(https?|ftp):\/\/' . '([\w\-]+\.)+[a-zA-Z]{2,6}' . '(\/([\w\-~\.#\/?=&;:+%]+))?' . '/');
define('MARKUP_URLS', true, true);
define('URL_REGEX', '/' . '(https?|ftp):\/\/' . '([\w\-]+\.)+[a-zA-Z]{2,6}' . '(\/([\w\-~\.#\/?=&;:+%]+))?' . '/', true);
// Allowed file extensions
$allowed_ext = Array('jpg', 'jpeg', 'bmp', 'gif', 'png');
$allowed_ext = Array('jpg', 'jpeg', 'bmp', 'gif', 'png', true);
define('BUTTON_NEWTOPIC', 'New Topic');
define('BUTTON_REPLY', 'New Reply');
define('BUTTON_NEWTOPIC', 'New Topic', true);
define('BUTTON_REPLY', 'New Reply', true);
define('ALWAYS_NOKO', false);
define('ALWAYS_NOKO', false, true);
define('URL_MATCH', '/^' . (@$_SERVER['HTTPS']?'https':'http').':\/\/'.$_SERVER['HTTP_HOST'] . '(' . preg_quote(ROOT, '/') . '|' . preg_quote(ROOT, '/') . '' . preg_quote(FILE_INDEX, '/') . '|' . preg_quote(ROOT, '/') . '' . str_replace('%d', '\d+', preg_quote(FILE_PAGE, '/')) . ')$/');
define('URL_MATCH', '/^' . (@$_SERVER['HTTPS']?'https':'http').':\/\/'.$_SERVER['HTTP_HOST'] . '(' . preg_quote(ROOT, '/') . '|' . preg_quote(ROOT, '/') . '' . preg_quote(FILE_INDEX, '/') . '|' . preg_quote(ROOT, '/') . '' . str_replace('%d', '\d+', preg_quote(FILE_PAGE, '/')) . ')$/', true);
if(!defined('IS_INSTALLATION')) {
<<<<<<< HEAD
if(!file_exists(DIR_IMG)) @mkdir(DIR_IMG) or error("Couldn't create " . DIR_IMG . ". Install manually.");
if(!file_exists(DIR_THUMB)) @mkdir(DIR_THUMB) or error("Couldn't create " . DIR_IMG . ". Install manually.");
if(!file_exists(DIR_RES)) @mkdir(DIR_RES) or error("Couldn't create " . DIR_IMG . ". Install manually.");
=======
if(!file_exists(DIR_IMG)) @mkdir(DIR_IMG) or error("Couldn't create " . DIR_IMG . ". Install manually.", true);
if(!file_exists(DIR_THUMB)) @mkdir(DIR_THUMB) or error("Couldn't create " . DIR_IMG . ". Install manually.", true);
if(!file_exists(DIR_RES)) @mkdir(DIR_RES) or error("Couldn't create " . DIR_IMG . ". Install manually.", true);
>>>>>>> 6cdaed486e6c373b52f639d3e92d7365242f6a89
}
?>

View File

@ -14,8 +14,21 @@
return round($size, 2).$units[$i];
}
function commaize($n) {
$n = strval($n);
return (intval($n) < 1000) ? $n : commaize(substr($n, 0, -3)) . ',' . substr($n, -3);
}
function error($message) {
die(Element('page.html', Array('index' => ROOT, 'title'=>'Error', 'subtitle'=>'An error has occured.', 'body'=>"<h1>$message</h1><p style=\"text-align:center;\"><a href=\"" . ROOT . FILE_INDEX . "\">Go back</a>.</p>")));
die(Element('page.html', Array(
'index'=>ROOT,
'title'=>'Error',
'subtitle'=>'An error has occured.',
'body'=>"<center>" .
"<h2>$message</h2>" .
"<p><a href=\"" . ROOT . FILE_INDEX . "\">Go back</a>.</p>" .
"</center>"
)));
}
class Post {
@ -181,3 +194,4 @@
}
};
?>

View File

@ -3,16 +3,23 @@
$replaces = array();
foreach($vars as $k => $v) {
$replaces[$delim . $k . $delim] = $v;
<<<<<<< HEAD
}
=======
}
>>>>>>> 6cdaed486e6c373b52f639d3e92d7365242f6a89
return str_replace(array_keys($replaces),
array_values($replaces), $str);
}
<<<<<<< HEAD
function commaize($n) {
$n = strval($n);
return (intval($n) < 1000) ? $n : commaize(substr($n, 0, -3)) . ',' . substr($n, -3);
}
=======
>>>>>>> 6cdaed486e6c373b52f639d3e92d7365242f6a89
function sql_open() {
global $sql;
$sql = @mysql_connect(MY_SERVER, MY_USER, MY_PASSWORD) or error('Database error.');
@ -569,3 +576,4 @@
return chr($n & 255).chr(($n >> 8) & 255);
}
?>

19
inc/instance-config.php Normal file
View File

@ -0,0 +1,19 @@
<?php
/*
* Instance Configuration
* ----------------------
* Edit this file and not config.php for imageboard configuration.
*
* You can copy values from config.php (defaults) and paste them here.
*/
/*
define('MY_SERVER', 'localhost', true);
define('MY_USER', '', true);
define('MY_PASSWORD', '', true);
define('MY_DATABASE', '', true);
// define('FOO', 'bar');
*/
?>

View File

@ -2,6 +2,9 @@
require 'inc/functions.php';
require 'inc/display.php';
require 'inc/template.php';
if (file_exists('inc/instance-config.php')) {
require 'inc/instance-config.php';
}
require 'inc/config.php';
require 'inc/user.php';
@ -78,7 +81,11 @@
$size = $_FILES['file']['size'];
if($size > MAX_FILESIZE)
error(sprintf3(ERR_FILESIZE, array(
<<<<<<< HEAD
'sz'=>commaize($size),
=======
'filesz'=>commaize($size),
>>>>>>> 6cdaed486e6c373b52f639d3e92d7365242f6a89
'maxsz'=>commaize(MAX_FILESIZE))));
}

View File

@ -4,6 +4,9 @@
require 'inc/functions.php';
require 'inc/display.php';
require 'inc/template.php';
if (file_exists('inc/instance-config.php')) {
require 'inc/instance-config.php';
}
require 'inc/config.php';
require 'inc/user.php';