2015-05-05 03:00:01 +02:00
|
|
|
<?php defined('BLUDIT') or die('Bludit CMS.');
|
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Bludit version
|
2016-06-07 02:53:27 +02:00
|
|
|
define('BLUDIT_VERSION', 'v1.3');
|
2016-04-04 00:20:24 +02:00
|
|
|
define('BLUDIT_CODENAME', '');
|
2016-06-07 02:53:27 +02:00
|
|
|
define('BLUDIT_RELEASE_DATE', '2016-06-06');
|
|
|
|
define('BLUDIT_BUILD', '20160606');
|
2015-08-17 02:24:22 +02:00
|
|
|
|
2015-07-26 19:41:40 +02:00
|
|
|
// Debug mode
|
2015-07-26 19:35:29 +02:00
|
|
|
define('DEBUG_MODE', TRUE);
|
2015-08-17 02:24:22 +02:00
|
|
|
error_reporting(0); // Turn off all error reporting
|
2015-07-26 19:35:29 +02:00
|
|
|
if(DEBUG_MODE)
|
|
|
|
{
|
2015-08-17 02:24:22 +02:00
|
|
|
// Turn on all error reporting
|
2015-07-26 19:35:29 +02:00
|
|
|
ini_set("display_errors", 1);
|
|
|
|
ini_set('display_startup_errors',1);
|
|
|
|
ini_set("track_errors", 1);
|
|
|
|
ini_set("html_errors", 1);
|
|
|
|
error_reporting(E_ALL | E_STRICT | E_NOTICE);
|
|
|
|
}
|
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// PHP paths
|
2015-06-22 00:01:07 +02:00
|
|
|
// PATH_ROOT and PATH_BOOT are defined in index.php
|
2016-01-21 01:29:01 +01:00
|
|
|
define('PATH_LANGUAGES', PATH_ROOT.'bl-languages'.DS);
|
|
|
|
define('PATH_THEMES', PATH_ROOT.'bl-themes'.DS);
|
|
|
|
define('PATH_PLUGINS', PATH_ROOT.'bl-plugins'.DS);
|
|
|
|
define('PATH_KERNEL', PATH_ROOT.'bl-kernel'.DS);
|
|
|
|
define('PATH_CONTENT', PATH_ROOT.'bl-content'.DS);
|
|
|
|
|
2015-08-03 02:49:12 +02:00
|
|
|
define('PATH_ABSTRACT', PATH_KERNEL.'abstract'.DS);
|
|
|
|
define('PATH_RULES', PATH_KERNEL.'boot'.DS.'rules'.DS);
|
|
|
|
define('PATH_HELPERS', PATH_KERNEL.'helpers'.DS);
|
|
|
|
define('PATH_AJAX', PATH_KERNEL.'ajax'.DS);
|
|
|
|
define('PATH_JS', PATH_KERNEL.'js'.DS);
|
2016-01-21 01:29:01 +01:00
|
|
|
|
2015-08-03 02:49:12 +02:00
|
|
|
define('PATH_POSTS', PATH_CONTENT.'posts'.DS);
|
|
|
|
define('PATH_PAGES', PATH_CONTENT.'pages'.DS);
|
|
|
|
define('PATH_DATABASES', PATH_CONTENT.'databases'.DS);
|
2015-06-22 00:01:07 +02:00
|
|
|
define('PATH_PLUGINS_DATABASES', PATH_CONTENT.'databases'.DS.'plugins'.DS);
|
2015-12-28 23:28:42 +01:00
|
|
|
define('PATH_TMP', PATH_CONTENT.'tmp'.DS);
|
2015-08-03 02:49:12 +02:00
|
|
|
define('PATH_UPLOADS', PATH_CONTENT.'uploads'.DS);
|
2016-01-21 01:29:01 +01:00
|
|
|
|
2015-11-15 22:37:34 +01:00
|
|
|
define('PATH_UPLOADS_PROFILES', PATH_UPLOADS.'profiles'.DS);
|
2015-12-28 23:28:42 +01:00
|
|
|
define('PATH_UPLOADS_THUMBNAILS', PATH_UPLOADS.'thumbnails'.DS);
|
2016-01-21 01:29:01 +01:00
|
|
|
|
2015-11-15 22:37:34 +01:00
|
|
|
define('PATH_ADMIN', PATH_KERNEL.'admin'.DS);
|
2015-08-03 02:49:12 +02:00
|
|
|
define('PATH_ADMIN_THEMES', PATH_ADMIN.'themes'.DS);
|
2015-06-22 00:01:07 +02:00
|
|
|
define('PATH_ADMIN_CONTROLLERS', PATH_ADMIN.'controllers'.DS);
|
2015-08-03 02:49:12 +02:00
|
|
|
define('PATH_ADMIN_VIEWS', PATH_ADMIN.'views'.DS);
|
2015-06-22 00:01:07 +02:00
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Log separator
|
|
|
|
define('LOG_SEP', ' | ');
|
|
|
|
|
2015-05-15 00:07:45 +02:00
|
|
|
// JSON pretty print
|
|
|
|
if(!defined('JSON_PRETTY_PRINT')) {
|
|
|
|
define('JSON_PRETTY_PRINT', 128);
|
|
|
|
}
|
|
|
|
|
2016-02-14 22:53:37 +01:00
|
|
|
// Protecting against Symlink attacks.
|
|
|
|
define('CHECK_SYMBOLIC_LINKS', TRUE);
|
2016-02-06 21:35:12 +01:00
|
|
|
|
2015-11-07 01:23:50 +01:00
|
|
|
// Alert status ok
|
|
|
|
define('ALERT_STATUS_OK', 0);
|
|
|
|
|
|
|
|
// Alert status fail
|
|
|
|
define('ALERT_STATUS_FAIL', 1);
|
|
|
|
|
2016-06-03 02:57:13 +02:00
|
|
|
// Amount of thumbnails shown on Bludit Quick images
|
|
|
|
define('THUMBNAILS_AMOUNT', 6);
|
|
|
|
|
|
|
|
// Thubmnails size
|
2015-12-28 23:28:42 +01:00
|
|
|
define('THUMBNAILS_WIDTH', 400);
|
|
|
|
define('THUMBNAILS_HEIGHT', 400);
|
2016-06-03 02:57:13 +02:00
|
|
|
define('THUMBNAILS_QUALITY', 100); // 100%
|
2015-12-28 23:28:42 +01:00
|
|
|
|
2016-06-03 02:57:13 +02:00
|
|
|
// Profile image size
|
|
|
|
define('PROFILE_IMG_WIDTH', 400);
|
|
|
|
define('PROFILE_IMG_HEIGHT', 400);
|
|
|
|
define('PROFILE_IMG_QUALITY', 100); // 100%
|
|
|
|
|
|
|
|
// Password salt length
|
2015-05-15 00:07:45 +02:00
|
|
|
define('SALT_LENGTH', 8);
|
|
|
|
|
2015-07-14 04:16:28 +02:00
|
|
|
// Page brake string
|
2015-07-26 02:25:13 +02:00
|
|
|
define('PAGE_BREAK', '<!-- pagebreak -->');
|
2015-07-14 04:16:28 +02:00
|
|
|
|
2015-10-31 23:54:42 +01:00
|
|
|
// No parent character, md5('No parent')
|
|
|
|
define('NO_PARENT_CHAR', '3849abb4cb7abd24c2d8dac17b216f17');
|
2015-05-05 03:00:01 +02:00
|
|
|
|
2015-07-24 05:28:25 +02:00
|
|
|
// Post per page on Manage->Posts
|
|
|
|
define('POSTS_PER_PAGE_ADMIN', 10);
|
|
|
|
|
2016-05-07 05:10:10 +02:00
|
|
|
// Cli mode status for new posts/pages
|
2016-06-07 01:41:02 +02:00
|
|
|
define('CLI_MODE', false);
|
2016-05-07 05:10:10 +02:00
|
|
|
|
2016-02-07 00:44:43 +01:00
|
|
|
// Cli mode status for new posts/pages
|
2015-08-26 05:42:32 +02:00
|
|
|
define('CLI_STATUS', 'published');
|
|
|
|
|
2016-02-07 00:44:43 +01:00
|
|
|
// Cli mode username for new posts/pages
|
|
|
|
define('CLI_USERNAME', 'admin');
|
|
|
|
|
2016-01-08 00:43:09 +01:00
|
|
|
// Database date format
|
2015-12-12 00:11:53 +01:00
|
|
|
define('DB_DATE_FORMAT', 'Y-m-d H:i:s');
|
2015-05-05 03:00:01 +02:00
|
|
|
|
2016-01-08 00:43:09 +01:00
|
|
|
// Sitemap date format
|
|
|
|
define('SITEMAP_DATE_FORMAT', 'Y-m-d');
|
|
|
|
|
2015-11-14 17:47:26 +01:00
|
|
|
// Date format for Dashboard schedule posts
|
2015-10-22 05:14:22 +02:00
|
|
|
define('SCHEDULED_DATE_FORMAT', 'd M - h:i a');
|
|
|
|
|
2015-10-20 05:14:28 +02:00
|
|
|
// Token time to live for login via email. The offset is defined by http://php.net/manual/en/datetime.modify.php
|
2015-10-24 01:23:33 +02:00
|
|
|
define('TOKEN_EMAIL_TTL', '+15 minutes');
|
2015-10-20 05:14:28 +02:00
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Charset, default UTF-8.
|
2015-06-26 06:31:53 +02:00
|
|
|
define('CHARSET', 'UTF-8');
|
|
|
|
|
2016-06-03 02:57:13 +02:00
|
|
|
// EXTREME FRIENDLY URL, TRUE for dissmiss internet standard
|
2016-06-07 01:41:02 +02:00
|
|
|
define('EXTREME_FRIENDLY_URL', true);
|
2016-06-03 02:57:13 +02:00
|
|
|
|
2015-11-20 04:21:39 +01:00
|
|
|
// Directory permissions
|
2015-12-28 23:28:42 +01:00
|
|
|
define('DIR_PERMISSIONS', 0755);
|
2015-11-20 04:21:39 +01:00
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Multibyte string extension loaded.
|
|
|
|
define('MB_STRING', extension_loaded('mbstring'));
|
|
|
|
|
2015-05-05 03:00:01 +02:00
|
|
|
if(MB_STRING)
|
|
|
|
{
|
2015-08-17 02:24:22 +02:00
|
|
|
// Set internal character encoding.
|
2015-06-26 06:31:53 +02:00
|
|
|
mb_internal_encoding(CHARSET);
|
2015-05-05 03:00:01 +02:00
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Set HTTP output character encoding.
|
2015-06-26 06:31:53 +02:00
|
|
|
mb_http_output(CHARSET);
|
2015-05-05 03:00:01 +02:00
|
|
|
}
|
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Inclde Abstract Classes
|
2015-05-05 03:00:01 +02:00
|
|
|
include(PATH_ABSTRACT.'dbjson.class.php');
|
2016-01-12 03:18:20 +01:00
|
|
|
include(PATH_ABSTRACT.'content.class.php');
|
2015-05-05 03:00:01 +02:00
|
|
|
include(PATH_ABSTRACT.'plugin.class.php');
|
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Inclde Classes
|
2015-05-05 03:00:01 +02:00
|
|
|
include(PATH_KERNEL.'dbposts.class.php');
|
|
|
|
include(PATH_KERNEL.'dbpages.class.php');
|
|
|
|
include(PATH_KERNEL.'dbusers.class.php');
|
2015-08-29 07:02:09 +02:00
|
|
|
include(PATH_KERNEL.'dbtags.class.php');
|
2015-05-05 03:00:01 +02:00
|
|
|
include(PATH_KERNEL.'dblanguage.class.php');
|
|
|
|
include(PATH_KERNEL.'dbsite.class.php');
|
|
|
|
include(PATH_KERNEL.'post.class.php');
|
|
|
|
include(PATH_KERNEL.'page.class.php');
|
2015-12-31 19:47:34 +01:00
|
|
|
include(PATH_KERNEL.'user.class.php');
|
2015-05-05 03:00:01 +02:00
|
|
|
include(PATH_KERNEL.'url.class.php');
|
|
|
|
include(PATH_KERNEL.'login.class.php');
|
|
|
|
include(PATH_KERNEL.'parsedown.class.php');
|
2015-11-16 09:47:43 +01:00
|
|
|
include(PATH_KERNEL.'parsedownextra.class.php');
|
2015-08-18 04:02:19 +02:00
|
|
|
include(PATH_KERNEL.'security.class.php');
|
2015-05-05 03:00:01 +02:00
|
|
|
|
2016-05-29 19:21:11 +02:00
|
|
|
// Include functions
|
|
|
|
include(PATH_KERNEL.'functions.php');
|
|
|
|
|
2015-08-17 02:24:22 +02:00
|
|
|
// Include Helpers Classes
|
2015-05-05 03:00:01 +02:00
|
|
|
include(PATH_HELPERS.'text.class.php');
|
|
|
|
include(PATH_HELPERS.'log.class.php');
|
|
|
|
include(PATH_HELPERS.'date.class.php');
|
|
|
|
include(PATH_HELPERS.'theme.class.php');
|
|
|
|
include(PATH_HELPERS.'session.class.php');
|
|
|
|
include(PATH_HELPERS.'redirect.class.php');
|
|
|
|
include(PATH_HELPERS.'sanitize.class.php');
|
2015-08-04 05:10:12 +02:00
|
|
|
include(PATH_HELPERS.'valid.class.php');
|
2015-10-20 05:14:28 +02:00
|
|
|
include(PATH_HELPERS.'email.class.php');
|
2015-05-05 03:00:01 +02:00
|
|
|
include(PATH_HELPERS.'filesystem.class.php');
|
|
|
|
include(PATH_HELPERS.'alert.class.php');
|
2015-07-20 05:14:12 +02:00
|
|
|
include(PATH_HELPERS.'paginator.class.php');
|
2015-11-14 17:47:26 +01:00
|
|
|
include(PATH_HELPERS.'image.class.php');
|
2015-05-05 03:00:01 +02:00
|
|
|
|
|
|
|
// Session
|
|
|
|
Session::start();
|
|
|
|
if(Session::started()===false) {
|
|
|
|
Log::set('init.php'.LOG_SEP.'Error occurred when trying to start the session.');
|
2016-01-21 01:29:01 +01:00
|
|
|
exit('Bludit. Failed to start session.');
|
2015-05-05 03:00:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Objects
|
|
|
|
$dbPosts = new dbPosts();
|
|
|
|
$dbPages = new dbPages();
|
|
|
|
$dbUsers = new dbUsers();
|
2015-08-29 07:02:09 +02:00
|
|
|
$dbTags = new dbTags();
|
2015-05-05 03:00:01 +02:00
|
|
|
$Site = new dbSite();
|
|
|
|
$Url = new Url();
|
2015-11-16 09:47:43 +01:00
|
|
|
$Parsedown = new ParsedownExtra();
|
2015-08-18 04:02:19 +02:00
|
|
|
$Security = new Security();
|
2015-05-05 03:00:01 +02:00
|
|
|
|
2016-01-21 01:29:01 +01:00
|
|
|
// --- Relative paths ---
|
|
|
|
// This paths are relative for the user / web browsing.
|
|
|
|
|
|
|
|
// Base URL
|
2015-12-09 01:56:31 +01:00
|
|
|
// The user can define the base URL.
|
|
|
|
// Left empty if you want to Bludit try to detect the base URL.
|
|
|
|
$base = '';
|
|
|
|
|
|
|
|
if( !empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['SCRIPT_NAME']) && empty($base) ) {
|
|
|
|
$base = str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_NAME']);
|
|
|
|
$base = dirname($base);
|
|
|
|
}
|
|
|
|
elseif( empty($base) ) {
|
|
|
|
$base = empty( $_SERVER['SCRIPT_NAME'] ) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
|
|
|
|
$base = dirname($base);
|
|
|
|
}
|
2015-09-18 02:37:14 +02:00
|
|
|
|
|
|
|
if($base!=DS) {
|
2015-12-09 01:56:31 +01:00
|
|
|
$base = trim($base, '/');
|
|
|
|
$base = '/'.$base.'/';
|
2015-09-18 02:37:14 +02:00
|
|
|
}
|
2015-11-14 00:41:30 +01:00
|
|
|
else {
|
|
|
|
// Workaround for Windows Web Servers
|
|
|
|
$base = '/';
|
|
|
|
}
|
2015-09-18 02:37:14 +02:00
|
|
|
|
2016-01-21 01:29:01 +01:00
|
|
|
define('HTML_PATH_ROOT', $base);
|
|
|
|
define('HTML_PATH_THEMES', HTML_PATH_ROOT.'bl-themes/');
|
|
|
|
define('HTML_PATH_THEME', HTML_PATH_THEMES.$Site->theme().'/');
|
2015-08-03 02:49:12 +02:00
|
|
|
define('HTML_PATH_THEME_CSS', HTML_PATH_THEME.'css/');
|
|
|
|
define('HTML_PATH_THEME_JS', HTML_PATH_THEME.'js/');
|
2015-09-13 03:06:20 +02:00
|
|
|
define('HTML_PATH_THEME_IMG', HTML_PATH_THEME.'img/');
|
|
|
|
|
2015-08-03 02:49:12 +02:00
|
|
|
define('HTML_PATH_ADMIN_ROOT', HTML_PATH_ROOT.'admin/');
|
2016-01-21 01:29:01 +01:00
|
|
|
define('HTML_PATH_ADMIN_THEME', HTML_PATH_ROOT.'bl-kernel/admin/themes/'.$Site->adminTheme().'/');
|
2015-11-15 22:37:34 +01:00
|
|
|
define('HTML_PATH_ADMIN_THEME_JS', HTML_PATH_ADMIN_THEME.'js/');
|
|
|
|
define('HTML_PATH_ADMIN_THEME_CSS', HTML_PATH_ADMIN_THEME.'css/');
|
2015-11-17 04:21:39 +01:00
|
|
|
define('HTML_PATH_ADMIN_THEME_IMG', HTML_PATH_ADMIN_THEME.'img/');
|
2015-11-15 22:37:34 +01:00
|
|
|
|
2016-01-21 01:29:01 +01:00
|
|
|
define('HTML_PATH_UPLOADS', HTML_PATH_ROOT.'bl-content/uploads/');
|
2015-11-15 22:37:34 +01:00
|
|
|
define('HTML_PATH_UPLOADS_PROFILES', HTML_PATH_UPLOADS.'profiles/');
|
2015-12-28 23:28:42 +01:00
|
|
|
define('HTML_PATH_UPLOADS_THUMBNAILS', HTML_PATH_UPLOADS.'thumbnails/');
|
2016-01-21 01:29:01 +01:00
|
|
|
define('HTML_PATH_PLUGINS', HTML_PATH_ROOT.'bl-plugins/');
|
2015-05-05 03:00:01 +02:00
|
|
|
|
2015-09-22 01:37:04 +02:00
|
|
|
define('JQUERY', HTML_PATH_ADMIN_THEME_JS.'jquery.min.js');
|
|
|
|
|
2016-01-21 01:29:01 +01:00
|
|
|
// --- PHP paths with dependency ---
|
|
|
|
// This paths are absolutes for the OS.
|
2016-05-18 04:36:23 +02:00
|
|
|
|
|
|
|
// Depreacted, use THEME_DIR and THEME_DIR_XXX
|
2016-01-21 01:29:01 +01:00
|
|
|
define('PATH_THEME', PATH_ROOT.'bl-themes'.DS.$Site->theme().DS);
|
2015-09-18 02:37:14 +02:00
|
|
|
define('PATH_THEME_PHP', PATH_THEME.'php'.DS);
|
2015-09-24 02:13:52 +02:00
|
|
|
define('PATH_THEME_CSS', PATH_THEME.'css'.DS);
|
|
|
|
define('PATH_THEME_JS', PATH_THEME.'js'.DS);
|
|
|
|
define('PATH_THEME_IMG', PATH_THEME.'img'.DS);
|
|
|
|
define('PATH_THEME_LANG', PATH_THEME.'languages'.DS);
|
2015-08-02 04:47:45 +02:00
|
|
|
|
2016-05-18 04:36:23 +02:00
|
|
|
define('THEME_DIR', PATH_ROOT.'bl-themes'.DS.$Site->theme().DS);
|
|
|
|
define('THEME_DIR_PHP', PATH_THEME.'php'.DS);
|
|
|
|
define('THEME_DIR_CSS', PATH_THEME.'css'.DS);
|
|
|
|
define('THEME_DIR_JS', PATH_THEME.'js'.DS);
|
|
|
|
define('THEME_DIR_IMG', PATH_THEME.'img'.DS);
|
|
|
|
define('THEME_DIR_LANG', PATH_THEME.'languages'.DS);
|
|
|
|
|
|
|
|
|
2016-01-11 23:51:00 +01:00
|
|
|
// --- Absolute paths with domain ---
|
2016-01-21 01:29:01 +01:00
|
|
|
// This paths are absolutes for the user / web browsing.
|
2016-01-11 23:51:00 +01:00
|
|
|
define('DOMAIN', $Site->domain());
|
|
|
|
define('DOMAIN_BASE', DOMAIN.HTML_PATH_ROOT);
|
|
|
|
define('DOMAIN_THEME_CSS', DOMAIN.HTML_PATH_THEME_CSS);
|
|
|
|
define('DOMAIN_THEME_JS', DOMAIN.HTML_PATH_THEME_JS);
|
|
|
|
define('DOMAIN_THEME_IMG', DOMAIN.HTML_PATH_THEME_IMG);
|
|
|
|
define('DOMAIN_UPLOADS', DOMAIN.HTML_PATH_UPLOADS);
|
|
|
|
define('DOMAIN_UPLOADS_PROFILES', DOMAIN.HTML_PATH_UPLOADS_PROFILES);
|
|
|
|
define('DOMAIN_UPLOADS_THUMBNAILS', DOMAIN.HTML_PATH_UPLOADS_THUMBNAILS);
|
|
|
|
|
2015-11-30 01:45:30 +01:00
|
|
|
// --- Objects with dependency ---
|
2015-05-05 03:00:01 +02:00
|
|
|
$Language = new dbLanguage( $Site->locale() );
|
|
|
|
$Login = new Login( $dbUsers );
|
|
|
|
$Url->checkFilters( $Site->uriFilters() );
|
|
|
|
|
2015-11-30 01:45:30 +01:00
|
|
|
// --- Objects shortcuts ---
|
2015-05-15 00:07:45 +02:00
|
|
|
$L = $Language;
|