|
|
<?php
|
|
|
/**
|
|
|
* phpSQLiteCMS - a simple and lightweight PHP web content management system
|
|
|
* based on PHP and SQLite
|
|
|
*
|
|
|
* @author Mark Hoschek <alex at phpsqlitecms dot net>
|
|
|
* @copyright Mark Hoschek 2013
|
|
|
* @version 3
|
|
|
* @link http://phpsqlitecms.net/
|
|
|
* @package phpSQLiteCMS
|
|
|
*
|
|
|
* The MIT License (MIT)
|
|
|
*
|
|
|
* Copyright (c) 2013 Mark Hoschek
|
|
|
*
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
|
* this software and associated documentation files (the "Software"), to deal in
|
|
|
* the Software without restriction, including without limitation the rights to
|
|
|
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
|
* the Software, and to permit persons to whom the Software is furnished to do so,
|
|
|
* subject to the following conditions:
|
|
|
*
|
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
|
* copies or substantial portions of the Software.
|
|
|
*
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
|
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
|
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
*/
|
|
|
|
|
|
session_start();
|
|
|
|
|
|
define('CACHE_DIR', 'cms/cache/');
|
|
|
|
|
|
// get query string passed by mod_rewrite:
|
|
|
if(isset($_GET['qs']))
|
|
|
{
|
|
|
if(get_magic_quotes_gpc()) $_GET['qs'] = stripslashes($_GET['qs']);
|
|
|
$qs = $_GET['qs'];
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$qs = '';
|
|
|
}
|
|
|
|
|
|
// check if requested page is cached and if so displays it:
|
|
|
if(empty($_POST) && file_exists('./'.CACHE_DIR.'settings.php'))
|
|
|
{
|
|
|
include('./'.CACHE_DIR.'settings.php');
|
|
|
if(empty($_SESSION[$settings['session_prefix'].'user_id']))
|
|
|
{
|
|
|
if($qs=='') $cache_file = rawurlencode(strtolower($settings['index_page'])).'.cache';
|
|
|
else $cache_file = rawurlencode(strtolower($qs)).'.cache';
|
|
|
if(file_exists('./'.CACHE_DIR.$cache_file))
|
|
|
{
|
|
|
include('./'.CACHE_DIR.$cache_file);
|
|
|
exit; // that's it if cached page is available.
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
define('IN_INDEX', TRUE);
|
|
|
|
|
|
try
|
|
|
{
|
|
|
#throw new Exception('Error message...');
|
|
|
#require('./cms/config/db_settings.conf.php');
|
|
|
require('./cms/includes/functions.inc.php');
|
|
|
|
|
|
// load replacement functions for the multibyte string functions
|
|
|
// if they are not available:
|
|
|
if(!defined('MB_CASE_LOWER')) require('./cms/includes/functions.mb_replacements.inc.php');
|
|
|
|
|
|
require('./cms/includes/classes/Database.class.php');
|
|
|
$database = new Database();
|
|
|
|
|
|
$settings = get_settings();
|
|
|
|
|
|
// access permission check for not registered users:
|
|
|
if($settings['check_access_permission']==1 && !isset($_SESSION[$settings['session_prefix'].'user_id']))
|
|
|
{
|
|
|
if(is_access_denied()) raise_error('403');
|
|
|
}
|
|
|
|
|
|
// set timezone:
|
|
|
if($settings['time_zone']) date_default_timezone_set($settings['time_zone']);
|
|
|
|
|
|
define('BASE_URL', get_base_url());
|
|
|
define('STATIC_URL', BASE_URL.'static/');
|
|
|
define('BASE_PATH', get_base_path());
|
|
|
define('MEDIA_DIR', 'static/media/');
|
|
|
define('SMILIES_DIR', 'static/media/smilies/');
|
|
|
define('IMAGE_IDENTIFIER', 'photo');
|
|
|
define('CATEGORY_IDENTIFIER', 'category:');
|
|
|
define('AMPERSAND_REPLACEMENT', ':AMP:');
|
|
|
|
|
|
define('WYSIWYG_EDITOR', 'cms/modules/tiny_mce/tiny_mce.js');
|
|
|
define('WYSIWYG_EDITOR_INIT', 'js/wysiwyg_init_frontend.js');
|
|
|
|
|
|
if($settings['content_functions']==1) require(BASE_PATH.'cms/includes/functions.content.inc.php');
|
|
|
|
|
|
require('./cms/includes/classes/Template.class.php');
|
|
|
$template = new Template();
|
|
|
#$template->set_settings($settings);
|
|
|
|
|
|
if($settings['caching'])
|
|
|
{
|
|
|
$cache = new Cache(BASE_PATH.CACHE_DIR, $settings);
|
|
|
if(!empty($_POST) || isset($_SESSION[$settings['session_prefix'].'user_id']))
|
|
|
{
|
|
|
$cache->doCaching = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(isset($_SESSION[$settings['session_prefix'].'user_id']))
|
|
|
{
|
|
|
$template->assign('admin', true);
|
|
|
$template->assign('user_id', $_SESSION[$settings['session_prefix'].'user_id']);
|
|
|
$template->assign('user_type', $_SESSION[$settings['session_prefix'].'user_type']);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
$template->assign('admin', false);
|
|
|
}
|
|
|
|
|
|
$template->assign('settings', $settings);
|
|
|
|
|
|
$template->assign('BASE_URL', BASE_URL);
|
|
|
|
|
|
$qsp = explode(',',$qs);
|
|
|
if($qsp[0] == '')
|
|
|
{
|
|
|
define('PAGE', strtolower($settings['index_page']));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
define('PAGE',strtolower($qsp[0]));
|
|
|
}
|
|
|
|
|
|
// append comma separated parameters to $_GET ($_GET['get_1'], $_GET['get_2'] etc.):
|
|
|
if(isset($qsp[1]))
|
|
|
{
|
|
|
$items = count($qsp);
|
|
|
for($i=1;$i<$items;++$i)
|
|
|
{
|
|
|
$_GET['get_'.$i] = $qsp[$i];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(isset($_GET['get_1']) && $_GET['get_1']==IMAGE_IDENTIFIER && isset($_GET['get_2']))
|
|
|
{
|
|
|
// photo:
|
|
|
include(BASE_PATH.'cms/includes/photo.inc.php');
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
// regular content:
|
|
|
include(BASE_PATH.'cms/includes/content.inc.php');
|
|
|
}
|
|
|
|
|
|
if(isset($_SESSION[$settings['session_prefix'].'user_id'])) $localization->add_language_file(BASE_PATH.'cms/lang/'.$settings['admin_language'].'.admin.lang.php');
|
|
|
|
|
|
// display template:
|
|
|
if(isset($template_file))
|
|
|
{
|
|
|
$template->assign('lang', Localization::$lang);
|
|
|
$template->assign('content_type', $content_type);
|
|
|
$template->assign('charset', Localization::$lang['charset']);
|
|
|
header('Content-Type: '.$content_type.'; charset='.Localization::$lang['charset']);
|
|
|
$template->display(BASE_PATH.'cms/templates/'.$template_file);
|
|
|
// create cache file:
|
|
|
if(isset($cache))
|
|
|
{
|
|
|
if($cache->cacheId && $cache->doCaching)
|
|
|
{
|
|
|
$cache_content = $cache->createCacheContent($template->fetch(BASE_PATH.'cms/templates/'.$template_file), $content_type, CHARSET);
|
|
|
$cache->createChacheFile($cache_content);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} // end try
|
|
|
catch(Exception $exception)
|
|
|
{
|
|
|
include('./cms/includes/exception.inc.php');
|
|
|
}
|
|
|
?>
|