diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..8108863c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+# static html
+*.html
+
+# directories
+res/
+src/
+thumb/
+
+# instance-config
+inc/instance-config.php
\ No newline at end of file
diff --git a/README.md b/README.md
index 3c9a6bf3..815e3a4a 100644
--- a/README.md
+++ b/README.md
@@ -1,45 +1,46 @@
-# Tinyboard - A lightweight PHP imageboard.
-
-## About
-Tinyboard is an imageboard software package written in PHP. It aims to maintain a stable, fast, clean and user-friendly engine for imageboards. Development for Tinyboard started in October 2010 and the project is being lead by [OmegaSDG][o] ("Omega Software Develop Group"). You can contact the development team over IRC at irc.n0v4.com #tinyboard.
-
-Tinyboard is not currently at a stable state.
-
-[o]: http://omegadev.org/
-
-## Installation
- 1. Tinyboard requires a MySQL database and a user to work. Create one.
- 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
- 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
- - ./src
- - ./thumb
- - . (document root)
- 5. Ensure everything is okay by running [test.php][t] in a browser. The script will try and help you correct your errors.
- 6. Run the [post.php][p] script. It should create an index.html and redirect you to it if everything is okay.
- 7. Optional (highly recommended): Either delete or chmod as unreadable the following files: [test.php][t], [install.sql][i], and this [README][r].
-
-[t]: http://github.com/savetheinternet/Tinyboard/blob/master/test.php
-[p]: http://github.com/savetheinternet/Tinyboard/blob/master/post.php
-[c]: http://github.com/savetheinternet/Tinyboard/blob/master/inc/config.php
-[i]: http://github.com/savetheinternet/Tinyboard/blob/master/install.sql
-[r]: http://github.com/savetheinternet/Tinyboard/blob/master/README.md
-
-## License
-Copyright (c) 2010 by Omega Software Development Group
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above copyright
-notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-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.
\ No newline at end of file
+# Tinyboard - A lightweight PHP imageboard.
+
+## About
+Tinyboard is an imageboard software package written in PHP. It aims to maintain a stable, fast, clean and user-friendly engine for imageboards. Development for Tinyboard started in October 2010 and the project is being lead by [OmegaSDG][o] ("Omega Software Develop Group"). You can contact the development team over IRC at irc.n0v4.com #tinyboard.
+
+Tinyboard is not currently at a stable state.
+
+[o]: http://omegadev.org/
+
+## Installation
+ 1. Tinyboard requires a MySQL database and a user to work. Create one.
+ 2. Import 'install.sql' into the database. There are several ways to do this.
+ - using phpMyAdmin
+ - `mysql -uUSERNAME -pPASSWORD DATABASE < install.sql`
+ 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
+ - ./src
+ - ./thumb
+ - . (document root)
+ 5. Ensure everything is okay by running [test.php][t] in a browser. The script will try and help you correct your errors.
+ 6. Run the [post.php][p] script. It should create an index.html and redirect you to it if everything is okay.
+ 7. Optional (highly recommended): Either delete or chmod as unreadable the following files: [test.php][t], [install.sql][i], and this [README][r].
+
+[t]: http://github.com/savetheinternet/Tinyboard/blob/master/test.php
+[p]: http://github.com/savetheinternet/Tinyboard/blob/master/post.php
+[c]: http://github.com/savetheinternet/Tinyboard/blob/master/inc/config.php
+[i]: http://github.com/savetheinternet/Tinyboard/blob/master/install.sql
+[r]: http://github.com/savetheinternet/Tinyboard/blob/master/README.md
+
+## License
+Copyright (c) 2010 by Omega Software Development Group
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+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.
+
diff --git a/inc/config.php b/inc/config.php
index 24c84fbb..6f07e640 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -1,36 +1,46 @@
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
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 ("�")
- 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
}
-?>
\ No newline at end of file
+?>
diff --git a/inc/display.php b/inc/display.php
index b988e3bc..132dcac5 100644
--- a/inc/display.php
+++ b/inc/display.php
@@ -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'=>"