856 lines
28 KiB
PHP
856 lines
28 KiB
PHP
<?php // utf8-marker = äöü
|
|
|
|
/*
|
|
==================================================
|
|
This file is a part of CMSimple 5.17
|
|
Released: 2025-02-18
|
|
Project website: www.cmsimple.org
|
|
==================================================
|
|
CMSimple COPYRIGHT INFORMATION
|
|
|
|
(c) Gert Ebersbach - mail@ge-webdesign.de
|
|
|
|
CMSimple is released under the GPL3 licence.
|
|
You may not remove copyright information from the files.
|
|
Any modifications will fall under the copyleft conditions of GPL3.
|
|
|
|
GPL 3 Deutsch: http://www.gnu.de/documents/gpl.de.html
|
|
GPL 3 English: http://www.gnu.org/licenses/gpl.html
|
|
|
|
HISTORY:
|
|
--------------------------------------------------
|
|
2020-04-21 CMSimple 5 - www.cmsimple.org
|
|
(c) Gert Ebersbach - mail@ge-webdesign.de
|
|
--------------------------------------------------
|
|
2012-11-11 CMSimple 4 - www.cmsimple.org
|
|
(c) Gert Ebersbach - mail@ge-webdesign.de
|
|
--------------------------------------------------
|
|
CMSimple_XH 1.5.3
|
|
2012-03-19
|
|
based on CMSimple version 3.3 - December 31. 2009
|
|
For changelog, downloads and information please see http://www.cmsimple-xh.com
|
|
--------------------------------------------------
|
|
CMSimple version 3.3 - December 31. 2009
|
|
Small - simple - smart
|
|
(c) 1999-2009 Peter Andreas Harteg - peter@harteg.dk
|
|
|
|
END CMSimple COPYRIGHT INFORMATION
|
|
==================================================
|
|
*/
|
|
|
|
if(function_exists('opcache_get_status') && opcache_get_status(true)['opcache_enabled'] == 1)
|
|
{
|
|
ini_set('opcache.validate_timestamps', 1);
|
|
ini_set('opcache.revalidate_freq', 0);
|
|
}
|
|
ini_set('xcache.cacher', 'Off');
|
|
ini_set('xcache.stat', 'Off');
|
|
|
|
if (preg_match('/cms.php/i', $_SERVER['SCRIPT_NAME'])){die('Access Denied');}
|
|
|
|
$title = '';
|
|
$o = '';
|
|
$e = '';
|
|
$hjs = '';
|
|
$bjs = '';
|
|
$onload = '';
|
|
|
|
// version-informations
|
|
define('CMSIMPLE_VERSION', 'CMSimple 5.17');
|
|
define('CMSIMPLE_RELEASE', 2025021801);
|
|
define('CMSIMPLE_DATE', '2025-02-18');
|
|
define('CMSIMPLE_VERSIONSINFO', 'https://www.cmsimple.org/downloads_cmsimple40/versioninfo/version.nfo');
|
|
//END version-informations
|
|
|
|
header('Content-Type: text/html; charset=utf-8');
|
|
|
|
$pth['folder']['cmsimple'] = $pth['folder']['base'] . 'cmsimple/';
|
|
$pth['file']['log'] = $pth['folder']['cmsimple'] . 'log.php';
|
|
$pth['file']['cms'] = $pth['folder']['cmsimple'] . 'cms.php';
|
|
|
|
$pth['file']['execute'] = './index.php';
|
|
$pth['folder']['content'] = './content/';
|
|
|
|
// 4.5
|
|
if(file_exists($pth['folder']['content'] . 'content.htm') && !file_exists($pth['folder']['content'] . 'content.php'))
|
|
{
|
|
copy($pth['folder']['content'] . 'content.htm',$pth['folder']['content'] . date("Ymd_His") . '_UPDATE45_content.htm');
|
|
copy($pth['folder']['content'] . 'pagedata.php',$pth['folder']['content'] . date("Ymd_His") . '_UPDATE45_pagedata.php');
|
|
copy($pth['folder']['content'] . 'content.htm',$pth['folder']['content'] . 'content.php');
|
|
}
|
|
|
|
if(file_exists($pth['folder']['content'] . 'content.htm') && file_exists($pth['folder']['content'] . 'content.php'))
|
|
{
|
|
unlink($pth['folder']['content'] . 'content.htm');
|
|
}
|
|
|
|
if(file_exists($pth['folder']['cmsimple'] . 'log.txt') && file_get_contents($pth['folder']['cmsimple'] . 'log.txt') !== 'nix')
|
|
{
|
|
copy($pth['folder']['cmsimple'] . 'log.txt',$pth['folder']['content'] . date("Ymd_His") . '_UPDATE45_log.txt');
|
|
$logfileHandle = fopen($pth['folder']['cmsimple'] . 'log.txt', 'w+');
|
|
fwrite($logfileHandle, 'nix');
|
|
fclose($logfileHandle);
|
|
}
|
|
// END 4.5
|
|
|
|
|
|
// 5.11 new installation (5.14: _disabled_plugins.txt in ./content/)
|
|
if(!file_exists($pth['folder']['cmsimple'] . 'config.php'))
|
|
{
|
|
if(!file_exists($pth['folder']['content'] . 'content.php'))
|
|
{
|
|
copy('./setup/defaults/content.php',$pth['folder']['content'] . 'content.php');
|
|
chmod($pth['folder']['content'] . 'content.php', 0666);
|
|
if(file_exists($pth['folder']['content'] . 'pagedata.php')) unlink($pth['folder']['content'] . 'pagedata.php');
|
|
copy('./setup/defaults/pagedata.php',$pth['folder']['content'] . 'pagedata.php');
|
|
chmod($pth['folder']['content'] . 'pagedata.php', 0666);
|
|
}
|
|
if(!file_exists($pth['folder']['cmsimple'] . 'languages/de.php')) copy('./setup/defaults/de.php',$pth['folder']['cmsimple'] . 'languages/de.php');
|
|
chmod($pth['folder']['cmsimple'] . 'languages/de.php', 0666);
|
|
if(!file_exists($pth['folder']['cmsimple'] . 'log.php')) copy('./setup/defaults/log.php',$pth['folder']['cmsimple'] . 'log.php');
|
|
chmod($pth['folder']['cmsimple'] . 'log.php', 0666);
|
|
if(!file_exists($pth['folder']['cmsimple'] . 'languages/en.php')) copy('./setup/defaults/en.php',$pth['folder']['cmsimple'] . 'languages/en.php');
|
|
chmod($pth['folder']['cmsimple'] . 'languages/en.php', 0666);
|
|
if(!file_exists('./content/_disabled_plugins.txt')) copy('./setup/defaults/disabled_plugins.txt','./content/_disabled_plugins.txt');
|
|
chmod('./content/_disabled_plugins.txt', 0666);
|
|
if(!file_exists('./content/_cmsimpleAdmin.php') && !file_exists('./content/cmsimpleAdmin.php')) copy('./setup/defaults/_cmsimpleAdmin.php','./content/_cmsimpleAdmin.php');
|
|
chmod('./content/_cmsimpleAdmin.php', 0666);
|
|
if(!is_dir('./templates/__cmsimple_default__'))
|
|
{
|
|
if(is_dir('./templates/cmsimple_default')) rename('./templates/cmsimple_default', './templates/__cmsimple_default__');
|
|
}
|
|
else
|
|
{
|
|
if(is_dir('./templates/cmsimple_default')) rename('./templates/cmsimple_default', './templates/default_template_copy');
|
|
}
|
|
file_put_contents('./setupControl.php','');
|
|
copy('./setup/defaults/config.php',$pth['folder']['cmsimple'] . 'config.php');
|
|
chmod($pth['folder']['cmsimple'] . 'config.php', 0666);
|
|
}
|
|
// END 5.11 new installation
|
|
|
|
|
|
|
|
// 5.14 Update
|
|
if(!file_exists($pth['folder']['cmsimple'] . 'log.php')) copy('./setup/defaults/log.php',$pth['folder']['cmsimple'] . 'log.php');
|
|
chmod($pth['folder']['cmsimple'] . 'log.php', 0666);
|
|
if(!file_exists('./content/_disabled_plugins.txt'))
|
|
{
|
|
if(file_exists('./disabled_plugins.txt'))
|
|
{
|
|
copy('./disabled_plugins.txt','./content/_disabled_plugins.txt');
|
|
unlink('./disabled_plugins.txt');
|
|
}
|
|
else
|
|
{
|
|
copy($pth['folder']['base'] . 'setup/defaults/disabled_plugins.txt','./content/_disabled_plugins.txt');
|
|
}
|
|
chmod('./content/_disabled_plugins.txt', 0666);
|
|
}
|
|
|
|
if(!file_exists('./content/_cmsimpleAdmin.php') && file_exists('./_cmsimpleAdmin.php'))
|
|
{
|
|
copy('./_cmsimpleAdmin.php','./content/_cmsimpleAdmin.php');
|
|
chmod('./content/_cmsimpleAdmin.php', 0666);
|
|
unlink('./_cmsimpleAdmin.php');
|
|
}
|
|
|
|
if(!file_exists('./content/cmsimpleAdmin.php') && file_exists('./cmsimpleAdmin.php'))
|
|
{
|
|
copy('./cmsimpleAdmin.php','./content/cmsimpleAdmin.php');
|
|
chmod('./content/cmsimpleAdmin.php', 0666);
|
|
unlink('./cmsimpleAdmin.php');
|
|
}
|
|
|
|
if(!file_exists('./content/_cmsimpleAdmin.php') && !file_exists('./content/cmsimpleAdmin.php'))
|
|
{
|
|
copy($pth['folder']['base'] . 'setup/defaults/_cmsimpleAdmin.php','./content/_cmsimpleAdmin.php');
|
|
chmod('./content/_cmsimpleAdmin.php', 0666);
|
|
}
|
|
|
|
// END 5.14 Update
|
|
|
|
|
|
$pth['file']['content'] = $pth['folder']['content'] . 'content.php';
|
|
$pth['file']['pagedata'] = $pth['folder']['content'] . 'pagedata.php';
|
|
|
|
// CMSimple 4: $pth['folder']['base'] removed => defined in index.php's now
|
|
|
|
|
|
// CMSimple 4 define config.php
|
|
if(file_exists('./config.php') && $pth['folder']['base'] != './')
|
|
{
|
|
$pth['file']['config'] = './config.php';
|
|
}
|
|
else
|
|
{
|
|
$pth['file']['config'] = $pth['folder']['cmsimple'] . 'config.php';
|
|
}
|
|
|
|
if (file_exists($pth['folder']['cmsimple'].'defaultconfig.php'))
|
|
{
|
|
include($pth['folder']['cmsimple'].'defaultconfig.php');
|
|
}
|
|
|
|
if (!include($pth['file']['config']))die('Config file missing');
|
|
|
|
if(isset($cf['site']['allow_embed_in_frames']))
|
|
{
|
|
if($cf['site']['allow_embed_in_frames'] != 'allow') header('X-Frame-Options: ' . $cf['site']['allow_embed_in_frames']);
|
|
}
|
|
|
|
if(isset($cf['server']['timezone']) && $cf['server']['timezone'] != "")date_default_timezone_set($cf['server']['timezone']);
|
|
|
|
|
|
// define menulevel depending of splitting method
|
|
|
|
if($cf['use']['h1only_pagesplitting'] == 'true')
|
|
{
|
|
$CMSimple4menulevel = '6';
|
|
}
|
|
else
|
|
{
|
|
$CMSimple4menulevel = $cf['menu']['levels'];
|
|
}
|
|
|
|
|
|
//for compatibility with older versions
|
|
if (!isset($cf['folders']['userfiles']))
|
|
$cf['folders']['userfiles'] = 'userfiles/';
|
|
if (!isset($cf['folders']['downloads']))
|
|
$cf['folders']['downloads'] = 'downloads/';
|
|
if (!isset($cf['folders']['images']))
|
|
$cf['folders']['images'] = 'images/';
|
|
if (!isset($cf['folders']['media']))
|
|
$cf['folders']['media'] = 'downloads/';
|
|
|
|
|
|
// fix $_SERVER['SCRIPT_NAME'] for crazy configured IIS servers
|
|
|
|
$cmsimpleScriptNameVar = $_SERVER['SCRIPT_NAME'];
|
|
$cmsimpleScriptNameArray = explode('/', $cmsimpleScriptNameVar);
|
|
|
|
if($cf['server']['script_name_slice'] == 'true')
|
|
{
|
|
$cmsimpleScriptNameArray = array_slice($cmsimpleScriptNameArray,2);
|
|
$cmsimpleScriptNameVarNew = '/' . implode('/', $cmsimpleScriptNameArray);
|
|
}
|
|
else
|
|
{
|
|
$cmsimpleScriptNameVarNew = implode('/', $cmsimpleScriptNameArray);
|
|
}
|
|
|
|
$_SERVER['SCRIPT_NAME'] = $cmsimpleScriptNameVarNew;
|
|
|
|
|
|
// create $sn variable (2014, moved 2023)
|
|
$sn = preg_replace('/index.php/i', '', $_SERVER['SCRIPT_NAME']);
|
|
|
|
|
|
// CMSimpleSubsites: prepare CMSIMPLE_ROOT
|
|
|
|
$cmsimpleRootVar = preg_replace('/\/index.php/i', '', $_SERVER['SCRIPT_NAME']);
|
|
$cmsimpleRootArray = explode('/', $cmsimpleRootVar);
|
|
|
|
if($pth['folder']['base'] == '../../')
|
|
{
|
|
array_pop($cmsimpleRootArray);
|
|
array_pop($cmsimpleRootArray);
|
|
}
|
|
|
|
if($pth['folder']['base'] == '../')
|
|
{
|
|
array_pop($cmsimpleRootArray);
|
|
}
|
|
|
|
$cmsimpleRootVarNew = implode('/', $cmsimpleRootArray) . '/';
|
|
|
|
define('CMSIMPLE_ROOT', $cmsimpleRootVarNew);
|
|
define('CMSIMPLE_BASE', $pth['folder']['base']);
|
|
define('CMSIMPLE_SITEURL', (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['SERVER_NAME'] . $sn);
|
|
define('CMSIMPLE_ROOTURL', (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['SERVER_NAME'] . CMSIMPLE_ROOT);
|
|
|
|
|
|
// prepare $subsite_folder
|
|
if(CMSIMPLE_ROOT == '/')
|
|
{
|
|
$cmsimpleRootReplace = '';
|
|
}
|
|
else
|
|
{
|
|
$cmsimpleRootReplace = CMSIMPLE_ROOT;
|
|
}
|
|
|
|
$subsite_folder = str_replace($cmsimpleRootReplace,'',$_SERVER['SCRIPT_NAME']);
|
|
$subsite_folder = str_replace('index.php', '', $subsite_folder);
|
|
$subsite_folder = trim($subsite_folder, '/') . '/';
|
|
|
|
// own userfiles folders (if exists and writable) for subsites and second languages
|
|
if(is_writable('./userfiles') && is_writable('./userfiles/downloads') && is_writable('./userfiles/images') && is_writable('./userfiles/media') && $pth['folder']['base'] != './')
|
|
{
|
|
$userfiles_path = $subsite_folder . $cf['folders']['userfiles'];
|
|
$userfiles_path_downloads = $subsite_folder . $cf['folders']['downloads'];
|
|
$userfiles_path_images = $subsite_folder . $cf['folders']['images'];
|
|
$userfiles_path_media = $subsite_folder . $cf['folders']['media'];
|
|
}
|
|
else
|
|
{
|
|
$userfiles_path = $cf['folders']['userfiles'];
|
|
$userfiles_path_downloads = $cf['folders']['downloads'];
|
|
$userfiles_path_images = $cf['folders']['images'];
|
|
$userfiles_path_media = $cf['folders']['media'];
|
|
}
|
|
|
|
|
|
// Userfiles-folders
|
|
if(is_writable('./userfiles') && is_writable('./userfiles/downloads') && is_writable('./userfiles/images') && is_writable('./userfiles/media') && $pth['folder']['base'] != './')
|
|
{
|
|
$pth['folder']['userfiles'] = './' . $cf['folders']['userfiles'];
|
|
$pth['folder']['downloads'] = './' . $cf['folders']['downloads'];
|
|
$pth['folder']['images'] = './' . $cf['folders']['images'];
|
|
$pth['folder']['media'] = './' . $cf['folders']['media'];
|
|
$pth['folder']['flags'] = $pth['folder']['images'] . 'flags/';
|
|
}
|
|
else
|
|
{
|
|
$pth['folder']['userfiles'] = $pth['folder']['base'] . $cf['folders']['userfiles'];
|
|
$pth['folder']['downloads'] = $pth['folder']['base'] . $cf['folders']['downloads'];
|
|
$pth['folder']['images'] = $pth['folder']['base'] . $cf['folders']['images'];
|
|
$pth['folder']['media'] = $pth['folder']['base'] . $cf['folders']['media'];
|
|
$pth['folder']['flags'] = $pth['folder']['images'] . 'flags/';
|
|
}
|
|
|
|
// 4.5
|
|
if(file_exists($pth['folder']['downloads'] . 'XHdebug.txt') && is_writable($pth['folder']['downloads'])){unlink($pth['folder']['downloads'] . 'XHdebug.txt');}
|
|
if(file_exists($pth['folder']['downloads'] . '_XHdebug.txt') && is_writable($pth['folder']['downloads'])){unlink($pth['folder']['downloads'] . '_XHdebug.txt');}
|
|
// END 4.5
|
|
|
|
|
|
// 5.11 new installation
|
|
if(!file_exists($pth['folder']['userfiles'] . '_core/_CMSimpleDebug.txt') && !file_exists($pth['folder']['userfiles'] . '_core/CMSimpleDebug.txt') && is_dir('./userfiles/_core/'))
|
|
{
|
|
copy($pth['folder']['base'] . 'setup/defaults/CMSimpleDebug.txt',$pth['folder']['userfiles'] . '_core/CMSimpleDebug.txt');
|
|
chmod($pth['folder']['userfiles'] . '_core/CMSimpleDebug.txt', 0666);
|
|
}
|
|
// END 5.11 new installation
|
|
|
|
|
|
if ($cf['functions']['file'] != "")
|
|
{
|
|
include($pth['folder']['cmsimple'] . $cf['functions']['file']);
|
|
}
|
|
|
|
// debug-mode, enables error-reporting
|
|
CMSimpleDebugMode();
|
|
$errors = array();
|
|
|
|
// CMSimple 4: define selected language
|
|
$slVar = $_SERVER['SCRIPT_NAME'];
|
|
$slVarArray = explode('/', $slVar);
|
|
array_pop($slVarArray);
|
|
|
|
if (file_exists('./cmsimplelanguage.htm'))
|
|
{
|
|
$sl = array_pop($slVarArray);
|
|
}
|
|
else
|
|
{
|
|
$sl = $cf['language']['default'];
|
|
}
|
|
|
|
// fallback selected language
|
|
if (!isset($sl))
|
|
{
|
|
$sl = $cf['language']['default'];
|
|
}
|
|
// END define $sl
|
|
|
|
|
|
// Own language files for subsites
|
|
if(file_exists('./languages/' . basename($sl) . '.php'))
|
|
{
|
|
$pth['folder']['language'] = './languages/';
|
|
}
|
|
else
|
|
{
|
|
$pth['folder']['language'] = $pth['folder']['cmsimple'] . 'languages/';
|
|
}
|
|
|
|
$pth['folder']['language_default'] = $pth['folder']['cmsimple'] . 'languages/';
|
|
$pth['file']['language'] = $pth['folder']['language'] . basename($sl) . '.php';
|
|
$pth['file']['corestyle'] = $pth['folder']['base'] . 'css/core.css';
|
|
|
|
if (!file_exists($pth['file']['language']))
|
|
{
|
|
copy($pth['folder']['language_default'].'default.php', $pth['file']['language']);
|
|
}
|
|
|
|
if (!file_exists($pth['file']['language']) && !file_exists($pth['folder']['language_default'].'default.php'))
|
|
{
|
|
die('Language file ' . $pth['file']['language'] . ' missing');
|
|
}
|
|
|
|
include $pth['folder']['language_default'] . 'default.php';
|
|
include $pth['file']['language'];
|
|
|
|
if(file_exists('./templates'))
|
|
{
|
|
$pth['folder']['templates'] = './templates/';
|
|
}
|
|
else
|
|
{
|
|
$pth['folder']['templates'] = $pth['folder']['base'] . 'templates/';
|
|
}
|
|
$pth['folder']['template'] = $pth['folder']['templates'] . $cf['site']['template'] . '/';
|
|
$pth['file']['template'] = $pth['folder']['template'].'template.htm';
|
|
$pth['file']['stylesheet'] = $pth['folder']['template'].'stylesheet.css';
|
|
$pth['folder']['menubuttons'] = $pth['folder']['template'].'menu/';
|
|
$pth['folder']['templateimages'] = $pth['folder']['template'].'images/';
|
|
|
|
|
|
// template fallback
|
|
if (!is_readable($pth['file']['template']) || $pth['folder']['template'] == $pth['folder']['templates'].'__maintenance__/')
|
|
{
|
|
$pth['folder']['template'] = $pth['folder']['templates'].'__fallback__/';
|
|
$pth['file']['template'] = $pth['folder']['template'].'template.htm';
|
|
$pth['file']['stylesheet'] = $pth['folder']['template'].'stylesheet.css';
|
|
$pth['folder']['menubuttons'] = $pth['folder']['template'].'menu/';
|
|
$pth['folder']['templateimages'] = $pth['folder']['template'].'images/';
|
|
}
|
|
// END template fallback
|
|
|
|
// fallback template text 1-9
|
|
$txc['template']['text1'] = $tx['template']['text1'];
|
|
$txc['template']['text2'] = $tx['template']['text2'];
|
|
$txc['template']['text3'] = $tx['template']['text3'];
|
|
$txc['template']['text4'] = $tx['template']['text4'];
|
|
$txc['template']['text5'] = $tx['template']['text5'];
|
|
$txc['template']['text6'] = $tx['template']['text6'];
|
|
$txc['template']['text7'] = $tx['template']['text7'];
|
|
$txc['template']['text8'] = $tx['template']['text8'];
|
|
$txc['template']['text9'] = $tx['template']['text9'];
|
|
// END fallback template text 1-9
|
|
|
|
$pth['folder']['plugins'] = $pth['folder']['base'] . $cf['plugins']['folder'] . '/';
|
|
|
|
$iis = strpos(sv('SERVER_SOFTWARE'), "IIS");
|
|
$cgi = (php_sapi_name() == 'cgi' || php_sapi_name() == 'cgi-fcgi');
|
|
|
|
|
|
// create variables for CRSF Protection (2017)
|
|
$snForCsrf = str_replace('/','___',$sn);
|
|
$snForCsrf = uenc($snForCsrf);
|
|
|
|
$csrfSession = 'csrf_token' . $snForCsrf;
|
|
|
|
|
|
// NEW 2016 (4.6.5)
|
|
// prevents call with "/index.php" from address line
|
|
if (preg_match('/index.php/i', $_SERVER['REQUEST_URI']) && $cf['site']['allow_call_indexphp'] != "true")
|
|
{
|
|
die('<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
<title>CMSimple - Open Source CMS ohne Datenbank</title>
|
|
<meta name="robots" content="noindex, nofollow">
|
|
<style type="text/css">
|
|
a {text-decoration: none;}
|
|
a:hover {color: #c60;}
|
|
</style>
|
|
</head>
|
|
<body style="background: #d0d6d9;">
|
|
<p style="margin-top: 60px; text-align: center; font-size: 20px; font-weight: 700;">
|
|
<a href="./">Come In »</a><br>
|
|
<a href="./"><span style="font-size: 96px; line-height: 96px;"><img src="' . $pth['folder']['base'] . 'css/icons/entrance.png" title="Entrance" alt="»"></span></a>
|
|
</p>
|
|
</body>
|
|
</html>');
|
|
}
|
|
// END NEW
|
|
|
|
|
|
foreach (array('download', 'function', 'media', 'search', 'mailform', 'sitemap', 'text', 'selected', 'login', 'logout', 'settings', 'print', 'retrieve', 'file', 'action', 'validate', 'images', 'downloads', 'edit', 'normal', 'stylesheet', 'passwd', 'userfiles', 'xhpages')as $i)
|
|
initvar($i);
|
|
|
|
// define su - selected url
|
|
$su = '';
|
|
if (sv('QUERY_STRING') != '')
|
|
{
|
|
$rq = explode('&', sv('QUERY_STRING'));
|
|
if (!strpos($rq[0], '='))
|
|
$su = $rq[0];
|
|
$v = count($rq);
|
|
for ($i = 0; $i < $v; $i++)
|
|
if (!strpos($rq[$i], '='))
|
|
$GLOBALS[$rq[$i]] = 'true';
|
|
}
|
|
else
|
|
{
|
|
$su = $selected;
|
|
}
|
|
|
|
if (!isset($cf['uri']['length']))
|
|
{
|
|
$cf['uri']['length'] = 200;
|
|
}
|
|
$su = substr($su, 0, $cf['uri']['length']);
|
|
|
|
if ($stylesheet != '')
|
|
{
|
|
header("Content-type: text/css");
|
|
include($pth['file']['stylesheet']);
|
|
exit;
|
|
}
|
|
|
|
if ($download != '')
|
|
{
|
|
download($pth['folder']['downloads'] . basename($download));
|
|
}
|
|
|
|
$pth['file']['login'] = $pth['folder']['cmsimple'] . 'login.php';
|
|
$pth['file']['adm'] = $pth['folder']['cmsimple'] . 'adm.php';
|
|
$pth['file']['search'] = $pth['folder']['cmsimple'] . 'search.php';
|
|
$pth['file']['mailform'] = $pth['folder']['cmsimple'] . 'mailform.php';
|
|
|
|
$adm = 0;
|
|
$f = '';
|
|
|
|
if (!@include($pth['file']['login']))
|
|
{
|
|
if ($login)
|
|
{
|
|
e('missing', 'file', $pth['file']['login']);
|
|
}
|
|
}
|
|
|
|
$cl = 0;
|
|
|
|
// maintenance mode warning
|
|
if($adm && $cf['site']['content_visible'] != 'true')
|
|
{
|
|
$o.= '<p class="cmsimplecore_warning" style="text-align: center; font-weight: 700; margin: 0;">' . $tx['message']['maintenance_backend'] . '</p>';
|
|
}
|
|
|
|
rfc(); // Here content is loaded
|
|
|
|
if ($function == 'search')
|
|
$f = 'search';
|
|
if ($mailform || $function == 'mailform')
|
|
$f = 'mailform';
|
|
if ($sitemap)
|
|
$f = 'sitemap';
|
|
if ($xhpages)
|
|
$f = 'xhpages';
|
|
|
|
if (file_exists($pth['folder']['cmsimple'] . 'userfuncs.php'))
|
|
{
|
|
include($pth['folder']['cmsimple'] . 'userfuncs.php');
|
|
}
|
|
|
|
|
|
// $txc fallback for Plugins
|
|
$txc['site']['title'] = $cf['site']['title'];
|
|
$txc['subsite']['template'] = $cf['site']['template'];
|
|
$txc['meta']['keywords'] = $cf['meta']['keywords'];
|
|
$txc['meta']['description'] = $cf['meta']['description'];
|
|
$txc['mailform']['email'] = $cf['mailform']['email'];
|
|
$txc['mailform']['captcha'] = $cf['mailform']['captcha'];
|
|
|
|
// fallback for TinyMCE toolbar
|
|
$plugin_cf['tinymce']['init'] = $cf['editor']['tinymce_toolbar'];
|
|
|
|
|
|
// Create plugins array
|
|
$handle_pluginlist = opendir($pth['folder']['plugins']);
|
|
|
|
while ($pluginlist_item = readdir($handle_pluginlist))
|
|
{
|
|
if (strpos($pluginlist_item, '.') === false && $pluginlist_item != 'pluginloader' && is_dir($pth['folder']['plugins'] . $pluginlist_item))
|
|
{
|
|
$pluginlist_array[] = $pluginlist_item;
|
|
}
|
|
}
|
|
closedir($handle_pluginlist);
|
|
sort($pluginlist_array);
|
|
|
|
$plugins = $pluginlist_array;
|
|
|
|
|
|
// update message CMSimple and plugins
|
|
if($cf['site']['allow_versionsinfo'] != 'true' && isset($sysinfo) && $adm)
|
|
{
|
|
$o.= '<p class="cmsimplecore_warning" style="float: left;">' . $tx['sysinfo']['version_info_disabled'];
|
|
$o.= ' - <a href="./?file=config&action=array"><b>' . $tx['sysinfo']['version_info_configlink'] . '</b></a>';
|
|
$o.= '</p><br /><br />';
|
|
}
|
|
|
|
if
|
|
(
|
|
!isset($sysinfo) &&
|
|
$adm &&
|
|
$file == 'config' ||
|
|
$file == 'language' ||
|
|
$file == 'template' ||
|
|
$file == 'stylesheet' ||
|
|
isset($_GET['backups']) && $adm ||
|
|
isset($_GET['settings']) && $adm ||
|
|
isset($cmsimple_pluginmanager) && $adm
|
|
)
|
|
{
|
|
$o.= '<p id="update_message"><a href="./?&sysinfo"><b>' . $tx['sysinfo']['version_info'] . '</b></a>';
|
|
$o.= '</p>
|
|
<p style="width: 100%; float: left;"> </p><br />';
|
|
}
|
|
|
|
// Plugin loading
|
|
if ($function == 'save')
|
|
{
|
|
$edit = true;
|
|
}
|
|
if ($cf['plugins']['folder'] != "")
|
|
include($pth['folder']['plugins'] . 'index.php');
|
|
|
|
if ($f == 'search')
|
|
@include($pth['file']['search']);
|
|
|
|
if ($f == 'mailform')
|
|
{
|
|
if ($cf['mailform']['email'] != '')
|
|
{
|
|
include($pth['file']['mailform']);
|
|
}
|
|
else
|
|
{
|
|
shead(404);
|
|
}
|
|
}
|
|
|
|
if ($f == 'sitemap')
|
|
{
|
|
$title = $tx['title'][$f];
|
|
$ta = array();
|
|
$o .= '<h1>' . $title . '</h1>' . "\n";
|
|
for ($i = 0; $i < $cl; $i++)
|
|
if (!hide($i) || $cf['hidden']['pages_sitemap'] == 'true')
|
|
$ta[] = $i;
|
|
$o .= li($ta, 'sitemaplevel');
|
|
}
|
|
|
|
// Compatibility for DHTML menus, moved from functions.php to cms.php
|
|
$si = -1;
|
|
$hc = array();
|
|
for ($i = 0; $i < $cl; $i++)
|
|
{
|
|
if (!hide($i) || ($i == $s && $cf['hidden']['pages_toc'] == 'true'))
|
|
$hc[] = $i;
|
|
if ($i == $s)
|
|
$si = count($hc);
|
|
}
|
|
$hl = count($hc);
|
|
//END Compatibility for DHTML menus
|
|
|
|
// LEGAL NOTICES - no needed under GPL3
|
|
if ($cf['menu']['legal'] == '')
|
|
$cf['menu']['legal'] = 'CMSimple Legal Notices';
|
|
|
|
if ($su == uenc($cf['menu']['legal']))
|
|
{
|
|
$f = $title = $cf['menu']['legal'];
|
|
$s = -1;
|
|
$o .= '<h1>' . $title . '</h1>' . rf($pth['folder']['cmsimple'] . 'legal.txt');
|
|
}
|
|
|
|
if (!include($pth['file']['adm']))
|
|
{
|
|
if ($login)
|
|
e('missing', 'file', $pth['file']['adm']);
|
|
if ($s == -1 && !$f && $o == '' && $su == '')
|
|
$s = 0;
|
|
}
|
|
|
|
// CMSimple scripting
|
|
if (!($edit && $adm) && $s > -1)
|
|
{
|
|
$c[$s] = evaluate_cmsimple_scripting($c[$s]);
|
|
if (isset($keywords))
|
|
$cf['meta']['keywords'] = $keywords;
|
|
if (isset($description))
|
|
$cf['meta']['description'] = $description;
|
|
}
|
|
|
|
if ($s == -1 && !$f && $o == '')
|
|
{
|
|
shead('404');
|
|
}
|
|
|
|
if (function_exists('loginforms'))
|
|
loginforms();
|
|
|
|
foreach (array('content', 'pagedata', 'config', 'language', 'stylesheet', 'template', 'log') as $i)
|
|
chkfile($i, (($login || $settings) && $adm));
|
|
if ($e)
|
|
$o = '<div class="cmsimplecore_warning cmsimplecore_center">' . "\n" . '<b>' . $tx['heading']['warning'] . '</b>' . "\n" . '</div>' . "\n" . '<ul>' . "\n" . $e . '</ul>' . "\n" . $o;
|
|
|
|
if ($title == '')
|
|
{
|
|
if ($s > -1)
|
|
$title = $h[$s];
|
|
else if ($f != '')
|
|
$title = ucfirst($f);
|
|
}
|
|
|
|
if ($retrieve)
|
|
{
|
|
echo '<html><head>' . head() . '</head><body class="retrieve">' . $c[$s] . '</body></html>';
|
|
exit;
|
|
}
|
|
|
|
if ($print && $cf['site']['content_visible'] == 'true')
|
|
{
|
|
echo '<!DOCTYPE html>' . "\n";
|
|
echo '<head>' . "\n" . head(), '<meta name="robots" content="noindex">' . "\n" . '</head>' . "\n" . '
|
|
<body class="cmsimplecore_print"', onload(), '>';
|
|
|
|
if($cf['site']['printview_with_backlink'] == 'true')
|
|
{
|
|
echo '<div class="cmsimplecore_printinfo">
|
|
<p>' . $cf['meta']['author'] . '</p>
|
|
<p><b>URL:</b> <a href="./?' . strip_tags(str_replace('&print','',$_SERVER['QUERY_STRING'])) . '">' . $_SERVER['SERVER_NAME'] . $sn . '?' . strip_tags(str_replace('&print','',$_SERVER['QUERY_STRING'])) . '</a></p>
|
|
</div>';
|
|
}
|
|
|
|
echo content(), '</body>' . "\n" . '</html>' . "\n";
|
|
exit;
|
|
}
|
|
|
|
ob_start('final_clean_up');
|
|
$cmsimple_debugMode = CMSimpleDebugMode();
|
|
|
|
// pluginmanager (added) - Array $active_plugins
|
|
|
|
$active_plugins = array();
|
|
$handle = opendir($pth['folder']['plugins']);
|
|
|
|
if ($handle)
|
|
{
|
|
while ($plugin = readdir($handle))
|
|
{
|
|
if (strpos($plugin, '.') === false
|
|
&& !stristr(file_get_contents($pm_datafile_path), '|||'.$plugin.'|||'))
|
|
{
|
|
$active_plugins[] = $plugin;
|
|
}
|
|
}
|
|
closedir($handle);
|
|
}
|
|
sort($active_plugins);
|
|
|
|
// END pluginmanager (added) - Array $active_plugins
|
|
|
|
// activate maintenance template
|
|
if($adm != 1 && $cf['site']['content_visible'] != 'true')
|
|
{
|
|
$pth['folder']['template'] = $pth['folder']['templates'].'__maintenance__/';
|
|
$pth['file']['template'] = $pth['folder']['template'].'template.htm';
|
|
$pth['file']['stylesheet'] = $pth['folder']['template'].'stylesheet.css';
|
|
$pth['folder']['menubuttons'] = $pth['folder']['template'].'menu/';
|
|
$pth['folder']['templateimages'] = $pth['folder']['template'].'images/';
|
|
$cf['meta']['robots'] = 'noindex, nofollow';
|
|
}
|
|
|
|
// activate backend template
|
|
if
|
|
(
|
|
($adm && $cf['use']['backend_template'] == 'true' &&
|
|
(
|
|
isset($sysinfo) ||
|
|
isset($cmsimple_pluginmanager) ||
|
|
isset($_REQUEST['images']) && $cf['filebrowser']['show_images_permanent'] == 'true' ||
|
|
isset($file) && $file == 'language' ||
|
|
isset($file) && $file == 'config' ||
|
|
isset($file) && $file == 'template' ||
|
|
isset($file) && $file == 'stylesheet' ||
|
|
isset($file) && $file == 'log' ||
|
|
isset($admin) && $admin == 'plugin_config' ||
|
|
isset($admin) && $admin == 'plugin_language' ||
|
|
isset($admin) && $admin == 'plugin_stylesheet' ||
|
|
isset($_GET['settings']) && $adm ||
|
|
isset($_GET['restore_cf']) && $adm ||
|
|
isset($_GET['delete_of']) && $adm ||
|
|
isset($_GET['deleted_of']) && $adm ||
|
|
isset($_GET['backups']) && $adm ||
|
|
isset($_GET['backup_deleted']) && $adm ||
|
|
isset($_GET['userfiles']) && $adm ||
|
|
isset($_GET['images']) && $adm
|
|
)
|
|
)
|
|
||
|
|
(
|
|
$adm && !$normal && $cf['use']['backend_template_always'] == 'true'
|
|
)
|
|
)
|
|
{
|
|
$pth['folder']['template'] = $pth['folder']['templates'].'__cmsimple_backend__/';
|
|
$pth['file']['template'] = $pth['folder']['template'].'template.htm';
|
|
$pth['file']['stylesheet'] = $pth['folder']['template'].'stylesheet.css';
|
|
$pth['folder']['menubuttons'] = $pth['folder']['template'].'menu/';
|
|
$pth['folder']['templateimages'] = $pth['folder']['template'].'images/';
|
|
$cf['meta']['robots'] = 'noindex, nofollow';
|
|
}
|
|
|
|
// activate filebrowser template
|
|
if
|
|
($adm && isset($_GET['userfiles']))
|
|
{
|
|
$pth['folder']['template'] = $pth['folder']['templates'].'__cmsimple_filebrowser__/';
|
|
$pth['file']['template'] = $pth['folder']['template'].'template.htm';
|
|
$pth['file']['stylesheet'] = $pth['folder']['template'].'stylesheet.css';
|
|
$pth['folder']['menubuttons'] = $pth['folder']['template'].'menu/';
|
|
$pth['folder']['templateimages'] = $pth['folder']['template'].'images/';
|
|
$cf['meta']['robots'] = 'noindex, nofollow';
|
|
}
|
|
|
|
|
|
$poweredLinkCheck = '
|
|
<div style="width: 314px; background: #fc0; color: #000; font-size: 14px; font-family: arial, sans-serif; border: 3px solid #000; padding: 6px 20px; position: fixed; z-index: 9999;">
|
|
<p><img src="userfiles/images/flags/en.gif"> <b>Wrong CMS Link detected in template!</b></p>
|
|
<p>Please <b>remove</b> following strings from your template (template.htm):</p>
|
|
<p>-xh _XH XH xh</p>
|
|
<p>Please <b>replace</b> following strings in your template (template.htm):</p>
|
|
<p>cmsimple.name => cmsimple.org<br>cmsimple.eu => cmsimple.org</p>
|
|
<p>Without or with a correct CMS link (cmsimple.org), this message will disappear.</p>
|
|
<p><img src="userfiles/images/flags/de.gif"> <b>Falscher CMS Link im Template erkannt!</b></p>
|
|
<p>Bitte <b>entfernen</b> Sie folgende Zeichenketten aus Ihrem Template (template.htm):</p>
|
|
<p>-xh _XH XH xh</p>
|
|
<p>Bitte <b>ersetzen</b> Sie folgende Zeichenketten aus Ihrem Template (template.htm):</p>
|
|
<p>cmsimple.name => cmsimple.org<br>cmsimple.eu => cmsimple.org</p>
|
|
<p>Ohne oder mit einem korrekten CMS Link (zu cmsimple.org) wird diese Meldung nicht mehr erscheinen.</p>
|
|
</div>
|
|
';
|
|
|
|
if(preg_match('/CMSimple_XH|cmsimple-xh|CMSimple XH| XH|cmsimple\.name|cmsimple\.eu/i',file_get_contents($pth['file']['template'])))
|
|
{
|
|
echo($poweredLinkCheck);
|
|
}
|
|
|
|
// template fallback
|
|
if (!include($pth['file']['template']))
|
|
{
|
|
echo '<!DOCTYPE html>
|
|
<html>
|
|
<head>';
|
|
echo head();
|
|
echo '</head>';
|
|
echo '<body>
|
|
<div style="width: 480px; margin: 0 auto;">';
|
|
echo '<div style="background: #eee; color: #c00; font-size: 20px; letter-spacing: 2px; text-align: center; font-weight: 700; border: 5px solid #c00; padding: 24px; margin: 20px 0;">
|
|
<p><b>!!! Template is missing !!!</b></p>'
|
|
. loginlink() . '</div>';
|
|
echo content();
|
|
echo '</div>
|
|
</body>
|
|
</html>';
|
|
}
|
|
|
|
?>
|