ave-cms/index.php
2018-03-26 10:33:20 +03:00

178 lines
4.8 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2016 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
define ('START_MICROTIME', microtime());
define ('START_MEMORY', memory_get_usage());
define ('BASE_DIR', str_replace("\\", "/", dirname(__FILE__)));
// Проверяем уставлена ли CMS
if (! @filesize(BASE_DIR . '/inc/db.config.php'))
{
header ('Location:install/index.php');
exit;
}
// Если в запросе пришел вызов thumbnail
// подключаем файл обработки thumbnail
if (! empty($_REQUEST['thumb']))
{
require (BASE_DIR . '/inc/thumb.php');
exit;
}
ob_start();
// Подключаем файл определения мобильных устройств
// далее пользуемся $MDetect
require_once (BASE_DIR . '/lib/mobile_detect/Mobile_Detect.php');
$MDetect = new Mobile_Detect;
// Подключаем файл инициализации
require (BASE_DIR . '/inc/init.php');
unset ($GLOBALS['CMS_CONFIG']);
// Проверяем нет ли в запросе папки UPLOADS_DIR
// подключаем файл для работы thumbsnail
if (strpos ($_SERVER['REQUEST_URI'], ABS_PATH . UPLOAD_DIR . '/') === 0)
{
require (BASE_DIR . '/inc/thumb.php');
exit;
}
// Папка с шаблонами для Smarty
$AVE_Template = new AVE_Template(BASE_DIR . '/templates/');
// Подключаем ядро системы
require (BASE_DIR . '/class/class.core.php');
$AVE_Core = new AVE_Core;
// Проверям на вызов внешних модулей и системных блоков
if (empty ($_REQUEST['module']) || empty ($_REQUEST['sysblock']) || empty ($_REQUEST['request']))
$AVE_Core->coreUrlParse($_SERVER['REQUEST_URI']);
$GLOBALS['page_id'] = array((isset($_REQUEST['id'])
? $_REQUEST['id']
: '')
=> array('apage' => floatval(0)));
// Если пришел вызов на показ ревизии документа
if (! empty($_REQUEST['revission']))
{
$res = $AVE_DB->Query("
SELECT
doc_data
FROM
" . PREFIX . "_document_rev
WHERE
doc_id = '" . (int)$_REQUEST['id'] . "'
AND
doc_revision = '" . (int)$_REQUEST['revission'] . "'
LIMIT 1
")->GetCell();
$res = @unserialize($res);
$flds = get_document_fields((int)$_REQUEST['id'], $res);
}
// Собираем страницу
$AVE_Core->coreSiteFetch(get_current_document_id());
$content = ob_get_clean();
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && GZIP_COMPRESSION)
{
ob_start('ob_gzhandler');
}
else
ob_start();
eval ('?>' . $content . '<?');
$render = ob_get_clean();
unset ($content);
// Ловим 404 ошибку
if (isset($_REQUEST['id']) AND ($_REQUEST['id']) == PAGE_NOT_FOUND_ID)
{
report404();
header ($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found', true);
}
// Постраничка
if (
empty($_REQUEST['module']) &&
(
(
isset($_REQUEST['page'])
&& is_numeric($_REQUEST['page'])
&& ($_REQUEST['page'] < 2 OR ($_REQUEST['page'] > @$GLOBALS['page_id'][$_REQUEST['id']]['page']))
)
OR
(
isset($_REQUEST['apage'])
&& is_numeric($_REQUEST['apage'])
&& ($_REQUEST['apage'] < 2 OR ($_REQUEST['apage'] > @$GLOBALS['page_id'][$_REQUEST['id']]['apage']))
)
OR
(
isset($_REQUEST['artpage'])
&& is_numeric($_REQUEST['artpage'])
&& ($_REQUEST['artpage'] < 2 OR ($_REQUEST['artpage'] > @$GLOBALS['page_id'][$_REQUEST['id']]['artpage']))
)
)
)
{
if ($_REQUEST['id'] == 1)
header ('Location:' . ABS_PATH);
else
header ('Location:' . ABS_PATH . $AVE_Core->curentdoc->document_alias . URL_SUFF);
exit;
}
// Тут заменяем [tag:rubheader]
// на собранный $GLOBALS["user_header"]
$rubheader = (empty($GLOBALS['user_header'])
? ''
: implode(chr(10), $GLOBALS['user_header']));
$render = str_replace('[tag:rubheader]', $rubheader, $render);
// Тут заменяем [tag:rubfooter]
// на собранный $GLOBALS["user_footer"]
$rubfooter = (empty($GLOBALS['user_footer'])
? ''
: implode(chr(10), $GLOBALS['user_footer']));
$render = str_replace('[tag:rubfooter]', $rubfooter, $render);
unset ($rubheader, $rubfooter);
//-- Header Engine
header('X-Engine: AVE.cms');
header('X-Engine-Copyright: 2007-' . date('Y') . ' (c) AVE.cms');
header('X-Engine-Site: https://ave-cms.ru');
//Вывод статистики загрузки и запросов SQL (только для администраторов)
if (! defined('ONLYCONTENT') && UGROUP == 1 && defined('PROFILING') && PROFILING)
$render .= get_statistic(1, 1, 1, 1);
//Вывод конечного результата
output_compress($render);
//Debug::_print($GLOBALS['block_generate']);
//$AVE_DB->showAllQueries();
?>