Files
ave-cms-alt/class/class.settings.php

992 lines
28 KiB
PHP
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-2014 AVE.cms, http://www.ave-cms.ru
*
*/
/**
* Класс управления настройками системы
*/
class AVE_Settings
{
/**
* СВОЙСТВА
*/
/**
* Количество стран на странице
*
* @public int
*/
public $_limit = 15;
/**
* ВНЕШНИЕ МЕТОДЫ
*/
/**
* Метод отображения настроек
*
*/
function settingsShow()
{
global $AVE_Template;
$date_formats = array(
'%d.%m.%Y',
'%d %B %Y',
'%A, %d.%m.%Y',
'%A, %d %B %Y'
);
$time_formats = array(
'%d.%m.%Y, %H:%M',
'%d %B %Y, %H:%M',
'%A, %d.%m.%Y (%H:%M)',
'%A, %d %B %Y (%H:%M)'
);
$AVE_Template->assign('date_formats', $date_formats);
$AVE_Template->assign('time_formats', $time_formats);
$AVE_Template->assign('row', get_settings());
$AVE_Template->assign('available_countries', get_country_list(1));
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_main.tpl'));
}
/**
* Переключает файлы запросов (UNLINK+COPY) и очищает связанные таблицы в БД.
*
* @param bool $use_safe_version TRUE для безопасной версии, FALSE для оригинальной.
* @return bool TRUE в случае успеха, FALSE в случае ошибки.
*/
private function _switchQueryFiles($use_safe_version)
{
// Получаем доступ к глобальному объекту базы данных
global $AVE_DB;
// 1. Загружаем список файлов для замены (Манифест)
$manifest_path = BASE_DIR . '/inc/query_variants/query_manifest.php';
$manifest = @require $manifest_path;
if (!is_array($manifest) || empty($manifest)) {
return false;
}
// 2. Определяем исходную папку
$source_dir_name = $use_safe_version ? 'safe_files' : 'original_files';
$source_base = BASE_DIR . '/inc/query_variants/' . $source_dir_name;
$error_count = 0;
// 3. ИТЕРАЦИЯ И КОПИРОВАНИЕ
foreach ($manifest as $relative_path) {
$source_file = $source_base . '/' . $relative_path;
$target_file = BASE_DIR . '/' . $relative_path;
if (!file_exists($source_file)) {
$error_count++;
continue;
}
// 4. Создаем папку назначения, если ее нет
$target_dir = dirname($target_file);
if (!is_dir($target_dir)) {
@mkdir($target_dir, 0775, true);
}
// 5. ГАРАНТИЯ ПЕРЕЗАПИСИ: Удаляем старый файл перед копированием
if (file_exists($target_file)) {
if (!@unlink($target_file)) {
$error_count++;
continue;
}
}
// 6. Копируем
if (!@copy($source_file, $target_file)) {
$error_count++;
}
}
// 7. ОЧИСТКА БАЗЫ ДАННЫХ
if ($error_count === 0)
{
// Используем константу PREFIX для определения префикса таблиц
$AVE_DB->query("DELETE FROM `" . PREFIX . "_request`");
$AVE_DB->query("DELETE FROM `" . PREFIX . "_request_conditions`");
}
// 8. Возвращаем результат
return ($error_count === 0);
}
/**
* Метод отображения дополнительных настроек
*
*/
function settingsCase()
{
global $AVE_Template;
// Сохраняем настройки
if (isset($_REQUEST['more']))
{
$set = '<?php' . "\r\n\r\n";
$request_use_version_value = '0';
foreach($_REQUEST['GLOB'] as $key => $type)
{
foreach($type as $k => $v)
{
// ИЗВЛЕКАЕМ ЗНАЧЕНИЕ ДЛЯ ПЕРЕКЛЮЧЕНИЯ ФАЙЛОВ
// Сохраняем значение переменной из формы до ее преобразования.
if ($k == 'REQUEST_USE_VERSION') {
$request_use_version_value = $v;
}
switch ($GLOBALS['CMS_CONFIG'][$key][$k]['TYPE'])
{
case 'bool' :
$v = $v ? 'true' : 'false';
break;
case 'integer' :
$v = intval($v);
break;
case 'string' :
$v = "'" . add_slashes($v) . "'";
break;
case 'dropdown' :
$v = "'" . add_slashes($v) . "'";
break;
default :
$v = "'" . add_slashes($v) . "'";
break;
}
$set .= "\t" . "// " . $GLOBALS['CMS_CONFIG'][$key][$k]['DESCR'] . "\r\n";
$set .= "\t" . "define('" . $k . "', " . $v . ");\r\n\r\n";
}
}
$set .= '?>';
$result = file_put_contents(BASE_DIR . '/config/config.inc.php', $set);
if ($result > 0)
{
$new_query_setting = (bool)$request_use_version_value;
// Вызываем функцию и сохраняем результат
$switch_success = $this->_switchQueryFiles($new_query_setting);
// Если переключение не удалось, записываем это в лог (но показываем пользователю успех)
if (!$switch_success) {
reportLog('ВНИМАНИЕ: Конфигурация сохранена, но переключение файлов при вызове AJAX не удалось (возможна блокировка файла).');
}
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED');
$header = $AVE_Template->get_config_vars('SETTINGS_SUCCESS');
$theme = 'accept';
reportLog($AVE_Template->get_config_vars('SETTINGS_SAVE_DOP'));
}
else
{
// ... (если не удалось записать config.inc.php)
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_ERR');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
$theme = 'error';
}
if (isAjax())
{
echo json_encode(array(
'message' => $message,
'header' => $header,
'theme' => $theme)
);
}
else
{
$AVE_Template->assign('message', $message);
header('Location:index.php?do=settings&sub=case&cp=' . SESSION);
}
exit;
// Выводим настройки
}
else
{
$AVE_Template->assign('CMS_CONFIG', $GLOBALS['CMS_CONFIG']);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_case.tpl'));
}
}
/**
* Метод записи настроек
*
*/
function settingsSave()
{
global $AVE_DB, $AVE_Template;
$muname = ($_REQUEST['mail_smtp_login']) ? "mail_smtp_login = '" . $_REQUEST['mail_smtp_login'] . "'," : '';
$mpass = ($_REQUEST['mail_smtp_pass']) ? "mail_smtp_pass = '" . $_REQUEST['mail_smtp_pass'] . "'," : '';
$msmp = ($_REQUEST['mail_sendmail_path']) ? "mail_sendmail_path = '" . $_REQUEST['mail_sendmail_path'] . "'," : '';
$mn = ($_REQUEST['mail_from_name']) ? "mail_from_name = '" . $_REQUEST['mail_from_name'] . "'," : '';
$ma = ($_REQUEST['mail_from']) ? "mail_from = '" . $_REQUEST['mail_from'] . "'," : '';
$ep = ($_REQUEST['page_not_found_id']) ? "page_not_found_id = '" . $_REQUEST['page_not_found_id'] . "'," : '';
$sn = ($_REQUEST['site_name']) ? "site_name = '" . $_REQUEST['site_name'] . "'," : '';
$mp = ($_REQUEST['mail_port']) ? "mail_port = '" . $_REQUEST['mail_port'] . "'," : '';
$mh = ($_REQUEST['mail_host']) ? "mail_host = '" . $_REQUEST['mail_host'] . "'," : '';
$sql = $AVE_DB->Query("
UPDATE
" . PREFIX . "_settings
SET
" . $muname . "
" . $mpass . "
mail_smtp_encrypt = '" . $_REQUEST['mail_smtp_encrypt'] . "',
" . $msmp . "
" . $ma . "
" . $mn . "
" . $ep . "
" . $sn . "
" . $mp . "
" . $mh . "
default_country = '" . $_REQUEST['default_country'] . "',
mail_type = '" . $_REQUEST['mail_type'] . "',
mail_content_type = '" . $_REQUEST['mail_content_type'] . "',
mail_word_wrap = '" . (int)$_REQUEST['mail_word_wrap'] . "',
mail_new_user = '" . $_REQUEST['mail_new_user'] . "',
mail_signature = '" . $_REQUEST['mail_signature'] . "',
message_forbidden = '" . $_REQUEST['message_forbidden'] . "',
hidden_text = '" . $_REQUEST['hidden_text'] . "',
navi_box = '" . $_REQUEST['navi_box'] . "',
start_label = '" . $_REQUEST['start_label'] . "',
end_label = '" . $_REQUEST['end_label'] . "',
separator_label = '" . $_REQUEST['separator_label'] . "',
next_label = '" . $_REQUEST['next_label'] . "',
prev_label = '" . $_REQUEST['prev_label'] . "',
total_label = '" . $_REQUEST['total_label'] . "',
link_box = '" . $_REQUEST['link_box'] . "',
total_box = '" . $_REQUEST['total_box'] . "',
active_box = '" . $_REQUEST['active_box'] . "',
separator_box = '" . $_REQUEST['separator_box'] . "',
bread_box = '" . $_REQUEST['bread_box'] . "',
bread_show_main = '" . ($_REQUEST['bread_show_main'] != 0 ? 1 : 0) . "',
bread_show_host = '" . ($_REQUEST['bread_show_host'] != 0 ? 1 : 0) . "',
bread_sepparator = '" . $_REQUEST['bread_sepparator'] . "',
bread_sepparator_use = '" . ($_REQUEST['bread_sepparator_use'] != 0 ? 1 : 0) . "',
bread_link_box = '" . $_REQUEST['bread_link_box'] . "',
bread_link_template = '" . $_REQUEST['bread_link_template'] . "',
bread_self_box = '" . $_REQUEST['bread_self_box'] . "',
bread_link_box_last = '" . ($_REQUEST['bread_link_box_last'] != 0 ? 1 : 0) . "',
date_format = '" . $_REQUEST['date_format'] . "',
time_format = '" . $_REQUEST['time_format'] . "',
use_doctime = '" . intval($_REQUEST['use_doctime']) . "'
WHERE
Id = 1
");
if ($sql->_result === false)
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_ERR');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
$theme = 'error';
}
else
{
$this->clearSettingsCache();
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED');
$header = $AVE_Template->get_config_vars('SETTINGS_SUCCESS');
$theme = 'accept';
reportLog($AVE_Template->get_config_vars('SETTINGS_SAVE_MAIN'));
}
if (isset($_REQUEST['ajax']) && $_REQUEST['ajax'] = '1')
{
echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
}
else
{
$AVE_Template->assign('message', $message);
header('Location:index.php?do=settings&cp=' . SESSION);
}
exit;
}
/**
* Метод отображения списка стран
*
*/
function settingsCountriesList()
{
global $AVE_DB, $AVE_Template;
$sql = $AVE_DB->Query("
SELECT SQL_CALC_FOUND_ROWS *
FROM
" . PREFIX . "_countries
ORDER BY country_status ASC, country_name ASC
LIMIT " . (get_current_page() * $this->_limit - $this->_limit) . "," . $this->_limit
);
$countries = array();
while ($row = $sql->FetchAssocArray())
array_push($countries, $row);
$num = $AVE_DB->Query("SELECT FOUND_ROWS()")->GetCell();
if ($num > $this->_limit)
{
$page_nav = "<a href=\"index.php?do=settings&sub=countries&page={s}&cp=" . SESSION . "\">{t}</a>";
$page_nav = get_pagination(ceil($num / $this->_limit), 'page', $page_nav);
$AVE_Template->assign('page_nav', $page_nav);
}
$AVE_Template->assign('countries', $countries);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_countries.tpl'));
}
/**
* Метод записи параметров стран
*
*/
function settingsCountriesSave()
{
global $AVE_DB, $AVE_Template;
foreach ($_POST['country_name'] as $id => $country_name)
{
$AVE_DB->Query("
UPDATE " . PREFIX . "_countries
SET
country_name = '" . $country_name . "',
country_status = '" . $_POST['country_status'][$id] . "',
country_eu = '" . $_POST['country_eu'][$id] . "'
WHERE
Id = '" . $id . "'
");
}
reportLog($AVE_Template->get_config_vars('SETTINGS_SAVE_COUNTRY'));
}
/**
* Метод отображения списка языков
*
*/
function settingsLanguageList()
{
global $AVE_DB, $AVE_Template;
$sql = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_settings_lang
ORDER BY lang_default DESC, lang_status ASC, lang_key ASC
");
$language = array();
while ($row = $sql->FetchAssocArray())
array_push($language, $row);
$AVE_Template->assign('language', $language);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_lang.tpl'));
}
/**
* Метод Редактирования параметров языков
*
*/
function settingsLanguageEdit()
{
global $AVE_DB, $AVE_Template;
if (isset($_REQUEST["Id"]))
{
$items = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_settings_lang
WHERE
Id = '" . $_REQUEST["Id"] . "'
")->FetchRow();
$AVE_Template->assign('items', $items);
}
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_lang_edit.tpl'));
}
function settingsLanguageEditSave()
{
global $AVE_DB, $AVE_Template;
if (! empty($_REQUEST["Id"]))
{
$AVE_DB->Query("
UPDATE
" . PREFIX . "_settings_lang
SET
lang_key = '" .$_REQUEST['lang_key']. "',
lang_alias_pref = '" .$_REQUEST['lang_alias_pref']. "',
lang_name = '" .$_REQUEST['lang_name']. "'
WHERE
Id = '" . $_REQUEST["Id"] . "'
");
}
else
{
$AVE_DB->Query("
INSERT INTO
" . PREFIX . "_settings_lang
SET
lang_key = '" .$_REQUEST['lang_key']. "',
lang_name = '" .$_REQUEST['lang_name']. "',
lang_alias_pref = '" .$_REQUEST['lang_alias_pref']. "',
lang_default = '0',
lang_status = '0'
");
}
$AVE_DB->clearCache('langs');
echo "<script>window.opener.location.reload(); window.close();</script>";
}
function settingsPaginationsList()
{
global $AVE_DB, $AVE_Template;
$sql = "
SELECT
id,
pagination_name
FROM
" . PREFIX . "_paginations
";
$query = $AVE_DB->Query($sql);
$items = array();
while ($row = $query->FetchRow())
array_push($items, $row);
$AVE_Template->assign('items', $items);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_pagination.tpl'));
}
function settingsPaginationsNew()
{
global $AVE_DB, $AVE_Template;
$pagination = new stdClass();
$AVE_Template->assign('pagination', $pagination);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/pagination_edit.tpl'));
}
function settingsPaginationsEdit()
{
global $AVE_DB, $AVE_Template;
$sql = "
SELECT
*
FROM
" . PREFIX . "_paginations
WHERE
id = '" . $_REQUEST['id'] . "'
";
$pagination = $AVE_DB->Query($sql)->FetchRow();
$AVE_Template->assign('pagination', $pagination);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/pagination_edit.tpl'));
}
function settingsPaginationsSave()
{
global $AVE_DB, $AVE_Template;
// Если пришел ID
if (isset($_REQUEST['id']) && $_REQUEST['id'] > 0)
{
$sql = "
UPDATE
" . PREFIX . "_paginations
SET
pagination_name = '" . $_REQUEST['pagination_name'] . "',
pagination_box = '" . $_REQUEST['pagination_box'] . "',
pagination_start_label = '" . $_REQUEST['pagination_start_label'] . "',
pagination_end_label = '" . $_REQUEST['pagination_end_label'] . "',
pagination_separator_box = '" . $_REQUEST['pagination_separator_box'] . "',
pagination_separator_label = '" . $_REQUEST['pagination_separator_label'] . "',
pagination_next_label = '" . $_REQUEST['pagination_next_label'] . "',
pagination_prev_label = '" . $_REQUEST['pagination_prev_label'] . "',
pagination_link_box = '" . $_REQUEST['pagination_link_box'] . "',
pagination_active_link_box = '" . $_REQUEST['pagination_active_link_box'] . "',
pagination_link_template = '" . $_REQUEST['pagination_link_template'] . "',
pagination_link_active_template = '" . $_REQUEST['pagination_link_active_template'] . "'
WHERE
id = '" . $_REQUEST['id'] . "'
";
$query = $AVE_DB->Query($sql);
if ($query === false)
{
$message = $AVE_Template->get_config_vars('PAGINATION_SAVED_ERR');
$header = $AVE_Template->get_config_vars('PAGINATION_ERROR');
$theme = 'error';
}
else
{
AVE_Paginations::clearCache();
$message = $AVE_Template->get_config_vars('PAGINATION_SAVED');
$header = $AVE_Template->get_config_vars('PAGINATION_SUCCESS');
$theme = 'accept';
}
if (isAjax())
{
echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
}
else
{
header('Location:index.php?do=settings&action=paginations&cp=' . SESSION);
}
exit;
}
// Если не пришел ID
else
{
$sql = "
INSERT INTO
" . PREFIX . "_paginations
SET
pagination_name = '" . $_REQUEST['pagination_name'] . "',
pagination_box = '" . $_REQUEST['pagination_box'] . "',
pagination_start_label = '" . $_REQUEST['pagination_start_label'] . "',
pagination_end_label = '" . $_REQUEST['pagination_end_label'] . "',
pagination_separator_box = '" . $_REQUEST['pagination_separator_box'] . "',
pagination_separator_label = '" . $_REQUEST['pagination_separator_label'] . "',
pagination_next_label = '" . $_REQUEST['pagination_next_label'] . "',
pagination_prev_label = '" . $_REQUEST['pagination_prev_label'] . "',
pagination_link_box = '" . $_REQUEST['pagination_link_box'] . "',
pagination_active_link_box = '" . $_REQUEST['pagination_active_link_box'] . "',
pagination_link_template = '" . $_REQUEST['pagination_link_template'] . "',
pagination_link_active_template = '" . $_REQUEST['pagination_link_active_template'] . "'
";
}
$query = $AVE_DB->Query($sql);
header('Location:index.php?do=settings&action=paginations&cp=' . SESSION);
exit;
}
function settingsPaginationsDel()
{
global $AVE_DB, $AVE_Template;
if (isset($_REQUEST['id']) && $_REQUEST['id'] > 1)
{
$sql = "
DELETE
FROM
" . PREFIX . "_paginations
WHERE
id = '" . $_REQUEST['id'] . "'
";
$AVE_DB->Query($sql);
AVE_Paginations::clearCache();
}
header('Location:index.php?do=settings&action=paginations&cp=' . SESSION);
exit;
}
/**
* Функция делает рекурсивный обход вложенных папок, и добавляет их в архив
*
* @param string $src_dir папка которую хотим заархивировать
* @param string $zip Куда кладем и как называем файл архива
* @return ZIP
*/
function ZipDirectory($src_dir, $zip, $dir_in_archive = '')
{
$dirHandle = opendir($src_dir);
while (false !== ($file = readdir($dirHandle)))
{
if (($file != '.') && ($file != '..'))
{
if (! is_dir($src_dir . $file))
{
$zip->addFile($src_dir . $file, $dir_in_archive.$file);
}
else
{
$zip->addEmptyDir($dir_in_archive.$file);
$zip = ZipDirectory($src_dir . $file . DIRECTORY_SEPARATOR, $zip, $dir_in_archive . $file . DIRECTORY_SEPARATOR);
}
}
}
return $zip;
}
/**
* Функция проверяет, возможно ли создать zip-архив, запускает
* ZipDirectory и закрывает файл при завершении обхода папок.
*
* @param string $src_dir папка которую хотим заархивировать
* @param string $archive_path Куда кладем и как называем файл архива
* @return bool true|false
*/
function ZipFull($src_dir, $archive_path)
{
$zip = new ZipArchive();
if ($zip->open($archive_path, ZIPARCHIVE::CREATE) !== true)
{
return false;
}
$zip = ZipDirectory($src_dir,$zip);
$zip->close();
return true;
}
/**
* Функция очищает кеш системных настроек
*
*/
function clearSettingsCache()
{
$cache_dir = BASE_DIR . '/tmp/cache/sql/settings/';
return rrmdir($cache_dir);
}
/**
* Функция редактирования robots.txt
*
*/
function editRobots()
{
global $AVE_DB, $AVE_Template;
$file_name = 'robots.txt';
$_REQUEST['sub'] = (! isset($_REQUEST['sub']))
? ''
: $_REQUEST['sub'];
switch ($_REQUEST['sub'])
{
case 'save':
$file = BASE_DIR . '/' . $file_name;
$template = stripcslashes($_REQUEST['code_text']);
$result = file_put_contents($file, trim($template));
if ($result === false)
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_ERR_FILE');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
$theme = 'error';
}
else
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_FILE');
$header = $AVE_Template->get_config_vars('SETTINGS_SUCCESS');
$theme = 'accept';
}
if (isAjax())
{
echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
}
else
{
$AVE_Template->assign('message', $message);
header('Location:index.php?do=settings&cp=' . SESSION);
}
exit;
default:
$file = BASE_DIR . '/' . $file_name;
$template = file_get_contents($file);
$formaction = "index.php?do=settings&action=robots&sub=save&cp=" . SESSION;
$AVE_Template->assign('file_name', $file_name);
$AVE_Template->assign('formaction', $formaction);
$AVE_Template->assign('template', $template);
break;
}
$AVE_Template->assign('content', $AVE_Template->fetch('settings/edit_file.tpl'));
}
/**
* Функция редактирования func.custom.php
*
*/
function editCustom()
{
global $AVE_Template;
$file_name = 'func.custom.php';
$_REQUEST['sub'] = (! isset($_REQUEST['sub']))
? ''
: $_REQUEST['sub'];
switch ($_REQUEST['sub'])
{
case 'save':
$file = BASE_DIR . '/functions/' . $file_name;
$template = stripcslashes($_REQUEST['code_text']);
$result = file_put_contents($file, trim($template));
if ($result === false)
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_ERR_FILE');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
$theme = 'error';
}
else
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_FILE');
$header = $AVE_Template->get_config_vars('SETTINGS_SUCCESS');
$theme = 'accept';
}
if (isAjax())
{
echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
}
else
{
$AVE_Template->assign('message', $message);
header('Location:index.php?do=settings&cp=' . SESSION);
}
exit;
default:
$file = BASE_DIR . '/functions/' . $file_name;
$template = file_get_contents($file);
$formaction = "index.php?do=settings&action=custom&sub=save&cp=" . SESSION;
$AVE_Template->assign('file_name', $file_name);
$AVE_Template->assign('formaction', $formaction);
$AVE_Template->assign('template', $template);
break;
}
$AVE_Template->assign('content', $AVE_Template->fetch('settings/edit_file.tpl'));
}
function showCache ()
{
global $AVE_Template;
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_cache.tpl'));
}
function showCacheSize ()
{
global $AVE_Template;
switch ($_REQUEST['source'])
{
case 'smarty':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/smarty'));
break;
case 'block':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/block'));
break;
case 'documents':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/documents'));
break;
case 'compiled':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/compile'));
break;
case 'langs':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/langs'));
break;
case 'modules':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/modules'));
break;
case 'navigations':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/navigations'));
break;
case 'paginations':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/paginations'));
break;
case 'requests':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/requests'));
break;
case 'rubrics':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/rubrics'));
break;
case 'sessions':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/session'));
break;
case 'sysblocks':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/sysblocks'));
break;
case 'settings':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/settings'));
break;
}
$return = [
'size' => $size,
'message' => $AVE_Template->get_config_vars('SETTINGS_SUCCESS'),
'theme' => 'accept'
];
_json($return, true);
}
function clearCache ()
{
global $AVE_Template;
switch ($_REQUEST['source'])
{
case 'smarty':
$cache_dir = BASE_DIR . '/tmp/cache/smarty';
break;
case 'block':
$cache_dir = BASE_DIR . '/tmp/cache/sql/block';
break;
case 'documents':
$cache_dir = BASE_DIR . '/tmp/cache/sql/documents';
break;
case 'compiled':
$cache_dir = BASE_DIR . '/tmp/cache/sql/compile';
break;
case 'langs':
$cache_dir = BASE_DIR . '/tmp/cache/sql/langs';
break;
case 'modules':
$cache_dir = BASE_DIR . '/tmp/cache/sql/modules';
break;
case 'navigations':
$cache_dir = BASE_DIR . '/tmp/cache/sql/navigations';
break;
case 'paginations':
$cache_dir = BASE_DIR . '/tmp/cache/sql/paginations';
break;
case 'requests':
$cache_dir = BASE_DIR . '/tmp/cache/sql/requests';
break;
case 'rubrics':
$cache_dir = BASE_DIR . '/tmp/cache/sql/rubrics';
break;
case 'sysblocks':
$cache_dir = BASE_DIR . '/tmp/cache/sql/sysblocks';
break;
case 'sessions':
$cache_dir = BASE_DIR . '/tmp/session';
break;
case 'settings':
$cache_dir = BASE_DIR . '/tmp/cache/sql/settings';
break;
}
$remove = rrmdir($cache_dir);
$return = [
'size' => format_size(get_dir_size($cache_dir)),
'header' => $remove ? $AVE_Template->get_config_vars('SETTINGS_CACHE_SUCCESS') : $AVE_Template->get_config_vars('SETTINGS_CACHE_ERROR'),
'message' => $remove ? $AVE_Template->get_config_vars('SETTINGS_CACHE_SUCCESS_T') : $AVE_Template->get_config_vars('SETTINGS_CACHE_ERROR_T'),
'theme' => $remove ? 'accept' : 'error'
];
_json($return, true);
}
}
?>