Browse Source

Fixes

master
M@d D3n 6 years ago
parent
commit
19416872ff
  1. 1
      admin/lang/ru/dbactions.txt
  2. 5
      admin/lang/ru/request.txt
  3. 326
      admin/settings.php
  4. 8
      admin/templates/dbactions/actions.tpl
  5. 2
      admin/templates/modules/modules.tpl
  6. 4
      admin/templates/request/form.tpl
  7. 1
      admin/templates/rubs/_field_code.tpl
  8. 2
      admin/templates/rubs/form.tpl
  9. 4
      admin/templates/rubs/tmpls.tpl
  10. 6
      admin/templates/settings/pagination_edit.tpl
  11. 7
      admin/templates/settings/settings_main.tpl
  12. 6
      admin/templates/settings/settings_pagination.tpl
  13. 420
      class/class.core.php
  14. 187
      class/class.database.php
  15. 23
      class/class.dbdump.php
  16. 13
      class/class.debug.php
  17. 7005
      class/class.docs.php
  18. 3
      class/class.modules.php
  19. 49
      class/class.navigation.php
  20. 21
      class/class.paginations.php
  21. 109
      class/class.porter.php
  22. 205
      class/class.request.php
  23. 836
      class/class.rubs.php
  24. 1139
      class/class.settings.php
  25. 599
      class/class.template.php
  26. 76
      class/class.templates.php
  27. 121
      class/class.utm.php
  28. 29
      fields/multi_line/field.php
  29. 34
      fields/multi_line_simple/field.php
  30. 39
      fields/multi_line_slim/field.php
  31. 224
      fields/tags/field.php
  32. 4
      fields/tags/lang/ru.txt
  33. 9
      fields/tags/tpl/field-doc.tpl
  34. 5
      fields/tags/tpl/field-req.tpl
  35. 26
      fields/tags/tpl/field.tpl
  36. 4
      functions/func.breadcrumbs.php
  37. 100
      functions/func.common.php
  38. 47
      functions/func.documents.php
  39. 69
      functions/func.fields.php
  40. 31
      functions/func.navigation.php
  41. 202
      functions/func.parserequest.php
  42. 367
      functions/func.watermarks.php
  43. 4
      inc/config.php
  44. 16
      inc/init.php
  45. 24
      inc/sitemap.php
  46. 2
      index.php
  47. 12
      install/data_base.sql
  48. 24
      install/index.php
  49. 63
      install/structure_base.sql
  50. 33
      templates/default/css/styles.css
  51. 267
      tmp/update/sql.update.php

1
admin/lang/ru/dbactions.txt

@ -45,3 +45,4 @@ DB_ACTIONS_DELETE_H = "Удалить файл"
DB_ACTIONS_DELETE_T = "Вы уверены, что хотите удалить файл резервной копии базы данных?"
DB_NO_FILES_MESS = "В настоящий момент, нет файлов резервных копий базы данных"
DB_BACKUP_FILE_NAME = "Имя файла:"

5
admin/lang/ru/request.txt

@ -193,4 +193,7 @@ REQUEST_OTHER = "Прочее"
REQUEST_SHOW_SQL = "Показать SQL запрос"
REQUEST_DOC_ON_PAGE = "Число элементов запроса на странице"
REQUEST_PAGES_CURENT = "Номер страницы пагинации"
REQUEST_PAGES_TOTAL = "Общее кол-во страниц пагинации"
REQUEST_PAGES_TOTAL = "Общее кол-во страниц пагинации"
// v 3.24
REQUEST_COUNT_ITEMS = "Получать кол-во элементов (если не используется постраничная навигация)"

326
admin/settings.php

@ -1,186 +1,186 @@
<?php
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
if (!defined('ACP'))
{
header('Location:index.php');
exit;
}
global $AVE_Template;
require(BASE_DIR . '/class/class.docs.php');
require(BASE_DIR . '/class/class.settings.php');
$AVE_Settings = new AVE_Settings;
$AVE_Document = new AVE_Document;
$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/settings.txt','settings');
switch($_REQUEST['action'])
{
case '':
switch ($_REQUEST['sub'])
{
case '':
if(check_permission_acp('gen_settings'))
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
if (!defined('ACP'))
{
header('Location:index.php');
exit;
}
global $AVE_Template;
require(BASE_DIR . '/class/class.docs.php');
require(BASE_DIR . '/class/class.settings.php');
$AVE_Settings = new AVE_Settings;
$AVE_Document = new AVE_Document;
$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/settings.txt','settings');
switch($_REQUEST['action'])
{
case '':
switch ($_REQUEST['sub'])
{
$AVE_Settings->settingsShow();
break;
}
case 'case':
if(check_permission_acp('gen_settings_more'))
{
$AVE_Settings->settingsCase();
break;
}
case '':
if(check_permission_acp('gen_settings'))
{
$AVE_Settings->settingsShow();
break;
}
case 'save':
if (isset($_REQUEST['more'])) {
if(check_permission_acp('gen_settings_more')) $AVE_Settings->settingsCase();
} else {
if(check_permission_acp('gen_settings')) $AVE_Settings->settingsSave();
case 'case':
if(check_permission_acp('gen_settings_more'))
{
$AVE_Settings->settingsCase();
break;
}
break;
case 'countries':
if(check_permission_acp('gen_settings_countries'))
{
if (isset($_REQUEST['save']) && $_REQUEST['save'] == 1)
case 'save':
if (isset($_REQUEST['more'])) {
if(check_permission_acp('gen_settings_more')) $AVE_Settings->settingsCase();
} else {
if(check_permission_acp('gen_settings')) $AVE_Settings->settingsSave();
}
break;
case 'countries':
if(check_permission_acp('gen_settings_countries'))
{
$AVE_Settings->settingsCountriesSave();
if (isset($_REQUEST['save']) && $_REQUEST['save'] == 1)
{
$AVE_Settings->settingsCountriesSave();
header('Location:index.php?do=settings&sub=countries&cp=' . SESSION);
exit;
header('Location:index.php?do=settings&sub=countries&cp=' . SESSION);
exit;
}
$AVE_Settings->settingsCountriesList();
break;
}
$AVE_Settings->settingsCountriesList();
break;
}
case 'language':
if(check_permission_acp('gen_settings_languages'))
{
if(isset($_REQUEST['func'])){
switch($_REQUEST['func'])
{
case 'default':
if(isset($_REQUEST['Id'])){
$exists=$AVE_DB->Query("SELECT Id FROM ".PREFIX."_settings_lang WHERE Id=".(int)$_REQUEST['Id'])->GetCell();
if($exists){
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=0");
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=1 WHERE Id=".(int)$_REQUEST['Id']." LIMIT 1");
case 'language':
if(check_permission_acp('gen_settings_languages'))
{
if(isset($_REQUEST['func'])){
switch($_REQUEST['func'])
{
case 'default':
if(isset($_REQUEST['Id'])){
$exists=$AVE_DB->Query("SELECT Id FROM ".PREFIX."_settings_lang WHERE Id=".(int)$_REQUEST['Id'])->GetCell();
if($exists){
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=0");
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=1 WHERE Id=".(int)$_REQUEST['Id']." LIMIT 1");
}
}
}
header('Location:index.php?do=settings&sub=language&cp=' . SESSION);
exit;
case 'on':
if(isset($_REQUEST['Id'])){
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=1 WHERE Id=".(int)$_REQUEST['Id']);
}
header('Location:index.php?do=settings&sub=language&cp=' . SESSION);
exit;
case 'off':
if(isset($_REQUEST['Id'])){
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=0 WHERE Id=".(int)$_REQUEST['Id']);
}
header('Location:index.php?do=settings&sub=language&cp=' . SESSION);
exit;
case 'save':
$AVE_Settings->settingsLanguageEditSave();
exit;
header('Location:index.php?do=settings&sub=language&cp=' . SESSION);
exit;
case 'on':
if(isset($_REQUEST['Id'])){
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=1 WHERE Id=".(int)$_REQUEST['Id']);
}
header('Location:index.php?do=settings&sub=language&cp=' . SESSION);
exit;
case 'off':
if(isset($_REQUEST['Id'])){
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=0 WHERE Id=".(int)$_REQUEST['Id']);
}
header('Location:index.php?do=settings&sub=language&cp=' . SESSION);
exit;
case 'save':
$AVE_Settings->settingsLanguageEditSave();
exit;
}
}
else
{
$AVE_Settings->settingsLanguageList();
break;
}
}
else
case 'editlang':
if (check_permission_acp('gen_settings_languages'))
{
$AVE_Settings->settingsLanguageList();
$AVE_Settings->settingsLanguageEdit();
break;
}
}
case 'editlang':
if(check_permission_acp('gen_settings_languages'))
{
$AVE_Settings->settingsLanguageEdit();
break;
}
case 'clearcache':
if (check_permission_acp('cache_clear'))
{
$AVE_Template->CacheClear();
exit;
}
case 'clearcache':
if(check_permission_acp('cache_clear'))
{
$AVE_Template->CacheClear();
exit;
}
case 'clearthumb':
if (check_permission_acp('cache_thumb'))
{
$AVE_Template->ThumbnailsClear();
exit;
}
case 'clearthumb':
if(check_permission_acp('cache_thumb'))
{
$AVE_Template->ThumbnailsClear();
exit;
}
case 'clearrevision':
if (check_permission_acp('document_revisions'))
{
$AVE_Document->documentsRevisionsClear();
exit;
}
case 'clearrevision':
if(check_permission_acp('document_revisions'))
{
$AVE_Document->documentsRevisionsClear();
exit;
}
case 'clearcounter':
if (check_permission_acp('gen_settings'))
{
$AVE_Document->documentCounterClear();
exit;
}
case 'clearcounter':
if(check_permission_acp('gen_settings'))
{
$AVE_Document->documentCounterClear();
exit;
case 'showcache':
cacheShow();
exit;
}
case 'showcache':
cacheShow();
exit;
}
break;
//-- v3.2
case 'paginations':
$AVE_Settings->settingsPaginationsList();
break;
case 'new_paginations':
$AVE_Settings->settingsPaginationsNew();
break;
case 'edit_paginations':
$AVE_Settings->settingsPaginationsEdit();
break;
case 'save_paginations':
$AVE_Settings->settingsPaginationsSave();
break;
case 'del_paginations':
$AVE_Settings->settingsPaginationsDel();
break;
//-- v3.2
//-- v3.24
case 'robots':
$AVE_Settings->editRobots();
break;
case 'custom':
$AVE_Settings->editCustom();
break;
//-- v3.24
}
break;
//-- v3.2
case 'paginations':
$AVE_Settings->settingsPaginationsList();
break;
case 'new_paginations':
$AVE_Settings->settingsPaginationsNew();
break;
case 'edit_paginations':
$AVE_Settings->settingsPaginationsEdit();
break;
case 'save_paginations':
$AVE_Settings->settingsPaginationsSave();
break;
case 'del_paginations':
$AVE_Settings->settingsPaginationsDel();
break;
//-- v3.2
//-- v3.24
case 'robots':
$AVE_Settings->editRobots();
break;
case 'custom':
$AVE_Settings->editCustom();
break;
//-- v3.24
}
?>

8
admin/templates/dbactions/actions.tpl

@ -53,6 +53,14 @@
<div class="fix mt10"><input type="checkbox" name="server" value="1" class="float" /><label>{#DB_BACKUP_SERVER#}</label></div>
</td>
</tr>
<tr>
<td>
{#DB_BACKUP_FILE_NAME#}
</td>
<td colspan="3">
<input type="text" name="file_name" value="" />
</td>
</tr>
</tbody>
</table>
<div class="rowElem">

2
admin/templates/modules/modules.tpl

@ -128,7 +128,7 @@ $(document).ready(function(){ldelim}
</td>
<td align="center" width="20">
{if $module.status}
{if $module.ModuleStatus}
<a title="{#MODULES_REINSTALL#}" href="index.php?do=modules&action=reinstall&module={$module.ModuleSysName}&cp={$sess}" class="topleftDir ConfirmReInstall icon_sprite ico_reinstall"></a>
{else}
<a title="{#MODULES_DELETE#}" dir="{#MODULES_DELETE#}" name="{#MODULES_DELETE_CONFIRM#}" href="index.php?do=modules&action=delete&module={$module.ModuleSysName}&cp={$sess}" class="topleftDir ConfirmDelete icon_sprite ico_delete"></a>

4
admin/templates/request/form.tpl

@ -288,8 +288,10 @@ function changeRub(select) {ldelim}
</td>
</tr>
<tr>
<td>{#REQUEST_COUNT_ITEMS#}</td>
<td><input class="mousetrap float" name="request_count_items" type="checkbox" id="request_count_items" value="1"{if $row->request_count_items == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td>{#REQUEST_USE_QUERY#}</td>
<td colspan="3"><input class="mousetrap float" name="request_use_query" type="checkbox" id="request_use_query" value="1"{if $row->request_use_query == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_use_query" type="checkbox" id="request_use_query" value="1"{if $row->request_use_query == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
</tr>
</tbody>

1
admin/templates/rubs/_field_code.tpl

@ -50,6 +50,7 @@
</div>
<input type="hidden" name="rubric_id" value="{$smarty.request.rubric_id}" />
<input type="hidden" name="func" value="{$params.func}" />
{if $params.id}
<input type="hidden" name="field_id" value="{$params.id}" />

2
admin/templates/rubs/form.tpl

@ -6,7 +6,7 @@
<div class="title">
<h5>{#RUBRIK_TEMPLATE_EDIT#}</h5>
<div class="num">
<a class="basicNum" href="index.php?do=rubs&action=tmpls&Id={$smarty.request.Id|escape}&cp={$sess}">{#RUBRIC_TMPLS_BUTTON#}</a>
<a class="basicNum greenNum" href="index.php?do=rubs&action=tmpls&Id={$smarty.request.Id|escape}&cp={$sess}">{#RUBRIC_TMPLS_BUTTON#}</a>
</div>
</div>
{/if}

4
admin/templates/rubs/tmpls.tpl

@ -36,7 +36,7 @@ $(document).ready(function(){ldelim}
<div class="title">
<h5>{#RUBRIC_TMPLS_HEAD#}</h5>
<div class="num">
<a class="basicNum" href="index.php?do=rubs&action=template&Id={$smarty.request.Id|escape}&cp={$sess}">{#RUBRIK_EDIT_TEMPLATE#}</a>
<a class="basicNum greenNum" href="index.php?do=rubs&action=template&Id={$smarty.request.Id|escape}&cp={$sess}">{#RUBRIK_EDIT_TEMPLATE#}</a>
</div>
</div>
@ -90,7 +90,7 @@ $(document).ready(function(){ldelim}
<li class="activeTab"><a href="#tab1">{#RUBRIC_TMPLS_HEAD#}</a></li>
{if check_permission('rubric_edit')}<li class=""><a href="#tab2">{#RUBRIC_TMPLS_ADD#}</a></li>{/if}
<div class="num">
<a class="basicNum" href="index.php?do=rubs&action=tmpls_from&rubric_id={$smarty.request.Id|escape}&cp={$sess}">{#RUBRIC_TMPLS_FROM#}</a>
<a class="basicNum greenNum" href="index.php?do=rubs&action=tmpls_from&rubric_id={$smarty.request.Id|escape}&cp={$sess}">{#RUBRIC_TMPLS_FROM#}</a>
</div>
</ul>
<div class="tab_container">

6
admin/templates/settings/pagination_edit.tpl

@ -33,12 +33,6 @@
</div>
</div>
{if $smarty.const.SYSTEM_CACHE_LIFETIME > 0}
<ul class="messages first">
<li class="highlight red"><strong>{#SETTINGS_CACHE_LIFETIME#}</strong></li>
</ul>
{/if}
<div class="widget first">
<ul class="inact_tabs">
{if check_permission('gen_settings')}<li><a href="index.php?do=settings&cp={$sess}">{#SETTINGS_MAIN_SETTINGS#}</a></li>{/if}

7
admin/templates/settings/settings_main.tpl

@ -28,13 +28,8 @@
</div>
</div>
{if $smarty.const.SYSTEM_CACHE_LIFETIME > 0}
<ul class="messages first">
<li class="highlight red"><strong>{#SETTINGS_CACHE_LIFETIME#}</strong></li>
</ul>
{/if}
<form id="settings" name="settings" method="post" action="index.php?do=settings&cp={$sess}&sub=save" class="mainForm">
<fieldset>
<div class="widget first">

6
admin/templates/settings/settings_pagination.tpl

@ -28,12 +28,6 @@
</div>
</div>
{if $smarty.const.SYSTEM_CACHE_LIFETIME > 0}
<ul class="messages first">
<li class="highlight red"><strong>{#SETTINGS_CACHE_LIFETIME#}</strong></li>
</ul>
{/if}
<div class="widget first">
<ul class="inact_tabs">
{if check_permission('gen_settings')}<li><a href="index.php?do=settings&cp={$sess}">{#SETTINGS_MAIN_SETTINGS#}</a></li>{/if}

420
class/class.core.php

@ -108,21 +108,21 @@
if (is_numeric($template_id))
{
$cache = 'template_' . $template_id;
$cache_file = BASE_DIR . '/tmp/cache/templates/' . $cache . '.inc';
$cache_file = BASE_DIR . '/templates/' . DEFAULT_THEME_FOLDER . '/include/templates/' . $template_id . '/template.inc';
// Если включен DEV MODE, то отключаем кеширование
if (defined('DEV_MODE') AND DEV_MODE)
$cache_file = null;
if (! file_exists(dirname($cache_file)))
mkdir(dirname($cache_file), 0766, true);
if (! is_dir(dirname($cache_file)))
@mkdir(dirname($cache_file), 0766, true);
if (file_exists($cache_file))
// Если файл есть и он не пустой используем его
if (file_exists($cache_file) && filesize($cache_file))
{
$return = file_get_contents($cache_file);
}
// Иначе лезем в БД и достаем шаблон
else
{
$return = $AVE_DB->Query("
@ -137,6 +137,7 @@
$return = stripslashes($return);
// Сохраняем в файл
if ($cache_file)
file_put_contents($cache_file, $return);
}
@ -434,22 +435,6 @@
}
/**
* Метод, предназначенный для формирования хэша страницы
*
* @return string
*/
function _get_cache_hash()
{
$hash = 'g-' . UGROUP;
$hash .= 'r-' . RUB_ID;
$hash .= 'u-' . get_redirect_link();
$hash .= 't-' . $this->curentdoc->rubric_tmpl_id;
return md5($hash);
}
/**
* Метод, предназначенный для проверки существования документа в БД
*
@ -747,12 +732,6 @@
$main_content
);
// Удаляем ошибочные теги полей документа в шаблоне рубрики
$main_content = preg_replace('/\[tag:watermark:\w*\]/', '', $main_content);
$main_content = preg_replace('/\[tag:fld:\d*\]/', '', $main_content);
$main_content = preg_replace('/\[tag:doc:\w*\]/', '', $main_content);
$main_content = preg_replace('/\[tag:langfile:\w*\]/', '', $main_content);
// парсим теги в шаблоне рубрики
$main_content = preg_replace_callback(
'/\[tag:date:([a-zA-Z0-9-. \/]+)\]/',
@ -769,47 +748,132 @@
if (preg_match('[tag:docauthor]', $main_content))
$main_content = str_replace('[tag:docauthor]', get_username_by_id($this->curentdoc->document_author_id), $main_content);
if (CACHE_DOC_TPL && empty($_POST))
// Удаляем ошибочные теги полей документа в шаблоне рубрики
$main_content = preg_replace('/\[tag:watermark:\w*\]/', '', $main_content);
$main_content = preg_replace('/\[tag:fld:\w*\]/', '', $main_content);
$main_content = preg_replace('/\[tag:doc:\w*\]/', '', $main_content);
$main_content = preg_replace('/\[tag:langfile:\w*\]/', '', $main_content);
//-- Кеширование скомпилированного документа
$this->setCompileDocument($main_content);
return $main_content;
}
/**
* Метод, предназначенный для формирования хэша страницы
*
* @return string
*/
function _get_cache_hash()
{
$hash = 'g-' . UGROUP; // Группа пользователей
$hash .= 'r-' . RUB_ID; // ID Рубрики
$hash .= 't-' . $this->curentdoc->rubric_tmpl_id; // Шаблон рубрики
//$hash .= 'u-' . get_redirect_link(); // ToDo
return md5($hash);
}
function _get_cache_id()
{
$cache = array();
$cache['id'] = (int)$this->curentdoc->Id;
if (! $cache['id'])
return false;
$cache['id'] = (int)$cache['id'];
$cache['id'] = 'documents/compiled/' . (floor($cache['id'] / 1000)) . '/' . $cache['id'];
$cache['file'] = $this->_get_cache_hash() . '.compiled';
if (! $cache['file'])
return false;
$cache['dir'] = BASE_DIR . '/tmp/cache/sql/' . (trim($cache['id']) > ''
? trim($cache['id']) . '/'
: substr($cache['file'], 0, 2) . '/' . substr($cache['file'], 2, 2) . '/' . substr($cache['file'], 4, 2) . '/');
return $cache;
}
function setCompileDocument ($main_content)
{
$cache = $this->_get_cache_id();
if (! $cache)
return false;
//-- Удаляем файл, если существует
if (file_exists($cache['dir'] . $cache['file']))
unlink($cache['dir'] . $cache['file']);
// Если включен DEV MODE, то отключаем кеширование запросов
if (defined('DEV_MODE') AND DEV_MODE)
return false;
//-- Кэширование разрешено
if (defined('CACHE_DOC_TPL') && CACHE_DOC_TPL)
{
$cache_id = (int)$this->curentdoc->Id;
$cache_id = 'compiled/' . (floor($cache_id / 1000)) . '/' . $cache_id;
//-- Если нет папки, создаем
if (! is_dir($cache['dir']))
@mkdir($cache['dir'], 0766, true);
$cache_file = $this->_get_cache_hash();
//-- Сохраняем скомпилированный шаблон в кэш
file_put_contents($cache['dir'] . $cache['file'], $main_content);
}
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
: substr($cache_file, 0, 2) . '/' . substr($cache_file, 2, 2) . '/' . substr($cache_file, 4, 2) . '/');
return true;
}
// кэширование разрешено
// сохраняем скомпилированный шаблон в кэш
if (CACHE_DOC_FILE)
{
if (! is_dir($cache_dir))
mkdir($cache_dir, 0766, true);
file_put_contents($cache_dir . $cache_file, $main_content);
}
function getCompileDocument ()
{
$cache = $this->_get_cache_id();
// кэширование разрешено
// сохраняем скомпилированный шаблон в кэш
$AVE_DB->Query("
INSERT INTO
" . PREFIX . "_rubric_template_cache
SET
hash = '" . $cache_file . "',
rub_id = '" . RUB_ID . "',
rub_tmpl_id = '" . $this->curentdoc->rubric_tmpl_id . "',
grp_id = '" . UGROUP . "',
doc_id = '" . $id . "',
compiled = '" . addslashes($main_content) . "'
");
if (! $cache)
return false;
$content = false;
//-- Если нет папки, создаем
if (! is_dir($cache['dir']))
@mkdir($cache['dir'], 0766, true);
//-- Получаем сразу поля
get_document_fields((int)$this->curentdoc->Id);
unset ($cache_id, $cache_file, $cache_dir);
// Наличие файла
if (file_exists($cache['dir'] . $cache['file']))
{
// Получаем время создания файла
$file_time = filemtime($cache['dir'] . $cache['file']);
// Получаем время для проверки
$cache_time = $this->curentdoc->rubric_changed;
if (! $cache_time || $cache_time > $file_time)
{
unlink ($cache['dir'] . $cache['file']);
}
else if (defined('CACHE_DOC_TPL') && CACHE_DOC_TPL)
// Извлекаем скомпилированный шаблон документа из кэша
$content = file_get_contents($cache['dir'] . $cache['file']);
}
else
{
$content = false;
}
return $main_content;
return $content;
}
/**
* Метод, предназначенный для обработки системных тегов модулей. Здесь подключаются только те файлы модулей,
* системные теги которых обнаружены в шаблоне при парсинге. Также формирует массив всех установленных модулей
@ -1119,44 +1183,12 @@
}
}
if (CACHE_DOC_TPL && empty ($_POST))
{
// Кэширование разрешено
// Извлекаем скомпилированный шаблон документа из кэша
// Если там пусто, пробуем достать из бд
$cache_id = (int)$this->curentdoc->Id;
$cache_id = 'compiled/' . (floor($cache_id / 1000)) . '/' . $cache_id;
$cache_file = $this->_get_cache_hash();
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
: substr($cache_file, 0, 2) . '/' . substr($cache_file, 2, 2) . '/' . substr($cache_file, 4, 2) . '/');
if (CACHE_DOC_FILE && file_exists($cache_dir . $cache_file))
{
$main_content = file_get_contents($cache_dir . $cache_file);
}
else
{
$main_content = $AVE_DB->Query("
SELECT
compiled
FROM
" . PREFIX . "_rubric_template_cache
WHERE
hash = '" . $cache_file . "'
LIMIT 1
")->GetCell();
}
unset($cache_dir, $cache_file, $cache_id);
}
// Извлекаем скомпилированный шаблон документа из кэша
if (defined('CACHE_DOC_TPL') && CACHE_DOC_TPL) // && empty ($_POST)
$main_content = $this->getCompileDocument();
else
{ // Кэширование запрещено
// Кэширование запрещено
$main_content = false;
}
// Собираем контент
// Если в кеше нет контента, то
@ -1203,15 +1235,11 @@
// Собираем шаблон рубрики
if (empty($rubTmpl))
{
// Если не задан шаблон рубрики, выводим сообщение
$main_content = $this->_rubric_template_empty;
}
else
{
// Обрабатываем основные поля рубрики
$main_content = $this->_main_content($main_content, $id, $rubTmpl);
}
}
}
@ -1253,7 +1281,7 @@
// Парсим поля запроса
$out = preg_replace_callback(
'/\[tag:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|[0-9-]+)]/',
'/\[tag:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/',
create_function(
'$m',
'return request_get_document_field($m[1], ' . $id . ', $m[2], ' . (defined('RUB_ID') ? RUB_ID : 0) . ');'
@ -1262,7 +1290,7 @@
);
// Удаляем ошибочные теги полей документа в шаблоне рубрики
$out = preg_replace('/\[tag:rfld:\d*\]/', '', $out);
$out = preg_replace('/\[tag:rfld:\w*\]/', '', $out);
// Если в GET запросе пришел параметр print, т.е. страница для печати,
// парсим контент, который обрамлен тегами только для печати
@ -1544,7 +1572,7 @@
{
global $AVE_DB;
// Если нужны параметры GET, можно отключить
//-- Если нужны параметры GET, можно отключить
$get_url = (strpos($get_url, ABS_PATH . '?') === 0
? ''
: $get_url);
@ -1555,15 +1583,18 @@
$get_url = rawurldecode($get_url);
$get_url = mb_substr($get_url, strlen(ABS_PATH));
// Сохранение старого урла для првоерки использования суффикса
$test_url = $get_url;
//-- Сохранение старого урла для првоерки использования суффикса
$check_url = $get_url;
if (mb_substr($get_url, - strlen(URL_SUFF)) == URL_SUFF)
{
$get_url = mb_substr($get_url, 0, - strlen(URL_SUFF));
}
// Разбиваем строку параметров на отдельные части
//-- Ложный URL
$fake_url = false;
//-- Разбиваем строку параметров на отдельные части
$get_url = explode('/', $get_url);
if (isset ($get_url['index']))
@ -1577,7 +1608,7 @@
unset ($get_url['print']);
}
// Определяем, используется ли у нас разделение документа по страницам
//-- Определяем, используется ли у нас разделение документа по страницам
$pages = preg_grep('/^(a|art)?page-\d+$/i', $get_url);
if (! empty ($pages))
@ -1594,18 +1625,62 @@
$pages
);
}
// В противном случае формируем окончательную ссылку для документа
//-- В противном случае формируем окончательную ссылку для документа
else
{
$get_url = implode('/', $get_url);
}
//-- Страница тегов
preg_match('/^tags(|(\/.*))+$/is', $get_url, $match);
//-- Если есть совпадение с tag
if ($match)
{
//-- Смотрим условие
if (isset($match[2]))
{
//-- Отрезаем лишнее
$matches = trim($match[2], '/');
//-- Разбиваем
$matches = explode('/', $matches);
//-- Берем первое значение
$matches = urldecode(array_shift($matches));
//-- Если значение не равно пусто
if ($matches != '')
{
//-- Передаем в _GET условие tag
$_GET['tag'] = $_REQUEST['tag'] = $matches;
//-- Парсим query strings
parse_str($_SERVER['QUERY_STRING'], $query_string);
//-- Назначаем условие
$query_string['tag'] = $matches;
//-- Пересобираем QUERY_STRING
$_SERVER['QUERY_STRING'] = http_build_query($query_string);
//-- Назначаем URL
$get_url = 'tags';
//-- Инициализируем ложный URL
$fake_url = true;
}
}
}
//-- Экранируем поступающий URL
$get_url = $AVE_DB->ClearUrl($get_url);
//-- Проверяем есть ли данный URL в таблице алиасов модулей
$sql = "
SELECT
# MODULE LINK
document_id,
module_name,
module_action,
module_link
@ -1615,18 +1690,24 @@
module_url = '" . str_ireplace("'", "\'", $get_url) . "'
";
$query = $AVE_DB->Query($sql)->FetchRow();
$module = $AVE_DB->Query($sql)->FetchAssocArray();
if ($query)
if ($module)
{
//-- Передаем глобальные перемененные
$_GET['module'] = $_REQUEST['module'] = $query->module_name;
$_GET['action'] = $_REQUEST['action'] = $query->module_action;
$_GET['module'] = $_REQUEST['module'] = $module['module_name'];
$_GET['action'] = $_REQUEST['action'] = $module['module_action'];
$get_url = ABS_PATH . $query->module_link;
$get_url = ABS_PATH . $module['module_link'];
//-- Если есть document_id, назначем его
if ($module['document_id'])
$_REQUEST['id'] = (int)$module['document_id'];
}
// проверка на наличие id в запросе
unset ($sql, $module);
//-- Проверка на наличие id в запросе
if (! empty($_REQUEST['id']))
{
$get_url = $AVE_DB->Query("
@ -1646,67 +1727,98 @@
? intval($_REQUEST['id'])
: 1);
// Забираем нужные данные
//-- Забираем нужные данные
$sql = "
SELECT
doc.*,
rubric_permission,
rubric_template,
rubric_meta_gen,
rubric_template_id,
rub.rubric_header_template,
rub.rubric_footer_template,
rub.rubric_start_code,
other.template
# URL FETCH = $get_url
*
FROM
" . PREFIX . "_documents AS doc
JOIN
" . PREFIX . "_rubrics AS rub
ON rub.Id = doc.rubric_id
JOIN
" . PREFIX . "_rubric_permissions AS prm
ON doc.rubric_id = prm.rubric_id
LEFT JOIN
" . PREFIX . "_rubric_templates AS other
ON doc.rubric_id = other.rubric_id AND doc.rubric_tmpl_id = other.id
" . PREFIX . "_documents
WHERE
user_group_id = '" . UGROUP . "'
AND
" . (! empty ($get_url) && ! isset($_REQUEST['module'])
? "document_alias = '" . str_ireplace("'", "\'", $get_url) . "'"
: (! empty($_REQUEST['id'])
? "doc.Id =" . intval($_REQUEST['id'])
: "doc.Id = 1")) . "
? "Id =" . intval($_REQUEST['id'])
: "Id = 1")) . "
LIMIT 1
";
$hash_url = md5($get_url);
$query = $AVE_DB->Query($sql, CACHE_DOC_SQL, 'url_' . $hash_url);
$cache_time = 0;
if (defined('CACHE_DOC_FILE') && CACHE_DOC_FILE)
$cache_time = -1;
else
$AVE_DB->clearCacheUrl('url_' . $hash_url);
$this->curentdoc = $AVE_DB->Query($sql, $cache_time, 'url_' . $hash_url, true, '.fetch')->FetchRow();
if ($this->curentdoc = $query->FetchRow())
if ($this->curentdoc)
{
// Получить шаблон рубрики
$sql = "
SELECT STRAIGHT_JOIN
# FETCH RUB = " . $this->curentdoc->rubric_id . "
prm.rubric_permission,
rub.rubric_template,
rub.rubric_meta_gen,
rub.rubric_template_id,
rub.rubric_header_template,
rub.rubric_footer_template,
rub.rubric_start_code,
rub.rubric_changed,
rub.rubric_changed_fields,
other.template
FROM
" . PREFIX . "_rubrics AS rub
LEFT JOIN
" . PREFIX . "_rubric_permissions AS prm
ON rub.Id = prm.rubric_id
LEFT JOIN
" . PREFIX . "_rubric_templates AS other
ON (rub.Id = other.rubric_id AND other.id = '" . $this->curentdoc->rubric_tmpl_id . "')
WHERE
prm.user_group_id = '" . UGROUP . "'
AND
rub.Id = '" . $this->curentdoc->rubric_id . "'
";
$query = $AVE_DB->Query($sql, $cache_time, 'rub_' . $this->curentdoc->rubric_id, true, '.fetch')->FetchRow();
$this->curentdoc = (object) array_merge((array) $query, (array) $this->curentdoc);
if ($this->curentdoc->rubric_tmpl_id != 0)
{
$this->curentdoc->rubric_template = (($this->curentdoc->template != '')
? $this->curentdoc->template
: $this->curentdoc->rubric_template);
unset($this->curentdoc->template);
unset ($this->curentdoc->template);
}
// Глобальные переменные
//-- Глобальные переменные
$_GET['id'] = $_REQUEST['id'] = $this->curentdoc->Id;
$_GET['doc'] = $_REQUEST['doc'] = $this->curentdoc->document_alias;
// Назначаем язык пользователю, в завивисомтси от языка документа
//-- Назначаем язык пользователю, в завивисомтси от языка документа
if ($this->curentdoc->Id != PAGE_NOT_FOUND_ID OR $this->curentdoc->document_lang == '--')
$_SESSION['user_language'] = $this->curentdoc->document_lang;
// Перенаправление на адреса с суффиксом
//-- Если есть ложный URL указываем его
if ($fake_url)
{
$check_url = preg_replace('/\/(a|art)?page-\d/i', '', $check_url);
$_GET['doc'] = $_REQUEST['doc'] = $check_url;
$this->curentdoc->document_alias = $check_url;
$get_url = $check_url;
}
//-- Перенаправление на адреса с суффиксом
if (
$test_url !== $get_url . URL_SUFF
&& ! $pages && $test_url
$check_url !== $get_url . URL_SUFF
&& ! $pages && $check_url
&& ! $_REQUEST['print']
&& ! $_REQUEST['module']
&& ! $_REQUEST['tag']
@ -1716,21 +1828,20 @@
header('HTTP/1.1 301 Moved Permanently');
if ($this->curentdoc->Id == 1)
{
header('Location:' . ABS_PATH);
exit();
}
else
{
header('Location:' . ABS_PATH . $get_url . URL_SUFF);
exit();
}
exit();
}
}
else
{
$AVE_DB->clearCacheUrl('url_' . $hash_url);
$sql = "
SELECT
# REDIRECT = $get_url
a.document_alias
FROM
".PREFIX."_document_alias_history AS h,
@ -1743,12 +1854,11 @@
$redirect_alias = $AVE_DB->Query($sql)->GetCell();
$redirect_alias = ABS_PATH . $redirect_alias . URL_SUFF;
$redirect_alias = str_replace('//', '/', $redirect_alias);
if (! empty($redirect_alias))
if ($redirect_alias && ! empty($redirect_alias))
{
$redirect_alias = ABS_PATH . $redirect_alias . URL_SUFF;
$redirect_alias = str_replace('//', '/', $redirect_alias);
header('HTTP/1.1 301 Moved Permanently');
header('Location:' . $redirect_alias);
exit();

187
class/class.database.php

@ -400,6 +400,10 @@
*/
public $_last_query;
//-- Instance
protected static $instance = null;
/**
* Конструктор
*
@ -415,12 +419,12 @@
$this->db_password = $db['dbpass'];
$this->db_prefix = $db['dbpref'];
if(!isset($db['dbport']))
if (! isset($db['dbport']))
$this->db_port = ini_get ('mysqli.default_port');
else
$this->db_port = (isset($db['dbport']) ? $db['dbport'] : null);
if(!isset($db['dbsock']))
if (! isset($db['dbsock']))
$this->db_socket = ini_get ('mysqli.default_socket');
else
$this->db_port = (isset($db['dbsock']) ? $db['dbsock'] : null);
@ -511,9 +515,9 @@
* @param $db
* @return object возвращает инстанс данного класса.
*/
public static function getInstance($db = array())
public static function getInstance ($config = array())
{
return new self($db);
return new self($config);
}
@ -767,27 +771,83 @@
}
public function cacheFile($cache_id)
public function cacheId($cache_id)
{
// Если это документ, то меняем расположение
//-- Если это документ, то меняем расположение
if (substr($cache_id, 0, 3) == 'doc')
{
$cache_id = (int)str_replace('doc_', '', $cache_id);
$cache_id = 'doc/' . (floor($cache_id / 1000)) . '/' . $cache_id;
return $cache_id = 'documents/' . (floor($cache_id / 1000)) . '/' . $cache_id;
}
//-- Если это полный документ, то меняем расположение
if (substr($cache_id, 0, 3) == 'dat')
{
$cache_id = (int)str_replace('dat_', '', $cache_id);
return $cache_id = 'documents/data/' . (floor($cache_id / 1000)) . '/' . $cache_id;
}
// Если это
//-- Если это скомпилированный шаблон документа, то меняем расположение
if (substr($cache_id, 0, 3) == 'cmd')
{
$cache_id = (int)str_replace('cmd_', '', $cache_id);
return $cache_id = 'documents/compiled/' . (floor($cache_id / 1000)) . '/' . $cache_id;
}
//-- Если это поля документа, то меняем расположение
if (substr($cache_id, 0, 3) == 'fld')
{
$cache_id = (int)str_replace('fld_', '', $cache_id);
return $cache_id = 'documents/fields/' . (floor($cache_id / 1000)) . '/' . $cache_id;
}
//-- Сборка страницы
if (substr($cache_id, 0, 3) == 'url')
{
$cache_id = str_replace('url_', '', $cache_id);
$cache_id = 'url/' . substr($cache_id, 0, 3);
return $cache_id = 'documents/urls/' . substr($cache_id, 0, 3);
}
//-- Если это хлебные крошки, то меняем расположение
if (substr($cache_id, 0, 3) == 'brd')
{
$cache_id = (int)str_replace('brd_', '', $cache_id);
return $cache_id = 'documents/breadcrumbs/' . (floor($cache_id / 1000)) . '/' . $cache_id;
}
//-- Если это рубрика, то меняем расположение
if (substr($cache_id, 0, 3) == 'rub')
{
$cache_id = (int)str_replace('rub_', '', $cache_id);
return $cache_id = 'rubrics/' . $cache_id;
}
// Если это
//-- Если это запрос, то меняем расположение
if (substr($cache_id, 0, 3) == 'req')
{
$cache_id = (int)str_replace('req_', '', $cache_id);
return $cache_id = 'requests/' . $cache_id;
}
//-- Если это элемент запроса, то меняем расположение
if (substr($cache_id, 0, 3) == 'rqe')
{
$cache_id = (int)str_replace('rqe_', '', $cache_id);
return $cache_id = 'requests/elements/' . (floor($cache_id / 1000)) . '/' . $cache_id;
}
//-- Если это настройки запроса, то меняем расположение
if (substr($cache_id, 0, 3) == 'rqs')
{
$cache_id = str_replace('rqs_', '', $cache_id);
return $cache_id = 'requests/settings/' . $cache_id;
}
// -- Навигация
if (substr($cache_id, 0, 3) == 'nav')
{
$cache_id = str_replace('nav_', '', $cache_id);
$cache_id = 'nav/' . substr($cache_id, 0, 3);
$cache_id = explode('_', $cache_id);
return $cache_id = 'navigations/' . $cache_id[1];
}
return $cache_id;
@ -803,9 +863,9 @@
* @param bool $log - записать ошибки в лог? по умолчанию включено
* @return array - асоциативный массив с результом запроса
*/
public function Query($query, $TTL = null, $cache_id = '', $log = true)
public function Query ($query, $TTL = null, $cache_id = '', $log = true, $ext = '')
{
$cache_id = $this->cacheFile($cache_id);
$cache_id = $this->cacheId($cache_id);
// Принудительная фильтрация запроса
if (defined(SQL_QUERY_SANITIZE) && SQL_QUERY_SANITIZE)
@ -824,7 +884,7 @@
if ($TTL && ($TTL != 'nocache' AND $TTL != null))
{
$cache_file = md5($query);
$cache_file = md5($query) . $ext;
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
@ -833,13 +893,6 @@
if (! file_exists($cache_dir))
mkdir($cache_dir, 0766, true);
// Если стоит в настройках, запоминать все запросы
if (defined('SQL_PROFILING') && SQL_PROFILING)
{
$_caller = $this->getCaller();
$this->_query_list[] = array('caller' => $_caller, 'query' => $query, 'ttl' => $TTL, 'cache' => $cache_dir . $cache_file);
}
if (! (file_exists($cache_dir . $cache_file) && ($TTL == -1 ? true : time() - filemtime($cache_dir . $cache_file) < $TTL)))
{
$res = $this->Real_Query($query, $log);
@ -851,6 +904,19 @@
}
else
{
// Если стоит в настройках, запоминать все запросы
if (defined('SQL_PROFILING') && SQL_PROFILING)
{
$_caller = $this->getCaller();
$this->_query_list[] = array(
'caller' => $_caller,
'query' => $query,
'ttl' => $TTL,
'cache' => $cache_dir . $cache_file
);
}
$result = unserialize(file_get_contents($cache_dir . $cache_file));
}
@ -1024,11 +1090,13 @@
*/
public function NumAllRows($query, $TTL = null, $cache_id = '')
{
$cache_id = $this->cacheId($cache_id);
// Если включен DEV MODE, то отключаем кеширование запросов
if (defined('DEV_MODE') AND DEV_MODE)
$TTL = null;
if ($TTL AND ($TTL != "nocache" AND $TTL != null))
if ($TTL AND ($TTL != 'nocache' AND $TTL != null))
{
// Кол-во
$cache_file = md5($query) . '.count';
@ -1057,6 +1125,19 @@
}
else
{
// Если стоит в настройках, запоминать все запросы
if (defined('SQL_PROFILING') && SQL_PROFILING)
{
$_caller = $this->getCaller();
$this->_query_list[] = array(
'caller' => $_caller,
'query' => 'SELECT FOUND_ROWS();',
'ttl' => $TTL,
'cache' => $cache_dir . $cache_file
);
}
return file_get_contents($cache_dir . $cache_file);
}
}
@ -1316,11 +1397,9 @@
* @param $cache_id
* @return bool
*/
public function clearcache($cache_id)
public function clearCache($cache_id)
{
$cache_id = (substr($cache_id, 0, 3) == 'doc'
? 'doc/' . intval(floor((int)substr($cache_id, 4)) / 1000) . '/' . (int)substr($cache_id, 4)
: $cache_id);
$cache_id = $this->cacheId($cache_id);
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
@ -1339,26 +1418,7 @@
public function clearCacheUrl($cache_id)
{
$cache_id = str_replace('url_', '', $cache_id);
$cache_id = 'url/' . substr($cache_id, 0, 3);
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
: '');
return rrmdir($cache_dir);
}
/**
* Метод, предназначенный для очищения кеша документов
*
* @param $cache_id
* @return bool
*/
public function clearCacheNav($cache_id)
{
$cache_id = str_replace('nav_', '', $cache_id);
$cache_id = 'nav/' . substr($cache_id, 0, 3);
$cache_id = 'documents/urls/' . substr($cache_id, 0, 3);
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
@ -1374,31 +1434,10 @@
* @param $cache_id
* @return bool
*/
public function clearcacherequest($cache_id)
{
$cache_id = (substr($cache_id, 0, 3) == 'doc'
? 'request/' . (int)substr($cache_id, 4)
: $cache_id);
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
: '');
return rrmdir($cache_dir);
}
/**
* Метод, предназначенный для очищения кеша шаблонов
*
* @param $cache_id
* @return bool
*/
public function clearcompile($cache_id)
public function clearCacheRequest($cache_id)
{
$cache_id = (substr($cache_id, 0, 3) == 'doc'
? 'compiled/' . intval(floor((int)substr($cache_id, 4)) / 1000) . '/' . (int)substr($cache_id, 4)
: $cache_id);
$cache_id = (int)str_replace('req_', '', $cache_id);
$cache_id = 'request/' . (floor($cache_id / 1000)) . '/' . $cache_id;
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
@ -1414,15 +1453,15 @@
* @param $cache_id
* @return bool
*/
public function clear_request($cache_id)
public function clearRequest($cache_id)
{
$request = request_get_settings($cache_id);
$cache_from_id = BASE_DIR . '/tmp/cache/sql/request/settings/' . (trim($request->Id) > ''
$cache_from_id = BASE_DIR . '/tmp/cache/sql/requests/settings/' . (trim($request->Id) > ''
? trim($request->Id) . '/'
: '');
$cache_from_alias = BASE_DIR . '/tmp/cache/sql/request/settings/' . (trim($request->request_alias) > ''
$cache_from_alias = BASE_DIR . '/tmp/cache/sql/requests/settings/' . (trim($request->request_alias) > ''
? trim($request->request_alias) . '/'
: '');

23
class/class.dbdump.php

@ -235,7 +235,10 @@
}
// Готовим шаблон имени файла
$file_name = preg_replace_ru(array("/%SERVER%/", "/%DATE%/", "/%TIME%/"), array($_SERVER['SERVER_NAME'], date('d.m.y'), date('H.i.s')), DB_EXPORT_TPL);
if (isset($_REQUEST['file_name']) AND $_REQUEST['file_name'] != '')
$file_name = prepare_fname($_REQUEST['file_name']);
else
$file_name = preg_replace_ru(array("/%SERVER%/", "/%DATE%/", "/%TIME%/"), array($_SERVER['SERVER_NAME'], date('d.m.y'), date('H.i.s')), DB_EXPORT_TPL);
$dump = (defined('DB_EXPORT_GZ') && DB_EXPORT_GZ
? gzencode($this->_database_dump)
@ -329,7 +332,7 @@
{
// Получаем имя файла и его расширение (должно быть sql)
$fupload_name = $_FILES['file']['name'];
$gz = substr($fupload_name, -3)=='.gz';
$gz = substr($fupload_name, -3) == '.gz';
$end = substr($fupload_name, -3);
// Если расширение sql, тогда
@ -426,7 +429,7 @@
{
global $AVE_DB, $AVE_Template;
$file = BASE_DIR . '/backup/'. $file;
$file = BASE_DIR . '/tmp/backup/'. $file;
if (! is_file($file))
return false;
@ -436,9 +439,9 @@
reportLog($AVE_Template->get_config_vars('DB_REPORT_DUMP_DEL_OK') . ' ('.basename($file).')');
}
else
{
reportLog($AVE_Template->get_config_vars('DB_REPORT_DUMP_DEL_ER') . ' ('.basename($file).')');