diff --git a/.htaccess b/.htaccess
index 1f3a113..4449202 100644
--- a/.htaccess
+++ b/.htaccess
@@ -319,6 +319,7 @@ AddDefaultCharset utf-8
# Файл sitemap.xml
RewriteRule ^sitemap.xml$ inc/sitemap.php [QSA,L]
+ RewriteRule ^sitemap-([0-9]+).xml$ inc/sitemap.php?id=$1 [QSA,L]
#--start-ave-editor--#
diff --git a/README.md b/README.md
index b79c5e7..1304dd9 100644
--- a/README.md
+++ b/README.md
@@ -21,10 +21,8 @@
* ПО WEB сервера:
* Apache >= 1.3
* Nginx >= 1.6.2
- * IIS >= 5
- * PHP >= 5.5
- * PHP >= 5.5.x ... <= 5.6.x разрешить использовать короткие теги short_open_tag = On (zlib, cURL, mbString, JSON)
- * PHP >= 7.x ... <= 7.1.x
+ * PHP >= 5.6.x разрешить использовать короткие теги short_open_tag = On (zlib, cURL, mbString, JSON)
+ * PHP >= 7.x ... <= 7.2.x
## Модули
@@ -55,7 +53,7 @@
1. Распакуйте содержимое архива в новую папку на вашем локальном компьютере.
2. Загрузить эту папку целиком через FTP-клиент на ваш хост.
-3. Вам также может потребоваться установить права доступа (CHMOD 777) рекурсивно, на папки /cache/, /session/ и /uploads/, если ваш хостинг не установливает это по умолчанию.
+3. Вам также может потребоваться установить права доступа (CHMOD 777) рекурсивно, на папки /tmp/cache/, /tmp/session/ и /uploads/, если ваш хостинг не установливает это по умолчанию.
4. Также вам может потребоваться установить права доступа (CHMOD 777) рекурсивно, на файлы inc/db.config.php и inc/config.inc.php, если ваш хостинг не установливает это по умолчанию.
5. Наберите http://адрес вашего сайта/ в браузере.
6. Следуйте инструкциям.
diff --git a/admin/admin.php b/admin/admin.php
index 7b04b1f..5c5cdff 100644
--- a/admin/admin.php
+++ b/admin/admin.php
@@ -15,7 +15,7 @@
define('ACPL', 1);
define('BASE_DIR', str_replace("\\", "/", dirname(dirname(__FILE__))));
- if (! @filesize(BASE_DIR . '/inc/db.config.php'))
+ if (! @filesize(BASE_DIR . '/config/db.config.php'))
{
header('Location:/install/index.php');
exit;
diff --git a/admin/dbsettings.php b/admin/dbsettings.php
index ee164a2..55284ca 100644
--- a/admin/dbsettings.php
+++ b/admin/dbsettings.php
@@ -46,7 +46,7 @@
exit;
case 'restore':
- $AVE_DB_Service->databaseDumpImport(BASE_DIR . "/" . ATTACH_DIR . "/");
+ $AVE_DB_Service->databaseDumpImport(BASE_DIR . "/tmp/" . ATTACH_DIR . "/");
break;
case 'download':
diff --git a/admin/functions/func.admin.common.php b/admin/functions/func.admin.common.php
index 931494f..00b87ad 100644
--- a/admin/functions/func.admin.common.php
+++ b/admin/functions/func.admin.common.php
@@ -48,22 +48,22 @@
$log404 = array();
$logsql = array();
- $_404dir = BASE_DIR . '/cache/404.php';
- $_logdir = BASE_DIR . '/cache/log.php';
- $_sqldir = BASE_DIR . '/cache/sql.php';
+ $_404dir = BASE_DIR . '/tmp/logs/404.php';
+ $_logdir = BASE_DIR . '/tmp/logs/log.php';
+ $_sqldir = BASE_DIR . '/tmp/logs/sql.php';
- if(file_exists($_logdir))
- @eval('?>' . file_get_contents($_logdir) . '');
+ if (file_exists($_logdir))
+ @eval(' ?>' . file_get_contents($_logdir) . '' . file_get_contents($_404dir) . '');
+ if (file_exists($_404dir))
+ @eval(' ?>' . file_get_contents($_404dir) . '' . file_get_contents($_sqldir) . '');
+ if (file_exists($_sqldir))
+ @eval(' ?>' . file_get_contents($_sqldir) . 'Query("SELECT * FROM ".PREFIX."_users WHERE last_visit>".$time." ORDER BY last_visit DESC");
@@ -283,7 +284,7 @@
foreach ($modules AS $module)
{
- if ($module['ModuleAdminEdit'] == 1 && $module['status'])
+ if ($module['ModuleAdminEdit'] == 1 && $module['ModuleStatus'])
$modules_instaled[] = array(
'ModuleName' => $module['ModuleName'],
'ModuleSysName' => $module['ModuleSysName']
@@ -503,7 +504,7 @@
$row->canDelete = 0;
$row->canEndDel = 0;
$row->canOpenClose = 0;
- $row->rubric_admin_teaser_template=@eval2var('?>'.($row->rubric_admin_teaser_template>'' ? @showrequestelement($row,$row->rubric_admin_teaser_template) : '').'');
+ $row->rubric_admin_teaser_template=@eval2var(' ?>'.($row->rubric_admin_teaser_template>'' ? @showrequestelement($row,$row->rubric_admin_teaser_template) : '').'assign('content', $config_vars['MAIN_NO_PERMISSION']);
diff --git a/admin/rubs.php b/admin/rubs.php
index 80ca6a8..554f5dc 100755
--- a/admin/rubs.php
+++ b/admin/rubs.php
@@ -1,659 +1,670 @@
config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/rubs.txt', 'rubs');
-
-switch($_REQUEST['action'])
-{
- case '' :
- if(check_permission('rubric_view'))
- {
+ /**
+ * 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;
+ }
+
+ require(BASE_DIR . '/class/class.rubs.php');
+ $AVE_Rubric = new AVE_Rubric;
+
+ $AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/rubs.txt', 'rubs');
+
+ switch($_REQUEST['action'])
+ {
+ case '' :
+ if(check_permission('rubric_view'))
+ {
+ if(check_permission('rubric_edit'))
+ {
+ switch($_REQUEST['sub'])
+ {
+ case 'quicksave':
+ $AVE_Rubric->quickSave();
+ break;
+ }
+ }
+ $AVE_Rubric->rubricList();
+ $AVE_Template->assign('templates', get_all_templates());
+ $AVE_Template->assign('content', $AVE_Template->fetch('rubs/list.tpl'));
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_VIEW'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'new':
+ if(check_permission('rubric_edit'))
+ {
+ $AVE_Template->assign('templates', get_all_templates());
+ $AVE_Rubric->rubricNew();
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE3'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'template':
if(check_permission('rubric_edit'))
{
switch($_REQUEST['sub'])
{
- case 'quicksave':
- $AVE_Rubric->quickSave();
+ case '':
+ $AVE_Rubric->rubricTemplateShow();
break;
- }
- }
- $AVE_Rubric->rubricList();
- $AVE_Template->assign('templates', get_all_templates());
- $AVE_Template->assign('content', $AVE_Template->fetch('rubs/list.tpl'));
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_VIEW'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'new':
- if(check_permission('rubric_edit'))
- {
- $AVE_Template->assign('templates', get_all_templates());
- $AVE_Rubric->rubricNew();
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE3'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'template':
- if(check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
- {
- case '':
- $AVE_Rubric->rubricTemplateShow();
- break;
-
- case 'save':
-
- $Rtemplate = $_POST['rubric_template'];
- $Htemplate = $_POST['rubric_header_template'];
- $Ftemplate = $_POST['rubric_footer_template'];
- $Ttemplate = $_POST['rubric_teaser_template'];
- $Atemplate = $_POST['rubric_admin_teaser_template'];
-
- $check_code = strtolower($Rtemplate.$Htemplate.$Ttemplate.$Atemplate.$Ftemplate);
-
- $ok = true;
-
- if ((is_php_code($check_code)) && !check_permission('rubric_php') )
- {
- $AVE_Template->assign('php_forbidden', 1);
- $ok = false;
- }
+ case 'save':
- if (! $ok)
- {
- $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
- $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
- $theme = 'error';
+ $Rtemplate = $_POST['rubric_template'];
+ $Htemplate = $_POST['rubric_header_template'];
+ $Ftemplate = $_POST['rubric_footer_template'];
+ $Ttemplate = $_POST['rubric_teaser_template'];
+ $Atemplate = $_POST['rubric_admin_teaser_template'];
+
+ $check_code = strtolower($Rtemplate.$Htemplate.$Ttemplate.$Atemplate.$Ftemplate);
- if (isAjax())
+ $ok = true;
+
+ if ((is_php_code($check_code)) && !check_permission('rubric_php') )
{
- echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
- exit;
+ $AVE_Template->assign('php_forbidden', 1);
+
+ $ok = false;
+ }
+
+ if (! $ok)
+ {
+ $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
+ $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
+ $theme = 'error';
+
+ if (isAjax())
+ {
+ echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
+ exit;
+ }
+ else
+ {
+ $AVE_Rubric->rubricTemplateShow(1);
+ }
}
else
{
- $AVE_Rubric->rubricTemplateShow(1);
+ $AVE_Rubric->rubricTemplateSave($Rtemplate, $Htemplate, $Ttemplate, $Atemplate, $Ftemplate);
}
- }
- else
- {
- $AVE_Rubric->rubricTemplateSave($Rtemplate, $Htemplate, $Ttemplate, $Atemplate, $Ftemplate);
- }
- break;
- }
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'delete':
- if(check_permission('rubric_edit'))
- {
- $AVE_Rubric->rubricDelete();
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'multi':
- if(check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
- {
- case 'save':
- $AVE_Rubric->rubricCopy();
- break;
- }
- $AVE_Template->assign('content', $AVE_Template->fetch('rubs/multi.tpl'));
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_MULTIPLY'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'edit':
- if(check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
- {
- case '':
- switch($_REQUEST['submit'])
- {
- case 'saveperms':
- if (check_permission('rubric_perms')){
- $AVE_Rubric->rubricPermissionSave((int)$_REQUEST['Id']);
- }
- break;
+ break;
+ }
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
- case 'save':
- $AVE_Rubric->rubricFieldSave((int)$_REQUEST['Id']);
- break;
+ case 'delete':
+ if(check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->rubricDelete();
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
- case 'linked_rubric':
- $AVE_Rubric->rubricShow(1);
- break;
+ case 'multi':
+ if(check_permission('rubric_edit'))
+ {
+ switch($_REQUEST['sub'])
+ {
+ case 'save':
+ $AVE_Rubric->rubricCopy();
+ break;
+ }
+ $AVE_Template->assign('content', $AVE_Template->fetch('rubs/multi.tpl'));
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_MULTIPLY'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
- case 'code':
- if (check_permission('rubric_code')){
- $AVE_Rubric->rubricCode((int)$_REQUEST['Id']);
- }
- break;
+ case 'edit':
+ if(check_permission('rubric_edit'))
+ {
+ switch($_REQUEST['sub'])
+ {
+ case '':
+ switch($_REQUEST['submit'])
+ {
+ case 'saveperms':
+ if (check_permission('rubric_perms')){
+ $AVE_Rubric->rubricPermissionSave((int)$_REQUEST['Id']);
+ }
+ break;
+
+ case 'save':
+ $AVE_Rubric->rubricFieldSave((int)$_REQUEST['Id']);
+ break;
+
+ case 'linked_rubric':
+ $AVE_Rubric->rubricShow(1);
+ break;
+
+ case 'code':
+ if (check_permission('rubric_code')){
+ $AVE_Rubric->rubricCode((int)$_REQUEST['Id']);
+ }
+ break;
+
+ case 'description':
+ $AVE_Rubric->rubricDesc((int)$_REQUEST['Id']);
+ break;
+ }
+ }
+ $AVE_Rubric->rubricFieldShow((int)$_REQUEST['Id'], null);
+ break;
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE1'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
- case 'description':
- $AVE_Rubric->rubricDesc((int)$_REQUEST['Id']);
- break;
- }
+ case 'alias_add':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricAliasAdd();
}
- $AVE_Rubric->rubricFieldShow((int)$_REQUEST['Id'], null);
- break;
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE1'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'alias_add':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricAliasAdd();
- }
- break;
-
- case 'code':
- if (check_permission('rubric_code'))
- {
- $AVE_Rubric->rubricCodeEdit($_REQUEST['Id']);
- }
- break;
-
- case 'field_template':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldTemplate();
- }
- break;
-
- case 'field_template_save':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldTemplateSave((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
- }
- break;
-
- case 'fieldssort':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldsSort((array)$_REQUEST['sort']);
- }
- exit;
+ break;
- case 'rubssort':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricsSort((array)$_REQUEST['sort']);
- }
- exit;
+ case 'code':
+ if (check_permission('rubric_code'))
+ {
+ $AVE_Rubric->rubricCodeEdit($_REQUEST['Id']);
+ }
+ break;
- case 'alias_check':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricAliasCheck((int)$_REQUEST['rubric_id'],(int)$_REQUEST['field_id'], $_REQUEST['rubric_field_alias']);
- }
- break;
-
- case 'newfield':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldNew((int)$_REQUEST['Id'], $_REQUEST['ajax']);
- }
- break;
-
- case 'fields':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldShow((int)$_REQUEST['Id'], $_REQUEST['ajax']);
- }
- break;
-
- case 'change':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldChange((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
- }
- break;
-
- case 'changesave':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldChangeSave((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
- }
- break;
-
- case 'changegroup':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldGroupChange((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
- }
- break;
-
- case 'changegroupsave':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldGroupChangeSave((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
- }
- break;
-
- case 'fieldsgroups':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldsGroups((int)$_REQUEST['Id']);
- }
- break;
-
- case 'newfieldsgroup':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricNewGroupFields((int)$_REQUEST['Id']);
- }
- break;
-
- case 'savefieldsgroup':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricEditGroupFields((int)$_REQUEST['Id']);
- }
- break;
-
- case 'delfieldsgroup':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricDelGroupFields((int)$_REQUEST['Id'], (int)$_REQUEST['rubric_id']);
- }
- break;
-
- case 'fieldsgroupssort':
- if(check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->rubricFieldsGroupsSort((array)$_REQUEST['sort']);
- }
- exit;
+ case 'field_template':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldTemplate();
+ }
+ break;
- case 'tmpls':
- if (check_permission_acp('rubric_edit'))
- {
- $AVE_Rubric->tmplsList();
- $AVE_Template->assign('content', $AVE_Template->fetch('rubs/tmpls.tpl'));
- }
- break;
+ case 'field_template_save':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldTemplateSave((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
+ }
+ break;
- case 'tmpls_edit':
- if(check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
+ case 'fieldssort':
+ if(check_permission_acp('rubric_edit'))
{
- case '':
- $AVE_Rubric->tmplsEdit();
- break;
+ $AVE_Rubric->rubricFieldsSort((array)$_REQUEST['sort']);
+ }
+ exit;
- case 'save':
+ case 'rubssort':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricsSort((array)$_REQUEST['sort']);
+ }
+ exit;
- $title = $_POST['template_title'];
- $template = $_POST['rubric_template'];
+ case 'alias_check':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricAliasCheck((int)$_REQUEST['rubric_id'],(int)$_REQUEST['field_id'], $_REQUEST['rubric_field_alias']);
+ }
+ break;
- $check_code = strtolower($template);
+ case 'newfield':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldNew((int)$_REQUEST['Id'], $_REQUEST['ajax']);
+ }
+ break;
- $ok = true;
+ case 'fields':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldShow((int)$_REQUEST['Id'], $_REQUEST['ajax']);
+ }
+ break;
- if((is_php_code($check_code)) && !check_permission('rubric_php') )
- {
- $AVE_Template->assign('php_forbidden', 1);
+ case 'change':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldChange((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
+ }
+ break;
- $ok = false;
- }
+ case 'changesave':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldChangeSave((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
+ }
+ break;
- if(! $ok)
- {
- $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
- $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
- $theme = 'error';
+ case 'changegroup':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldGroupChange((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
+ }
+ break;
+
+ case 'changegroupsave':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldGroupChangeSave((int)$_REQUEST['field_id'], (int)$_REQUEST['rubric_id']);
+ }
+ break;
+
+ case 'fieldsgroups':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldsGroups((int)$_REQUEST['Id']);
+ }
+ break;
+
+ case 'newfieldsgroup':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricNewGroupFields((int)$_REQUEST['Id']);
+ }
+ break;
+
+ case 'savefieldsgroup':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricEditGroupFields((int)$_REQUEST['Id']);
+ }
+ break;
+
+ case 'delfieldsgroup':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricDelGroupFields((int)$_REQUEST['Id'], (int)$_REQUEST['rubric_id']);
+ }
+ break;
+
+ case 'fieldsgroupssort':
+ if(check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->rubricFieldsGroupsSort((array)$_REQUEST['sort']);
+ }
+ exit;
+
+ case 'tmpls':
+ if (check_permission_acp('rubric_edit'))
+ {
+ $AVE_Rubric->tmplsList();
+ $AVE_Template->assign('content', $AVE_Template->fetch('rubs/tmpls.tpl'));
+ }
+ break;
+
+ case 'tmpls_edit':
+ if(check_permission('rubric_edit'))
+ {
+ switch($_REQUEST['sub'])
+ {
+ case '':
+ $AVE_Rubric->tmplsEdit();
+ break;
+
+ case 'save':
- if (isAjax())
+ $title = $_POST['template_title'];
+ $template = $_POST['rubric_template'];
+
+ $check_code = strtolower($template);
+
+ $ok = true;
+
+ if((is_php_code($check_code)) && !check_permission('rubric_php') )
{
- echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
- exit;
+ $AVE_Template->assign('php_forbidden', 1);
+
+ $ok = false;
+ }
+
+ if(! $ok)
+ {
+ $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
+ $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
+ $theme = 'error';
+
+ if (isAjax())
+ {
+ echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
+ exit;
+ }
+ else
+ {
+ $AVE_Rubric->tmplsEdit();
+ }
}
else
{
- $AVE_Rubric->tmplsEdit();
+ $AVE_Rubric->tmplsSave($template, $title);
}
- }
- else
- {
- $AVE_Rubric->tmplsSave($template, $title);
- }
- break;
+ break;
+ }
}
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'tmpls_new':
- if(check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
+ else
{
- case '':
- $AVE_Rubric->tmplsEdit();
- break;
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
- case 'save':
+ case 'tmpls_new':
+ if(check_permission('rubric_edit'))
+ {
+ switch($_REQUEST['sub'])
+ {
+ case '':
+ $AVE_Rubric->tmplsEdit();
+ break;
- $title = $_POST['template_title'];
- $template = $_POST['rubric_template'];
+ case 'save':
- $check_code = strtolower($template);
+ $title = $_POST['template_title'];
+ $template = $_POST['rubric_template'];
- $ok = true;
+ $check_code = strtolower($template);
- if((is_php_code($check_code)) && !check_permission('rubric_php') )
- {
- $AVE_Template->assign('php_forbidden', 1);
+ $ok = true;
- $ok = false;
- }
+ if((is_php_code($check_code)) && !check_permission('rubric_php') )
+ {
+ $AVE_Template->assign('php_forbidden', 1);
- if(! $ok)
- {
- $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
- $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
- $theme = 'error';
+ $ok = false;
+ }
- if (isAjax())
+ if(! $ok)
{
- echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
- exit;
+ $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
+ $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
+ $theme = 'error';
+
+ if (isAjax())
+ {
+ echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
+ exit;
+ }
+ else
+ {
+ $AVE_Rubric->tmplsEdit();
+ }
}
else
{
- $AVE_Rubric->tmplsEdit();
+ $AVE_Rubric->tmplsSave($template, $title);
}
- }
- else
- {
- $AVE_Rubric->tmplsSave($template, $title);
- }
- break;
+ break;
+ }
}
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
- case 'tmpls_from':
- if(check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
+ case 'tmpls_from':
+ if(check_permission('rubric_edit'))
{
- case '':
- $AVE_Rubric->tmplsEdit();
- break;
+ switch($_REQUEST['sub'])
+ {
+ case '':
+ $AVE_Rubric->tmplsEdit();
+ break;
- case 'save':
+ case 'save':
- $title = $_POST['template_title'];
- $template = $_POST['rubric_template'];
+ $title = $_POST['template_title'];
+ $template = $_POST['rubric_template'];
- $check_code = strtolower($template);
+ $check_code = strtolower($template);
- $ok = true;
+ $ok = true;
- if((is_php_code($check_code)) && !check_permission('rubric_php') )
- {
- $AVE_Template->assign('php_forbidden', 1);
-
- $ok = false;
- }
+ if((is_php_code($check_code)) && !check_permission('rubric_php') )
+ {
+ $AVE_Template->assign('php_forbidden', 1);
- if(! $ok)
- {
- $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
- $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
- $theme = 'error';
+ $ok = false;
+ }
- if (isAjax())
+ if(! $ok)
{
- echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
- exit;
+ $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
+ $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
+ $theme = 'error';
+
+ if (isAjax())
+ {
+ echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
+ exit;
+ }
+ else
+ {
+ $AVE_Rubric->tmplsEdit();
+ }
}
else
{
- $AVE_Rubric->tmplsEdit();
+ $AVE_Rubric->tmplsSave($template, $title);
}
- }
- else
- {
- $AVE_Rubric->tmplsSave($template, $title);
- }
- break;
+ break;
+ }
}
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'tmpls_copy':
- if(check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
+ else
{
- case '':
- $AVE_Rubric->tmplsEdit();
- break;
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
- case 'save':
+ case 'tmpls_copy':
+ if(check_permission('rubric_edit'))
+ {
+ switch($_REQUEST['sub'])
+ {
+ case '':
+ $AVE_Rubric->tmplsEdit();
+ break;
- $title = $_POST['template_title'];
- $template = $_POST['rubric_template'];
+ case 'save':
- $check_code = strtolower($template);
+ $title = $_POST['template_title'];
+ $template = $_POST['rubric_template'];
- $ok = true;
+ $check_code = strtolower($template);
- if((is_php_code($check_code)) && !check_permission('rubric_php') )
- {
- $AVE_Template->assign('php_forbidden', 1);
+ $ok = true;
- $ok = false;
- }
+ if((is_php_code($check_code)) && !check_permission('rubric_php') )
+ {
+ $AVE_Template->assign('php_forbidden', 1);
- if(! $ok)
- {
- $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
- $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
- $theme = 'error';
+ $ok = false;
+ }
- if (isAjax())
+ if(! $ok)
{
- echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
- exit;
+ $message = $AVE_Template->get_config_vars('RUBRIC_SAVED_PHP_ERR');
+ $header = $AVE_Template->get_config_vars('RUBRIC_ERROR');
+ $theme = 'error';
+
+ if (isAjax())
+ {
+ echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
+ exit;
+ }
+ else
+ {
+ $AVE_Rubric->tmplsEdit();
+ }
}
else
{
- $AVE_Rubric->tmplsEdit();
+ $AVE_Rubric->tmplsSave($template, $title);
}
- }
- else
- {
- $AVE_Rubric->tmplsSave($template, $title);
- }
- break;
- }
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'tmpls_del':
- if(check_permission('rubric_edit'))
- {
- $AVE_Rubric->tmplsDelete();
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'rules':
- if (check_permission('rubric_edit'))
- {
- switch($_REQUEST['sub'])
- {
- case '':
- switch($_REQUEST['submit'])
- {
- case 'saveperms':
- if (check_permission('rubric_perms'))
- $AVE_Rubric->rubricPermissionSave((int)$_REQUEST['Id']);
- break;
- }
+ break;
+ }
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE2'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
}
- $AVE_Rubric->rubricRulesShow((int)$_REQUEST['Id'], null);
- break;
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE1'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'ftlist':
- if (check_permission('rubric_edit'))
- {
- $AVE_Rubric->ShowFields();
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'ftshowfield':
- if (check_permission('rubric_edit'))
- {
- $AVE_Rubric->ShowFieldsByType($_REQUEST['type']);
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
-
- case 'ftcreate':
- if (check_permission('rubric_edit'))
- {
- $AVE_Rubric->EditFieldTpl((int)$_REQUEST['id'], $_REQUEST['fld'], $_REQUEST['type']);
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'ftedit':
- if (check_permission('rubric_edit'))
- {
- $AVE_Rubric->EditFieldTpl((int)$_REQUEST['id'], $_REQUEST['fld'], $_REQUEST['type']);
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
- case 'ftsave':
- if (check_permission('rubric_edit'))
- {
- $AVE_Rubric->SaveFieldTpl((int)$_REQUEST['field_id'], $_REQUEST['field_name'], $_REQUEST['field_type'], $_REQUEST['func']);
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-
-
- case 'ftdelete':
- if (check_permission('rubric_edit'))
- {
- $AVE_Rubric->DeleteFieldTpl((int)$_REQUEST['id'], $_REQUEST['fld'], $_REQUEST['type'], $_REQUEST['func']);
- }
- else
- {
- $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
- $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
- }
- break;
-}
-
-?>
+ break;
+
+ case 'tmpls_del':
+ if(check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->tmplsDelete();
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'rules':
+ if (check_permission('rubric_edit'))
+ {
+ switch($_REQUEST['sub'])
+ {
+ case '':
+ switch($_REQUEST['submit'])
+ {
+ case 'saveperms':
+ if (check_permission('rubric_perms'))
+ $AVE_Rubric->rubricPermissionSave((int)$_REQUEST['Id']);
+ break;
+ }
+ }
+ $AVE_Rubric->rubricRulesShow((int)$_REQUEST['Id'], null);
+ break;
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_CHANGE1'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'ftlist':
+ if (check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->ShowFields();
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'ftshowfield':
+ if (check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->ShowFieldsByType($_REQUEST['type']);
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+
+ case 'ftcreate':
+ if (check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->EditFieldTpl((int)$_REQUEST['id'], $_REQUEST['fld'], $_REQUEST['type']);
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'ftedit':
+ if (check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->EditFieldTpl((int)$_REQUEST['id'], $_REQUEST['fld'], $_REQUEST['type']);
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'ftempledit':
+ if (check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->EditFieldTpl('', $_REQUEST['fld'], $_REQUEST['type']);
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+ case 'ftsave':
+ if (check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->SaveFieldTpl((int)$_REQUEST['field_id'], $_REQUEST['field_name'], $_REQUEST['field_type'], $_REQUEST['func']);
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+
+
+ case 'ftdelete':
+ if (check_permission('rubric_edit'))
+ {
+ $AVE_Rubric->DeleteFieldTpl((int)$_REQUEST['id'], $_REQUEST['fld'], $_REQUEST['type'], $_REQUEST['func']);
+ }
+ else
+ {
+ $AVE_Template->assign('erorr', $AVE_Template->get_config_vars('RUBRIK_NO_PERMISSION'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('error.tpl'));
+ }
+ break;
+ }
+?>
\ No newline at end of file
diff --git a/admin/start.php b/admin/start.php
index 040683b..f380260 100644
--- a/admin/start.php
+++ b/admin/start.php
@@ -1,35 +1,34 @@
config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/main.txt', 'index');
-$AVE_Template->assign('php_version', (@PHP_VERSION != '') ? @PHP_VERSION : 'unknow');
-$AVE_Template->assign('domain', $_SERVER["HTTP_HOST"]);
-$AVE_Template->assign('mysql_version', $GLOBALS['AVE_DB']->mysql_version());
-$AVE_Template->assign('mysql_size', get_mysql_size());
-$AVE_Template->assign('navi', $AVE_Template->fetch('navi/navi.tpl'));
-$AVE_Template->assign('navi_top', $AVE_Template->fetch('navi/navi_top.tpl'));
-$AVE_Template->assign('content', $AVE_Template->fetch('start.tpl'));
+ get_ave_info();
+ getInstaledModules();
+ DisplayMainDocuments();
+ get_online_users();
+ getLogRecords();
+ //$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/main.txt', 'index');
+ $AVE_Template->assign('php_version', (@PHP_VERSION != '') ? @PHP_VERSION : 'unknow');
+ $AVE_Template->assign('domain', $_SERVER["HTTP_HOST"]);
+ $AVE_Template->assign('mysql_version', $GLOBALS['AVE_DB']->mysql_version());
+ $AVE_Template->assign('mysql_size', get_mysql_size());
+ $AVE_Template->assign('navi', $AVE_Template->fetch('navi/navi.tpl'));
+ $AVE_Template->assign('navi_top', $AVE_Template->fetch('navi/navi_top.tpl'));
+ $AVE_Template->assign('content', $AVE_Template->fetch('start.tpl'));
?>
\ No newline at end of file
diff --git a/admin/templates/browser/browser_upload.tpl b/admin/templates/browser/browser_upload.tpl
index 6ec1f1f..ee3ff5d 100644
--- a/admin/templates/browser/browser_upload.tpl
+++ b/admin/templates/browser/browser_upload.tpl
@@ -39,7 +39,7 @@ $(function() {
{title : "Image files", extensions : "jpg,jpeg,jpe,gif,png"},
{title : "Video files", extensions : "mp4,avi,mov,wmv,wmf"},
{title : "Music files", extensions : "mp3"},
- {title : "Documents", extensions : "doc,xls,pdf"},
+ {title : "Documents", extensions : "doc,docx,xls,xlsx,pdf"},
{title : "Zip files", extensions : "zip,rar"}
],
// Flash settings
diff --git a/admin/templates/modules/modules.tpl b/admin/templates/modules/modules.tpl
index 8948a5e..290d220 100644
--- a/admin/templates/modules/modules.tpl
+++ b/admin/templates/modules/modules.tpl
@@ -88,7 +88,7 @@ $(document).ready(function(){ldelim}
{if check_permission('modules_admin')}
- {if $module.ModuleAdminEdit && $module.status && $module.permission}
+ {if $module.ModuleAdminEdit && $module.ModuleStatus && $module.permission}
{$module.ModuleName}
{if (isset($module.ModuleTagLink) && $module.ModuleTagLink != "")}
{$module.ModuleTagLink}
@@ -104,7 +104,7 @@ $(document).ready(function(){ldelim}
|
{if $module.template}
{assign var=module_id value=$module.id}
- {if $module.status && $module.permission}
+ {if $module.ModuleStatus && $module.permission}
{html_options name=Template[$module_id] options=$all_templates selected=$module.template style="width: 200px"}
{else}
{html_options name=Template[$module_id] options=$all_templates selected=$module.template style="width: 200px" disabled="disabled"}
@@ -120,7 +120,7 @@ $(document).ready(function(){ldelim}
{if check_permission('modules_system')}
|
- {if $module.status}
+ {if $module.ModuleStatus}
{else}
diff --git a/admin/templates/rubs/_field_code.tpl b/admin/templates/rubs/_field_code.tpl
index fef66cf..c49f2c5 100755
--- a/admin/templates/rubs/_field_code.tpl
+++ b/admin/templates/rubs/_field_code.tpl
@@ -59,7 +59,7 @@
-{include file="$codemirror_editor" conn_id="ftpl" textarea_id='code_text' ctrls='$("#code_templ").ajaxSubmit(sett_options);' height=400}
+{include file="$codemirror_editor" conn_id="ftpl" textarea_id='code_text' ctrls='$("#code_templ").ajaxSubmit(sett_options);' height=400 mode='smartymixed'}
';
+ $out .= PHP_EOL;
+ $out .= '
+
+
+
+ ';
+ $out .= PHP_EOL;
+ $out .= ' ' . PHP_EOL;
+ $out .= 'Time generation: ' . self::getStatistic('time') . ' sec';
+ $out .= ' ';
+ $out .= 'Memory usage: ' . self::getStatistic('memory');
+ $out .= ' ';
+ $out .= 'Memory peak usage: ' . self::getStatistic('peak');
+ $out .= ' ';
+ $out .= 'SQL Queries: ' . $AVE_DB->DBProfilesGet('count') . ' for ' . $AVE_DB->DBProfilesGet('time') . ' sec';
+ $out .= ' ';
+
+ $out .= PHP_EOL;
+ $out .= ' ' . PHP_EOL;
+ $out .= 'GET:';
+ $out .= self::getStatistic('get');
+ $out .= ' ';
+ $out .= 'POST:';
+ $out .= self::getStatistic('post');
+ $out .= ' ';
+ $out .= 'REQUEST:';
+ $out .= self::getStatistic('request');
+ $out .= ' ';
+ $out .= 'SESSION:';
+ $out .= self::getStatistic('session');
+ $out .= ' ';
+ $out .= 'SERVER:';
+ $out .= self::getStatistic('server');
+ $out .= ' ';
+
+ $out .= PHP_EOL;
+ $out .= ' ' . PHP_EOL;
+ $out .= self::getStatistic('globals');
+ $out .= ' ';
+
+ $out .= PHP_EOL;
+ $out .= ' ' . PHP_EOL;
+ $out .= $AVE_DB->DBProfilesGet('list');
+ $out .= ' ';
+
+ $out .= PHP_EOL;
+ $out .= ' ' . PHP_EOL;
+ $out .= $AVE_DB->showAllQueries();
+ $out .= ' ';
+
+ $out .= PHP_EOL;
+ $out .= ' ';
+
+ echo $out;
+ }
}
?>
\ No newline at end of file
diff --git a/class/class.docs.php b/class/class.docs.php
index 22ff970..1ad6aa6 100755
--- a/class/class.docs.php
+++ b/class/class.docs.php
@@ -322,7 +322,7 @@ class AVE_Document
$sql_where_field = '';
$field_link = '';
- if ($_REQUEST['field_id'] && (int)$_REQUEST['field_id'] > 0)
+ if (isset($_REQUEST['field_id']) && (int)$_REQUEST['field_id'] > 0)
{
$sql_join_field = "
LEFT JOIN
@@ -415,6 +415,8 @@ class AVE_Document
$nav_lang = '&lang_id=' . $_REQUEST['lang_id'];
}
+ else
+ $nav_lang = '';
// Поиск с выводом всех результатов из всех рубрик
if (@$_REQUEST['rubric_id'] == 'all')
@@ -699,9 +701,9 @@ class AVE_Document
$row->canDelete = 0;
$row->canEndDel = 0;
$row->canOpenClose = 0;
- $row->rubric_admin_teaser_template = @eval2var('?>'.($row->rubric_admin_teaser_template>''
+ $row->rubric_admin_teaser_template = @eval2var(' ?>'.($row->rubric_admin_teaser_template>''
? @showrequestelement($row, $row->rubric_admin_teaser_template)
- : '').'');
+ : '').'document_title = stripslashes(htmlspecialchars_decode($row->document_title));
$row->document_breadcrum_title = stripslashes(htmlspecialchars_decode($row->document_breadcrum_title));
@@ -915,7 +917,7 @@ class AVE_Document
{
$key = trim(mb_substr($v, 0, 254));
- $res= $AVE_DB->Query("INSERT INTO ".PREFIX."_document_keywords
+ $res = $AVE_DB->Query("INSERT INTO ".PREFIX."_document_keywords
(
document_id,
keyword
@@ -1511,7 +1513,7 @@ class AVE_Document
}
}
- unset($sql, $query);
+ unset ($sql, $query);
$where = ($oper == 'UPDATE' ? 'WHERE Id = ' . $document_id : '');
$author = ($oper != 'UPDATE' ? 'document_author_id = ' . $_SESSION['user_id'] . ',' : '');
@@ -1521,6 +1523,10 @@ class AVE_Document
? $data['document_breadcrum_title']
: '';
+ $document_tags = isset($data['document_tags'])
+ ? $data['document_tags']
+ : '';
+
// Сохраняем все параметры документа
$sql = "
$operator
@@ -1531,7 +1537,7 @@ class AVE_Document
document_title = '" . htmlspecialchars(clean_no_print_char($data['document_title']), ENT_QUOTES) . "',
document_breadcrum_title = '" . htmlspecialchars(clean_no_print_char($breadcrumb_title), ENT_QUOTES) . "',
document_alias = '" . $data['document_alias'] . "',
- document_alias_history = '" . $data['document_alias_log'] . "',
+ document_alias_history = '" . $data['document_alias_history'] . "',
document_published = '" . $data["document_published"] . "',
document_expire = '" . $data["document_expire"] . "',
document_changed = '" . $data["document_changed"] . "',
@@ -1544,7 +1550,7 @@ class AVE_Document
document_sitemap_pr = '" . $data['document_sitemap_pr'] . "',
document_status = '" . $data['document_status'] . "',
document_linked_navi_id = '" . (int)$data['document_linked_navi_id'] . "',
- document_tags = '" . addslashes(htmlspecialchars(clean_no_print_char($data['document_tags']))). "',
+ document_tags = '" . addslashes(htmlspecialchars(clean_no_print_char($document_tags))). "',
document_lang = '" . (empty($data['document_lang']) ? DEFAULT_LANGUAGE : $data['document_lang']). "',
document_lang_group = '" . (empty($data['document_lang_group']) ? '0' : (int)$data['document_lang_group']). "',
document_property = '" . (empty($data['document_property']) ? '' : $data['document_property']). "'
@@ -1757,17 +1763,27 @@ class AVE_Document
doc_id = '" . $document_id . "'
");
+ $field_module = isset($data['field_module'])
+ ? $data['field_module']
+ : '';
+
// Запускаем триггер после сохранения
- Hooks::trigger('DocumentAfterSave', array('rubric_id' => $rubric_id, 'document_id' => $document_id, 'data' => $data, 'field_module' => $data['field_module']));
+ Hooks::trigger('DocumentAfterSave', array('rubric_id' => $rubric_id, 'document_id' => $document_id, 'data' => $data, 'field_module' => $field_module));
// Выполняем код рубрики, после сохранения
if ($rubric_code)
- eval ('?>' . $_rubric->rubric_code_end . '');
+ eval (' ?>' . $_rubric->rubric_code_end . 'clearcache('rub_' . $rubric_id);
$AVE_DB->clearcache('doc_' . $document_id);
$AVE_DB->clearcompile('doc_' . $document_id);
+ $AVE_DB->clearCacheUrl('url_' . $hash_url);
$AVE_DB->clearcacherequest('doc_' . $document_id);
unset ($_rubric, $fields);
diff --git a/class/class.hooks.php b/class/class.hooks.php
index da62262..82bf230 100644
--- a/class/class.hooks.php
+++ b/class/class.hooks.php
@@ -1,174 +1,175 @@
$function
+ );
+ }
+ }
+ else
{
// Store the action hook in the $hooks array
- self::$hooks[$item][$priority][$function] = array(
+ self::$hooks[$name][$priority][$function] = array(
"function" => $function
);
}
- }
- else
- {
- // Store the action hook in the $hooks array
- self::$hooks[$name][$priority][$function] = array(
- "function" => $function
- );
- }
- return true;
- }
+ return true;
+ }
- /**
- * Do Hook
- */
- public static function trigger($name, $arguments = "")
- {
- // Oh, no you didn't. Are you trying to run an action hook that doesn't exist?
- if (! isset(self::$hooks[$name]))
+ /**
+ * Do Hook
+ */
+ public static function trigger($name, $arguments = "")
{
- return $arguments;
- }
+ // Oh, no you didn't. Are you trying to run an action hook that doesn't exist?
+ if (! isset(self::$hooks[$name]))
+ {
+ return $arguments;
+ }
- // Set the current running hook to this
- self::$current_hook = $name;
+ // Set the current running hook to this
+ self::$current_hook = $name;
- // Key sort our action hooks
- ksort(self::$hooks[$name]);
- foreach (self::$hooks[$name] AS $priority => $names)
- {
- if (is_array($names))
+ // Key sort our action hooks
+ ksort(self::$hooks[$name]);
+ foreach (self::$hooks[$name] AS $priority => $names)
{
- foreach ($names AS $name)
+ if (is_array($names))
{
- $return = call_user_func_array($name['function'], array(
- &$arguments
- ));
-
- if ($return)
+ foreach ($names AS $name)
{
- $arguments = $return;
- }
+ $return = call_user_func_array($name['function'], array(
+ &$arguments
+ ));
+
+ if ($return)
+ {
+ $arguments = $return;
+ }
- self::$run_hooks[$name][$priority];
+ self::$run_hooks[$name][$priority];
+ }
}
}
- }
- self::$current_hook = '';
+ self::$current_hook = '';
- return $arguments;
- }
-
- /**
- * Remove Hook
- */
- public static function unregister($name, $function, $priority = 10)
- {
- // If the action hook doesn't, just return true
- if (!isset(self::$hooks[$name][$priority][$function]))
- {
- return true;
+ return $arguments;
}
- // Remove the action hook from our hooks array
- unset(self::$hooks[$name][$priority][$function]);
-
- return '';
- }
+ /**
+ * Remove Hook
+ */
+ public static function unregister($name, $function, $priority = 10)
+ {
+ // If the action hook doesn't, just return true
+ if (!isset(self::$hooks[$name][$priority][$function]))
+ {
+ return true;
+ }
+ // Remove the action hook from our hooks array
+ unset(self::$hooks[$name][$priority][$function]);
- /**
- * Current Hook
- *
- * Get the currently running action hook
- *
- */
- public static function current()
- {
- return self::$current_hook;
- }
+ return '';
+ }
- /**
- * Has Run
- */
- public static function has($hook, $priority = 10)
- {
- if (isset(self::$hooks[$hook][$priority]))
- {
- return true;
- }
- else
+ /**
+ * Current Hook
+ *
+ * Get the currently running action hook
+ *
+ */
+ public static function current()
{
- return false;
+ return self::$current_hook;
}
- }
- /**
- * Hook Exists
- */
- public static function exists($name)
- {
- if (isset(self::$hooks[$name]))
+ /**
+ * Has Run
+ */
+ public static function has($hook, $priority = 10)
{
- return true;
+ if (isset(self::$hooks[$hook][$priority]))
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}
- else
+
+
+ /**
+ * Hook Exists
+ */
+ public static function exists($name)
{
- return false;
+ if (isset(self::$hooks[$name]))
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}
}
-}
+?>
\ No newline at end of file
diff --git a/class/class.logs.php b/class/class.logs.php
index 227fe4d..1dd4a12 100644
--- a/class/class.logs.php
+++ b/class/class.logs.php
@@ -1,350 +1,349 @@
_logdir;
+ /**
+ * Внешние методы класса
+ */
- if(file_exists($logfile))
- @eval('?>'.file_get_contents($logfile).'');
+ /**
+ * Метод, предназначенный для отображения всех записей Журнала событий
+ *
+ */
+ function logList()
+ {
+ global $AVE_Template;
- arsort($logdata);
+ $logdata = array();
- // Передаем данные в шаблон для вывода и отображаем страницу
- $AVE_Template->assign('logs', $logdata);
- $AVE_Template->assign('content', $AVE_Template->fetch('logs/logs.tpl'));
- }
+ $logfile = BASE_DIR.$this->_logdir;
- /**
- * Метод, предназначенный для отображения всех записей Журнала событий 404
- *
- */
- function List404()
- {
- global $AVE_Template;
+ if(file_exists($logfile))
+ @eval(' ?>'.file_get_contents($logfile).'_404dir;
+ // Передаем данные в шаблон для вывода и отображаем страницу
+ $AVE_Template->assign('logs', $logdata);
+ $AVE_Template->assign('content', $AVE_Template->fetch('logs/logs.tpl'));
+ }
- if(file_exists($logfile))
- include($logfile);
+ /**
+ * Метод, предназначенный для отображения всех записей Журнала событий 404
+ *
+ */
+ function List404()
+ {
+ global $AVE_Template;
- arsort($log404);
+ $log404 = array();
- // Передаем данные в шаблон для вывода и отображаем страницу
- $AVE_Template->assign('logs', $log404);
- $AVE_Template->assign('content', $AVE_Template->fetch('logs/404.tpl'));
- }
+ $logfile = BASE_DIR . $this->_404dir;
- /**
- * Метод, предназначенный для отображения всех записей Журнала событий 404
- *
- */
- function ListSql()
- {
- global $AVE_Template;
+ if(file_exists($logfile))
+ include($logfile);
- $logsql = array();
+ arsort($log404);
- $logfile = BASE_DIR . $this->_sqldir;
+ // Передаем данные в шаблон для вывода и отображаем страницу
+ $AVE_Template->assign('logs', $log404);
+ $AVE_Template->assign('content', $AVE_Template->fetch('logs/404.tpl'));
+ }
- if(file_exists($logfile))
- include($logfile);
+ /**
+ * Метод, предназначенный для отображения всех записей Журнала событий 404
+ *
+ */
+ function ListSql()
+ {
+ global $AVE_Template;
- arsort($logsql);
+ $logsql = array();
- // Передаем данные в шаблон для вывода и отображаем страницу
- $AVE_Template->assign('logs', $logsql);
- $AVE_Template->assign('content', $AVE_Template->fetch('logs/sql.tpl'));
- }
+ $logfile = BASE_DIR . $this->_sqldir;
- /**
- * Метод, предназначенный для удаление записей Журнала событий
- *
- */
- function logDelete()
- {
- global $AVE_Template;
+ if(file_exists($logfile))
+ include($logfile);
- $logfile = BASE_DIR . $this->_logdir;
+ arsort($logsql);
- if(file_exists($logfile))
- unlink($logfile);
+ // Передаем данные в шаблон для вывода и отображаем страницу
+ $AVE_Template->assign('logs', $logsql);
+ $AVE_Template->assign('content', $AVE_Template->fetch('logs/sql.tpl'));
+ }
- // Сохраняем системное сообщение в журнал
- reportLog($AVE_Template->get_config_vars('LOGS_CLEAN'));
+ /**
+ * Метод, предназначенный для удаление записей Журнала событий
+ *
+ */
+ function logDelete()
+ {
+ global $AVE_Template;
- header('Location:index.php?do=logs&cp=' . SESSION);
- exit;
- }
+ $logfile = BASE_DIR . $this->_logdir;
- /**
- * Метод, предназначенный для удаление записей Журнала событий 404
- *
- */
- function DeleteSql()
- {
- global $AVE_Template;
+ if(file_exists($logfile))
+ unlink($logfile);
- $logfile = BASE_DIR . $this->_sqldir;
+ // Сохраняем системное сообщение в журнал
+ reportLog($AVE_Template->get_config_vars('LOGS_CLEAN'));
- if(file_exists($logfile))
- unlink($logfile);
+ header('Location:index.php?do=logs&cp=' . SESSION);
+ exit;
+ }
- // Сохраняем системное сообщение в журнал
- reportLog($AVE_Template->get_config_vars('LOGS_SQL_CLEAN'));
+ /**
+ * Метод, предназначенный для удаление записей Журнала событий 404
+ *
+ */
+ function DeleteSql()
+ {
+ global $AVE_Template;
- header('Location:index.php?do=logs&action=logsql&cp=' . SESSION);
- exit;
- }
+ $logfile = BASE_DIR . $this->_sqldir;
- /**
- * Метод, предназначенный для удаление записей Журнала событий 404
- *
- */
- function Delete404()
- {
- global $AVE_Template;
+ if(file_exists($logfile))
+ unlink($logfile);
- $logfile = BASE_DIR . $this->_404dir;
+ // Сохраняем системное сообщение в журнал
+ reportLog($AVE_Template->get_config_vars('LOGS_SQL_CLEAN'));
- if(file_exists($logfile))
- unlink($logfile);
+ header('Location:index.php?do=logs&action=logsql&cp=' . SESSION);
+ exit;
+ }
- // Сохраняем системное сообщение в журнал
- reportLog($AVE_Template->get_config_vars('LOGS_404_CLEAN'));
+ /**
+ * Метод, предназначенный для удаление записей Журнала событий 404
+ *
+ */
+ function Delete404()
+ {
+ global $AVE_Template;
- header('Location:index.php?do=logs&action=log404&cp=' . SESSION);
- exit;
- }
+ $logfile = BASE_DIR . $this->_404dir;
- /**
- * Метод, предназначенный для экспорта системных сообщений
- *
- */
- function logExport()
- {
- global $AVE_Template;
-
- // Определяем тип файла (CSV), формат имени файла, разделители и т.д.
- $datstring = '';
- $dattype = 'text/csv';
- $datname = 'system_log_' . date('dmyhis', time()) . '.csv';
-
- $separator = ';';
- $enclosed = '"';
-
- // Выполняем запрос к БД на получение списка всех системных сообщений
- $logdata=array();
- $logfile = BASE_DIR.$this->_logdir;
- if(file_exists($logfile))
- @eval('?>'.file_get_contents($logfile).'');
- arsort($logdata);
- $fieldcount = count($logdata[0]);
-
- foreach($logdata[0] as $k=>$v)
- $datstring .= $enclosed . $k . $enclosed . $separator;
- $datstring .= PHP_EOL;
-
- // Циклически обрабатываем данные и формируем CSV файл с учетом указаны выше параметров
- foreach($logdata as $k=>$v)
+ if(file_exists($logfile))
+ unlink($logfile);
+
+ // Сохраняем системное сообщение в журнал
+ reportLog($AVE_Template->get_config_vars('LOGS_404_CLEAN'));
+
+ header('Location:index.php?do=logs&action=log404&cp=' . SESSION);
+ exit;
+ }
+
+ /**
+ * Метод, предназначенный для экспорта системных сообщений
+ *
+ */
+ function logExport()
{
- foreach ($v as $key => $val)
+ global $AVE_Template;
+
+ // Определяем тип файла (CSV), формат имени файла, разделители и т.д.
+ $datstring = '';
+ $dattype = 'text/csv';
+ $datname = 'system_log_' . date('dmyhis', time()) . '.csv';
+
+ $separator = ';';
+ $enclosed = '"';
+
+ // Выполняем запрос к БД на получение списка всех системных сообщений
+ $logdata=array();
+ $logfile = BASE_DIR.$this->_logdir;
+ if(file_exists($logfile))
+ @eval(' ?>'.file_get_contents($logfile).'$v)
+ $datstring .= $enclosed . $k . $enclosed . $separator;
+ $datstring .= PHP_EOL;
+
+ // Циклически обрабатываем данные и формируем CSV файл с учетом указаны выше параметров
+ foreach($logdata as $k=>$v)
{
- $val = ($key=='log_time') ? date('d-m-Y, H:i:s', $val) : $val;
- $datstring .= ($val == '') ? $separator : $enclosed . stripslashes($val) . $enclosed . $separator;
+ foreach ($v as $key => $val)
+ {
+ $val = ($key=='log_time') ? date('d-m-Y, H:i:s', $val) : $val;
+ $datstring .= ($val == '') ? $separator : $enclosed . stripslashes($val) . $enclosed . $separator;
+ }
+ $datstring .= PHP_EOL;
}
- $datstring .= PHP_EOL;
- }
- // Определяем заголовки документа
- header('Content-Encoding: windows-1251');
- header('Content-type: text/csv; charset=windows-1251');
- header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- header('Content-Disposition: attachment; filename="' . $datname . '"');
- header('Content-Length: ' . strlen($datstring));
- header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
- header('Pragma: public');
+ // Определяем заголовки документа
+ header('Content-Encoding: windows-1251');
+ header('Content-type: text/csv; charset=windows-1251');
+ header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
+ header('Content-Disposition: attachment; filename="' . $datname . '"');
+ header('Content-Length: ' . strlen($datstring));
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+ header('Pragma: public');
- // Выводим данные
- echo mb_convert_encoding($datstring, 'windows-1251', 'UTF-8');
+ // Выводим данные
+ echo mb_convert_encoding($datstring, 'windows-1251', 'UTF-8');
- // Сохраняем системное сообщение в журнал
- reportLog($AVE_Template->get_config_vars('LOGS_EXPORT'));
+ // Сохраняем системное сообщение в журнал
+ reportLog($AVE_Template->get_config_vars('LOGS_EXPORT'));
- exit;
- }
+ exit;
+ }
- /**
- * Метод, предназначенный для экспорта сообщений 404
- *
- */
- function Export404()
- {
- global $AVE_Template;
+ /**
+ * Метод, предназначенный для экспорта сообщений 404
+ *
+ */
+ function Export404()
+ {
+ global $AVE_Template;
- // Определяем тип файла (CSV), формат имени файла, разделители и т.д.
- $datstring = '';
- $dattype = 'text/csv';
- $datname = 'system_log_' . date('dmyhis', time()) . '.csv';
+ // Определяем тип файла (CSV), формат имени файла, разделители и т.д.
+ $datstring = '';
+ $dattype = 'text/csv';
+ $datname = 'system_log_' . date('dmyhis', time()) . '.csv';
- $separator = ';';
- $enclosed = '"';
+ $separator = ';';
+ $enclosed = '"';
- // Выполняем запрос к БД на получение списка всех системных сообщений
- $log404 = array();
+ // Выполняем запрос к БД на получение списка всех системных сообщений
+ $log404 = array();
- $logfile = BASE_DIR.$this->_404dir;
+ $logfile = BASE_DIR.$this->_404dir;
- if(file_exists($logfile))
- include($logfile);
+ if(file_exists($logfile))
+ include($logfile);
- arsort($log404);
+ arsort($log404);
- $fieldcount = count($log404[0]);
+ $fieldcount = count($log404[0]);
- foreach($log404[0] as $k=>$v)
- $datstring .= $enclosed . $k . $enclosed . $separator;
+ foreach($log404[0] as $k=>$v)
+ $datstring .= $enclosed . $k . $enclosed . $separator;
- $datstring .= PHP_EOL;
+ $datstring .= PHP_EOL;
- // Циклически обрабатываем данные и формируем CSV файл с учетом указаны выше параметров
- foreach($log404 as $k=>$v)
- {
- foreach ($v as $key => $val)
+ // Циклически обрабатываем данные и формируем CSV файл с учетом указаны выше параметров
+ foreach($log404 as $k=>$v)
{
- $val = ($key=='log_time') ? date('d-m-Y, H:i:s', $val) : $val;
- $datstring .= ($val == '') ? $separator : $enclosed . stripslashes($val) . $enclosed . $separator;
+ foreach ($v as $key => $val)
+ {
+ $val = ($key=='log_time') ? date('d-m-Y, H:i:s', $val) : $val;
+ $datstring .= ($val == '') ? $separator : $enclosed . stripslashes($val) . $enclosed . $separator;
+ }
+ $datstring .= PHP_EOL;
}
- $datstring .= PHP_EOL;
- }
- // Определяем заголовки документа
- header('Content-Encoding: windows-1251');
- header('Content-type: text/csv; charset=windows-1251');
- header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- header('Content-Disposition: attachment; filename="' . $datname . '"');
- header('Content-Length: ' . strlen($datstring));
- header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
- header('Pragma: public');
+ // Определяем заголовки документа
+ header('Content-Encoding: windows-1251');
+ header('Content-type: text/csv; charset=windows-1251');
+ header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
+ header('Content-Disposition: attachment; filename="' . $datname . '"');
+ header('Content-Length: ' . strlen($datstring));
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+ header('Pragma: public');
- // Выводим данные
- echo mb_convert_encoding(strip_tags($datstring), 'windows-1251', 'UTF-8');
+ // Выводим данные
+ echo mb_convert_encoding(strip_tags($datstring), 'windows-1251', 'UTF-8');
- // Сохраняем системное сообщение в журнал
- reportLog($AVE_Template->get_config_vars('LOGS_404_EXPORT'));
+ // Сохраняем системное сообщение в журнал
+ reportLog($AVE_Template->get_config_vars('LOGS_404_EXPORT'));
- exit;
- }
+ exit;
+ }
- /**
- * Метод, предназначенный для экспорта сообщений 404
- *
- */
- function ExportSql()
- {
- global $AVE_Template;
+ /**
+ * Метод, предназначенный для экспорта сообщений 404
+ *
+ */
+ function ExportSql()
+ {
+ global $AVE_Template;
- // Определяем тип файла (CSV), формат имени файла, разделители и т.д.
- $datstring = '';
- $dattype = 'text/csv';
- $datname = 'system_log_' . date('dmyhis', time()) . '.csv';
+ // Определяем тип файла (CSV), формат имени файла, разделители и т.д.
+ $datstring = '';
+ $dattype = 'text/csv';
+ $datname = 'system_log_' . date('dmyhis', time()) . '.csv';
- $separator = ';';
- $enclosed = '"';
+ $separator = ';';
+ $enclosed = '"';
- // Выполняем запрос к БД на получение списка всех системных сообщений
- $logsql = array();
+ // Выполняем запрос к БД на получение списка всех системных сообщений
+ $logsql = array();
- $logfile = BASE_DIR . $this->_sqldir;
+ $logfile = BASE_DIR . $this->_sqldir;
- if(file_exists($logfile))
- include($logfile);
+ if(file_exists($logfile))
+ include($logfile);
- arsort($logsql);
+ arsort($logsql);
- $fieldcount = count($logsql[0]);
+ $fieldcount = count($logsql[0]);
- foreach($logsql[0] as $k=>$v)
- $datstring .= $enclosed . $k . $enclosed . $separator;
+ foreach($logsql[0] as $k=>$v)
+ $datstring .= $enclosed . $k . $enclosed . $separator;
- $datstring .= PHP_EOL;
+ $datstring .= PHP_EOL;
- // Циклически обрабатываем данные и формируем CSV файл с учетом указаны выше параметров
- foreach($logsql as $k => $v)
- {
- foreach ($v as $key => $val)
+ // Циклически обрабатываем данные и формируем CSV файл с учетом указаны выше параметров
+ foreach($logsql as $k => $v)
{
- $val = ($key == 'log_time') ? date('d-m-Y, H:i:s', $val) : $val;
- $val = ($key == 'log_text') ? serialize($val) : $val;
- $datstring .= ($val == '') ? $separator : $enclosed . stripslashes($val) . $enclosed . $separator;
+ foreach ($v as $key => $val)
+ {
+ $val = ($key == 'log_time') ? date('d-m-Y, H:i:s', $val) : $val;
+ $val = ($key == 'log_text') ? serialize($val) : $val;
+ $datstring .= ($val == '') ? $separator : $enclosed . stripslashes($val) . $enclosed . $separator;
+ }
+ $datstring .= PHP_EOL;
}
- $datstring .= PHP_EOL;
- }
-
- // Определяем заголовки документа
- header('Content-Encoding: windows-1251');
- header('Content-type: text/csv; charset=windows-1251');
- header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- header('Content-Disposition: attachment; filename="' . $datname . '"');
- header('Content-Length: ' . strlen($datstring));
- header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
- header('Pragma: public');
- // Выводим данные
- echo mb_convert_encoding(strip_tags($datstring), 'windows-1251', 'UTF-8');
+ // Определяем заголовки документа
+ header('Content-Encoding: windows-1251');
+ header('Content-type: text/csv; charset=windows-1251');
+ header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
+ header('Content-Disposition: attachment; filename="' . $datname . '"');
+ header('Content-Length: ' . strlen($datstring));
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+ header('Pragma: public');
- // Сохраняем системное сообщение в журнал
- reportLog($AVE_Template->get_config_vars('LOGS_SQL_EXPORT'));
+ // Выводим данные
+ echo mb_convert_encoding(strip_tags($datstring), 'windows-1251', 'UTF-8');
- exit;
- }
+ // Сохраняем системное сообщение в журнал
+ reportLog($AVE_Template->get_config_vars('LOGS_SQL_EXPORT'));
-}
+ exit;
+ }
+ }
?>
\ No newline at end of file
diff --git a/class/class.modules.php b/class/class.modules.php
index 2750951..026bbf2 100644
--- a/class/class.modules.php
+++ b/class/class.modules.php
@@ -63,9 +63,9 @@
$module = array();
+ // Если не удалось подключить основной файл модуля module.php - Фиксируем ошибку
if (! (is_file($module_dir . '/info.php') && @include_once($module_dir . '/info.php')))
{
- // Если не удалось подключить основной файл модуля module.php - Фиксируем ошибку
$modules['errors'][] = $entry;
continue;
}
@@ -89,18 +89,20 @@
// установленные модули
if ($row)
{
- $module['status'] = $row->ModuleStatus;
$module['id'] = $row->Id;
$module['need_update'] = ($row->ModuleVersion != $module['ModuleVersion']);
$module['template'] = ($row->ModuleTemplate ? $row->ModuleTemplate : 0);
+ $module['ModuleAveTag'] = $row->ModuleAveTag;
+ $module['ModulePHPTag'] = $row->ModulePHPTag;
+ $module['ModuleStatus'] = $row->ModuleStatus;
$module['ModuleVersion'] = $row->ModuleVersion;
}
// неустановленные модули
else
{
- $module['status'] = false;
$module['id'] = $module['ModuleSysName'];
$module['template'] = (! empty($module['ModuleTemplate']) ? $module['ModuleTemplate'] : '');
+ $module['ModuleStatus'] = false;
}
// записываем в массив
@@ -151,7 +153,7 @@
? ' '
: " $author_title" . $module['ModuleAutor'] . " ") . ' ' . $module['ModuleCopyright'] . '';
// установленные модули
- if ($module['status'] !== false)
+ if ($module['ModuleStatus'] !== false)
$installed_modules[$module['ModuleSysName']] = $module;
// неустановленные модули
else
@@ -203,7 +205,7 @@
{
foreach ($this->_modules AS $k => $v)
{
- if ($status && $v['status'] != $status)
+ if ($status && $v['ModuleStatus'] != $status)
continue;
$modules[$k] = $v;
@@ -218,7 +220,7 @@
// Выполняем запрос к БД и получаем список документов,
// согласно статусу, либо все модули, если статус не указан
- $sql = $AVE_DB->Query("
+ $sql = "
SELECT
*
FROM
@@ -226,9 +228,11 @@
" . $where_status . "
ORDER BY
ModuleName ASC
- ");
+ ";
- while ($row = $sql->FetchRow())
+ $query = $AVE_DB->Query($sql, SYSTEM_CACHE_LIFETIME, 'modules');
+
+ while ($row = $query->FetchRow())
$modules[$row->ModuleSysName] = $row;
}
@@ -259,6 +263,8 @@
");
}
+ $this->clearModulesCache();
+
// Выполянем обновление страницы со списком модулей
header('Location:index.php?do=modules&cp=' . SESSION);
exit;
@@ -276,7 +282,7 @@
// Получаем данные модуля
$modules = $this->_modules;
- $modul = $modules[MODULE_PATH];
+ $module = $modules[MODULE_PATH];
// Удаляем информацию о модуле в таблице module
$AVE_DB->Query("
@@ -288,13 +294,13 @@
");
// Определяем, имеет ли модуль возможность настройки в Панели управления
- $modul['ModuleAdminEdit'] = (!empty($modul['ModuleAdminEdit']))
- ? $modul['ModuleAdminEdit']
+ $module['ModuleAdminEdit'] = (!empty($module['ModuleAdminEdit']))
+ ? $module['ModuleAdminEdit']
: 0;
// Определяем, имеет ли модуль возможность смены шаблона
- $modul['ModuleTemplate'] = ($modul['ModuleTemplate'])
- ? $modul['ModuleTemplate']
+ $module['ModuleTemplate'] = ($module['ModuleTemplate'])
+ ? $module['ModuleTemplate']
: 0;
// Добавляем информацию о модуле в таблицу module
@@ -302,16 +308,16 @@
INSERT INTO
" . PREFIX . "_module
SET
- ModuleName = '" . $modul['ModuleName'] . "',
+ ModuleName = '" . $module['ModuleName'] . "',
ModuleStatus = '1',
- ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
- ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
- ModuleFunction = '" . $modul['ModuleFunction'] . "',
- ModuleIsFunction = '" . $modul['ModuleIsFunction'] . "',
+ ModuleAveTag = '" . $module['ModuleAveTag'] . "',
+ ModulePHPTag = '" . $module['ModulePHPTag'] . "',
+ ModuleFunction = '" . $module['ModuleFunction'] . "',
+ ModuleIsFunction = '" . $module['ModuleIsFunction'] . "',
ModuleSysName = '" . MODULE_PATH . "',
- ModuleVersion = '" . $modul['ModuleVersion'] . "',
- ModuleTemplate = '" . $modul['ModuleTemplate'] . "',
- ModuleAdminEdit = '" . $modul['ModuleAdminEdit'] . "'
+ ModuleVersion = '" . $module['ModuleVersion'] . "',
+ ModuleTemplate = '" . $module['ModuleTemplate'] . "',
+ ModuleAdminEdit = '" . $module['ModuleAdminEdit'] . "'
");
// Подключаем файл с запросами к БД для данного модуля
@@ -325,20 +331,22 @@
// из массива $module_sql_deinstall файла sql.php
foreach ($module_sql_deinstall as $sql)
{
- $AVE_DB->Query(str_replace('CPPREFIX', PREFIX, $sql));
+ $AVE_DB->Query(str_replace('%%PRFX%%', PREFIX, $sql));
}
// Выполняем запросы создания таблиц и данных модуля
// из массива $module_sql_install файла sql.php
foreach ($module_sql_install as $sql)
{
- $AVE_DB->Query(str_replace('CPPREFIX', PREFIX, $sql));
+ $AVE_DB->Query(str_replace('%%PRFX%%', PREFIX, $sql));
}
}
// Сохраняем системное сообщение в журнал
($_REQUEST['action'] == "reinstall")
- ? reportLog($AVE_Template->get_config_vars('MODULES_ACTION_REINSTALL') . ' (' . $modul['ModuleName'] . ')')
- : reportLog($AVE_Template->get_config_vars('MODULES_ACTION_INSTALL') . ' (' . $modul['ModuleName'] . ')');
+ ? reportLog($AVE_Template->get_config_vars('MODULES_ACTION_REINSTALL') . ' (' . $module['ModuleName'] . ')')
+ : reportLog($AVE_Template->get_config_vars('MODULES_ACTION_INSTALL') . ' (' . $module['ModuleName'] . ')');
+
+ $this->clearModulesCache();
// Выполняем обновление страницы со списком модулей
header('Location:index.php?do=modules&cp=' . SESSION);
@@ -359,38 +367,38 @@
$sql_file = BASE_DIR . '/modules/' . MODULE_PATH . '/sql.php';
- $mod_file = BASE_DIR . '/modules/' . MODULE_PATH . '/module.php';
+ $mod_file = BASE_DIR . '/modules/' . MODULE_PATH . '/info.php';
if (file_exists($mod_file) && file_exists($sql_file))
{
- include($mod_file);
- include($sql_file);
+ include ($mod_file);
+ include ($sql_file);
+
// Выполняем запросы обновления модуля
// из массива $module_sql_update файла sql.php
foreach ($module_sql_update as $sql)
{
- $AVE_DB->Query(str_replace('CPPREFIX', PREFIX, $sql));
+ $AVE_DB->Query(str_replace('%%PRFX%%', PREFIX, $sql));
}
}
// Обновляем модуль, если в нем не применяется (отсутствует) файл sql.php
elseif (file_exists($mod_file) && file_exists($sql_file) === false)
{
- include($mod_file);
+ include_once ($mod_file);
$AVE_DB->Query("
UPDATE
" . PREFIX . "_module
SET
- ModuleName = '" . $modul['ModuleName'] . "',
- ModuleStatus = '1',
- ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
- ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
- ModuleFunction = '" . $modul['ModuleFunction'] . "',
- ModuleIsFunction = '" . $modul['ModuleIsFunction'] . "',
+ ModuleAveTag = '" . $module['ModuleAveTag'] . "',
+ ModulePHPTag = '" . $module['ModulePHPTag'] . "',
+ ModuleFunction = '" . $module['ModuleFunction'] . "',
+ ModuleIsFunction = '" . $module['ModuleIsFunction'] . "',
ModuleSysName = '" . MODULE_PATH . "',
- ModuleVersion = '" . $modul['ModuleVersion'] . "',
- ModuleTemplate = '" . $modul['ModuleTemplate'] . "',
- ModuleAdminEdit = '" . $modul['ModuleAdminEdit'] . "'
+ ModuleVersion = '" . $module['ModuleVersion'] . "',
+ ModuleTemplate = '" . $module['ModuleTemplate'] . "',
+ ModuleAdminEdit = '" . $module['ModuleAdminEdit'] . "',
+ ModuleStatus = '1'
WHERE
ModuleSysName = '" . MODULE_PATH . "'
");
@@ -398,6 +406,8 @@
// Сохраняем системное сообщение в журнал
reportLog ($AVE_Template->get_config_vars('MODULES_ACTION_UPDATE') . ' (' . MODULE_PATH . ')');
+ $this->clearModulesCache();
+
// Выполянем обновление страницы со списком модулей
header('Location:index.php?do=modules&cp=' . SESSION);
exit;
@@ -423,7 +433,7 @@
// из массива $module_sql_deinstall файла sql.php
foreach ($module_sql_deinstall as $sql)
{
- $AVE_DB->Query(str_replace('CPPREFIX', PREFIX, $sql));
+ $AVE_DB->Query(str_replace('%%PRFX%%', PREFIX, $sql));
}
}
@@ -436,6 +446,8 @@
ModuleSysName = '" . MODULE_PATH . "'
");
+ $this->clearModulesCache();
+
// Сохраняем системное сообщение в журнал
reportLog ($AVE_Template->get_config_vars('MODULES_ACTION_DELETE') .' (' . MODULE_PATH . ')');
@@ -477,6 +489,8 @@
ModuleSysName = '" . MODULE_PATH . "'
");
+ $this->clearModulesCache();
+
// Сохраняем системное сообщение в журнал
reportLog ((($ModuleStatus == "0")
? $AVE_Template->get_config_vars('MODULES_ACTION_OFFLINE')
@@ -506,6 +520,8 @@
rrmdir ($directory);
+ $this->clearModulesCache();
+
// Сохраняем системное сообщение в журнал
reportLog ($AVE_Template->get_config_vars('MODULES_ACTION_REMOVE') . ' (' . $dir . ')');
@@ -513,5 +529,17 @@
header('Location:index.php?do=modules&cp=' . SESSION);
exit;
}
+
+
+ /**
+ * Функция очищает кеш системных настроек
+ *
+ */
+ function clearModulesCache()
+ {
+ $cache_dir = BASE_DIR . '/tmp/cache/sql/modules/';
+
+ return rrmdir($cache_dir);
+ }
}
?>
\ No newline at end of file
diff --git a/class/class.navigation.php b/class/class.navigation.php
index f30e777..0772d16 100644
--- a/class/class.navigation.php
+++ b/class/class.navigation.php
@@ -244,6 +244,7 @@
//-- Стираем кеш навигации
$this->clearCache($navigation_id, $_REQUEST['alias']);
$this->clearCacheId($navigation_id, $_REQUEST['alias']);
+ $this->clearCacheNav($navigation_id, $_REQUEST['alias']);
if ($sql === false)
{
@@ -400,6 +401,8 @@
" . PREFIX . "_navigation
");
+ $items = null;
+
//-- Циклически обрабатываем полученные данные
while ($navigation = $sql->FetchRow())
{
@@ -1264,24 +1267,24 @@
function clearCache($id, $alias = '')
{
- if (file_exists(BASE_DIR . '/cache/sql/nav/template-' . $id . '.cache'))
- unlink(BASE_DIR . '/cache/sql/nav/template-' . $id . '.cache');
+ if (file_exists(BASE_DIR . '/tmp/cache/sql/nav/template-' . $id . '.cache'))
+ unlink(BASE_DIR . '/tmp/cache/sql/nav/template-' . $id . '.cache');
- if (file_exists(BASE_DIR . '/cache/sql/nav/template-' . $alias . '.cache'))
- unlink(BASE_DIR . '/cache/sql/nav/template-' . $alias . '.cache');
+ if (file_exists(BASE_DIR . '/tmp/cache/sql/nav/template-' . $alias . '.cache'))
+ unlink(BASE_DIR . '/tmp/cache/sql/nav/template-' . $alias . '.cache');
- if (file_exists(BASE_DIR . '/cache/sql/nav/items-' . $id . '.cache'))
- unlink(BASE_DIR . '/cache/sql/nav/items-' . $id . '.cache');
+ if (file_exists(BASE_DIR . '/tmp/cache/sql/nav/items-' . $id . '.cache'))
+ unlink(BASE_DIR . '/tmp/cache/sql/nav/items-' . $id . '.cache');
- if (file_exists(BASE_DIR . '/cache/sql/nav/items-' . $alias . '.cache'))
- unlink(BASE_DIR . '/cache/sql/nav/items-' . $alias . '.cache');
+ if (file_exists(BASE_DIR . '/tmp/cache/sql/nav/items-' . $alias . '.cache'))
+ unlink(BASE_DIR . '/tmp/cache/sql/nav/items-' . $alias . '.cache');
}
function clearCacheId($id, $alias = '')
{
- $dir_id = BASE_DIR . '/cache/sql/nav_' . $id;
- $dir_alias = BASE_DIR . '/cache/sql/nav_' . $alias;
+ $dir_id = BASE_DIR . '/tmp/cache/sql/nav_' . $id;
+ $dir_alias = BASE_DIR . '/tmp/cache/sql/nav_' . $alias;
if (file_exists($dir_id))
{
@@ -1299,5 +1302,28 @@
}
}
}
+
+
+ function clearCacheNav($id, $alias)
+ {
+ $cache_id = str_replace('nav_', '', $id);
+ $cache_id = 'nav/' . substr($cache_id, 0, 3);
+
+ $cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
+ ? trim($cache_id) . '/'
+ : '');
+
+ rrmdir($cache_dir);
+
+
+ $cache_id = str_replace('nav_', '', $alias);
+ $cache_id = 'nav/' . substr($cache_id, 0, 3);
+
+ $cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
+ ? trim($cache_id) . '/'
+ : '');
+
+ rrmdir($cache_dir);
+ }
}
?>
diff --git a/class/class.rubs.php b/class/class.rubs.php
index 44ac4b2..f949b42 100755
--- a/class/class.rubs.php
+++ b/class/class.rubs.php
@@ -869,17 +869,24 @@
$sql = $AVE_DB->Query("
SELECT
- Id
+ Id,
+ document_alias
FROM
" . PREFIX . "_documents
WHERE
rubric_id = " . $rubric_id . "
");
- while ($row = $sql->GetCell())
+ while ($row = $sql->FetchRow())
{
- $AVE_DB->clearcache('doc_' . $row);
- $AVE_DB->clearcompile('doc_' . $row);
+ if ($row->Id == 1)
+ $hash_url = md5('');
+ else
+ $hash_url = md5($row->document_alias);
+
+ $AVE_DB->clearCacheUrl('url_'.$hash_url);
+ $AVE_DB->clearcache('doc_' . $row->Id);
+ $AVE_DB->clearcompile('doc_' . $row->Id);
}
if ($sql->_result === false)
@@ -1003,10 +1010,16 @@
WHERE rub_id = '" . $rubric_id . "'
");
- $sql = $AVE_DB->Query("SELECT Id FROM " . PREFIX . "_documents WHERE rubric_id = ".$rubric_id);
+ $sql = $AVE_DB->Query("SELECT Id,document_alias FROM " . PREFIX . "_documents WHERE rubric_id = ".$rubric_id);
while ($row = $sql->FetchRow())
{
+ if ($row->Id == 1)
+ $hash_url = md5('');
+ else
+ $hash_url = md5($row->document_alias);
+
+ $AVE_DB->clearCacheUrl('url_'.$hash_url);
$AVE_DB->clearcache('doc_'.$row->Id);
$AVE_DB->clearcompile('doc_'.$row->Id);
$AVE_DB->clearcacherequest('doc_'.$row->Id);
@@ -1044,10 +1057,16 @@
$AVE_DB->clearcache('rub_'.$rubric_id);
- $sql = $AVE_DB->Query("SELECT Id FROM " . PREFIX . "_documents WHERE rubric_id = ".$rubric_id);
+ $sql = $AVE_DB->Query("SELECT Id,document_alias FROM " . PREFIX . "_documents WHERE rubric_id = ".$rubric_id);
while ($row = $sql->FetchRow())
{
+ if ($row->Id == 1)
+ $hash_url = md5('');
+ else
+ $hash_url = md5($row->document_alias);
+
+ $AVE_DB->clearCacheUrl('url_'.$hash_url);
$AVE_DB->clearcache('doc_'.$row->Id);
$AVE_DB->clearcompile('doc_'.$row->Id);
}
@@ -1272,10 +1291,16 @@
reportLog($AVE_Template->get_config_vars('RUBRIK_REPORT_TEMPL_RUB') . ' (' . stripslashes(htmlspecialchars($this->rubricNameByIdGet($rubric_id)->rubric_title)) . ') (Id:' . $rubric_id . ')');
}
- $sql = $AVE_DB->Query("SELECT Id FROM " . PREFIX . "_documents WHERE rubric_id = ".$rubric_id);
+ $sql = $AVE_DB->Query("SELECT Id, document_alias FROM " . PREFIX . "_documents WHERE rubric_id = ".$rubric_id);
while ($row = $sql->FetchRow())
{
+ if ($row->Id == 1)
+ $hash_url = md5('');
+ else
+ $hash_url = md5($row->document_alias);
+
+ $AVE_DB->clearCacheUrl('url_'.$hash_url);
$AVE_DB->clearcache('doc_'.$row->Id);
$AVE_DB->clearcompile('doc_'.$row->Id);
}
@@ -1532,7 +1557,9 @@
$AVE_Template->assign('content', $AVE_Template->fetch('rubs/field_template.tpl'));
}
- function rubricFieldTemplateSave($id, $rubric_id) {
+
+ function rubricFieldTemplateSave($id, $rubric_id)
+ {
global $AVE_DB, $AVE_Template;
$sql = $AVE_DB->Query("
@@ -1546,7 +1573,8 @@
Id = '" . $id . "'
");
- if ($sql->_result === false) {
+ if ($sql->_result === false)
+ {
$message = $AVE_Template->get_config_vars('RUBRIC_SAVED_FLDTPL_ERR');
$header = $AVE_Template->get_config_vars('RUBRIK_ERROR');
$theme = 'error';
@@ -1559,14 +1587,21 @@
exit;
}
- }else{
-
+ }
+ else
+ {
$AVE_DB->clearcache('rub_'.$rubric_id);
- $sql = $AVE_DB->Query("SELECT Id FROM " . PREFIX . "_documents");
+ $sql = $AVE_DB->Query("SELECT Id, document_alias FROM " . PREFIX . "_documents WHERE rubric_id = '".$rubric_id."'");
while ($row = $sql->FetchRow())
{
+ if ($row->Id == 1)
+ $hash_url = md5('');
+ else
+ $hash_url = md5($row->document_alias);
+
+ $AVE_DB->clearCacheUrl('url_'.$hash_url);
$AVE_DB->clearcache('doc_'.$row->Id);
$AVE_DB->clearcompile('doc_'.$row->Id);
$AVE_DB->clearcacherequest('doc_'.$row->Id);
@@ -2072,7 +2107,8 @@
$sql = $AVE_DB->Query("
SELECT
- Id
+ Id,
+ document_alias
FROM
" . PREFIX . "_documents
WHERE
@@ -2083,6 +2119,12 @@
while ($row = $sql->FetchRow())
{
+ if ($row->Id == 1)
+ $hash_url = md5('');
+ else
+ $hash_url = md5($row->document_alias);
+
+ $AVE_DB->clearCacheUrl('url_'.$hash_url);
$AVE_DB->clearcache('doc_'.$row->Id);
$AVE_DB->clearcompile('doc_'.$row->Id);
}
diff --git a/class/class.session.files.php b/class/class.session.files.php
index 5fc5b8e..b68083a 100644
--- a/class/class.session.files.php
+++ b/class/class.session.files.php
@@ -1,140 +1,142 @@
sess_lifetime = (defined('SESSION_LIFETIME') && is_numeric(SESSION_LIFETIME))
- ? SESSION_LIFETIME
- : (get_cfg_var("session.gc_maxlifetime") < 1440 ? 1440 : get_cfg_var("session.gc_maxlifetime"));
+ public $sess_lifetime;
- return true;
- }
-
- /* Open session */
- function _open($sess_save_path, $session_name)
- {
- global $sess_save_path, $sess_session_name;
-
- $sess_save_path = BASE_DIR . '/session';
- $sess_session_name = $session_name;
-
- return true;
- }
+ function __construct()
+ {
+ ini_set('session.save_handler', 'user');
- /* Close session */
- function _close()
- {
- $this->_gc($this->sess_lifetime);
- return true;
- }
+ $this->sess_lifetime = (defined('SESSION_LIFETIME') && is_numeric(SESSION_LIFETIME))
+ ? SESSION_LIFETIME
+ : (get_cfg_var("session.gc_maxlifetime") < 1440 ? 1440 : get_cfg_var("session.gc_maxlifetime"));
- /* Read session */
- function _read($id)
- {
- global $sess_save_path, $sess_session_name, $sess_session_id;
+ return true;
+ }
- $sess_session_id = $id;
- $sess_file = $this->_folder() . '/' . $id . '.sess';
+ /* Open session */
+ function _open($sess_save_path, $session_name)
+ {
+ global $sess_save_path, $sess_session_name;
- if (!file_exists($sess_file)) return "";
+ $sess_save_path = BASE_DIR . '/tmp/session';
+ $sess_session_name = $session_name;
- if ($fp = @fopen($sess_file, "r"))
- {
- $sess_data = fread($fp, filesize($sess_file));
- return($sess_data);
+ return true;
}
- else
+
+ /* Close session */
+ function _close()
{
- return '';
+ $this->_gc($this->sess_lifetime);
+ return true;
}
- }
- /* Write new data */
- function _write ($id, $sess_data)
- {
- global $sess_save_path, $sess_session_name, $sess_session_id;
+ /* Read session */
+ function _read($id)
+ {
+ global $sess_save_path, $sess_session_name, $sess_session_id;
- $sess_session_id = $id;
- $sess_file = $this->_folder() . '/' . $id . '.sess';
+ $sess_session_id = $id;
+ $sess_file = $this->_folder() . '/' . $id . '.sess';
- if(!file_exists($this->_folder()))
- mkdir($this->_folder(), 0777, true);
+ if (!file_exists($sess_file)) return "";
- if ($fp = @fopen($sess_file, "w"))
- {
- return fwrite($fp, $sess_data);
+ if ($fp = @fopen($sess_file, "r"))
+ {
+ $sess_data = fread($fp, filesize($sess_file));
+ return($sess_data);
+ }
+ else
+ {
+ return '';
+ }
}
- else
+
+ /* Write new data */
+ function _write ($id, $sess_data)
{
- return false;
- }
- }
+ global $sess_save_path, $sess_session_name, $sess_session_id;
- /* Destroy session */
- function _destroy ($id)
- {
- global $sess_save_path, $sess_session_name, $sess_session_id;
+ $sess_session_id = $id;
+ $sess_file = $this->_folder() . '/' . $id . '.sess';
- $sess_session_id = $id;
- $sess_dir = $this->_folder();
- $sess_file = $sess_dir . '/' . $id . '.sess';
+ if(!file_exists($this->_folder()))
+ mkdir($this->_folder(), 0777, true);
- return @unlink($sess_file);
- }
+ if ($fp = @fopen($sess_file, "w"))
+ {
+ return fwrite($fp, $sess_data);
+ }
+ else
+ {
+ return false;
+ }
+ }
- /* Garbage collection, deletes old sessions */
- function _gc ($maxlifetime)
- {
- global $sess_save_path, $sess_session_id;
+ /* Destroy session */
+ function _destroy ($id)
+ {
+ global $sess_save_path, $sess_session_name, $sess_session_id;
- $this->_clear($sess_save_path, 'sess', $maxlifetime);
+ $sess_session_id = $id;
+ $sess_dir = $this->_folder();
+ $sess_file = $sess_dir . '/' . $id . '.sess';
- return true;
- }
+ return @unlink($sess_file);
+ }
- function _clear($dir, $mask, $maxlifetime)
- {
- foreach(glob($dir . '/*') as $filename) {
+ /* Garbage collection, deletes old sessions */
+ function _gc ($maxlifetime)
+ {
+ global $sess_save_path, $sess_session_id;
- if(strtolower(substr($filename, strlen($filename) - strlen($mask), strlen($mask))) == strtolower($mask)) {
- if((filemtime($filename) + $maxlifetime) < time())
- @unlink($filename);
- }
+ $this->_clear($sess_save_path, 'sess', $maxlifetime);
- if(is_dir($filename))
- if (!count(glob($filename.'/*'))) @rmdir($filename);
- self::_clear($filename, $mask, $maxlifetime);
+ return true;
}
- }
- function _folder()
- {
- global $sess_session_id, $sess_save_path;
+ function _clear($dir, $mask, $maxlifetime)
+ {
+ foreach(glob($dir . '/*') as $filename)
+ {
+ if (strtolower(substr($filename, strlen($filename) - strlen($mask), strlen($mask))) == strtolower($mask))
+ {
+ if ((filemtime($filename) + $maxlifetime) < time())
+ @unlink($filename);
+ }
+
+ if (is_dir($filename))
+ if (! count(glob($filename.'/*')))
+ @rmdir($filename);
+
+ self::_clear($filename, $mask, $maxlifetime);
+ }
+ }
- return $sess_save_path . '/' . mb_substr($sess_session_id, 0, 3);
- }
+ function _folder()
+ {
+ global $sess_session_id, $sess_save_path;
- function __destruct ()
- {
- register_shutdown_function('session_write_close');
- }
+ return $sess_save_path . '/' . mb_substr($sess_session_id, 0, 3);
+ }
-}
+ function __destruct ()
+ {
+ register_shutdown_function('session_write_close');
+ }
+ }
?>
\ No newline at end of file
diff --git a/class/class.session.php b/class/class.session.php
index 06a0b08..03cbcf2 100644
--- a/class/class.session.php
+++ b/class/class.session.php
@@ -58,7 +58,7 @@ class AVE_Session_DB
function __construct()
{
// Подключаем конфигурационный файл с параметрами подключения
- require (BASE_DIR . '/inc/db.config.php');
+ require (BASE_DIR . '/config/db.config.php');
$this->db_host = $config['dbhost'];
$this->db_user = $config['dbuser'];
diff --git a/class/class.settings.php b/class/class.settings.php
index 07eb18b..9ef5819 100644
--- a/class/class.settings.php
+++ b/class/class.settings.php
@@ -103,7 +103,7 @@ class AVE_Settings
$set .= '?>';
- $result = file_put_contents(BASE_DIR . '/inc/config.inc.php', $set);
+ $result = file_put_contents(BASE_DIR . '/config/config.inc.php', $set);
if ($result > 0)
{
@@ -227,12 +227,15 @@ class AVE_Settings
reportLog($AVE_Template->get_config_vars('SETTINGS_SAVE_MAIN'));
}
- if (isset($_REQUEST['ajax']) && $_REQUEST['ajax'] = '1') {
+ 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);
}
+ else
+ {
+ $AVE_Template->assign('message', $message);
+ header('Location:index.php?do=settings&cp=' . SESSION);
+ }
exit;
}
@@ -253,6 +256,7 @@ class AVE_Settings
);
$countries = array();
+
while ($row = $sql->FetchAssocArray())
{
array_push($countries, $row);
@@ -599,7 +603,7 @@ class AVE_Settings
*/
function clearSettingsCache()
{
- $cache_dir = BASE_DIR . '/cache/sql/settings/';
+ $cache_dir = BASE_DIR . '/tmp/cache/sql/settings/';
return rrmdir($cache_dir);
}
diff --git a/class/class.sysblocks.php b/class/class.sysblocks.php
index b693423..fabdfbe 100644
--- a/class/class.sysblocks.php
+++ b/class/class.sysblocks.php
@@ -111,11 +111,7 @@
$theme = 'accept';
//-- Стираем кеш сисблока
- if (file_exists(BASE_DIR . '/cache/sql/sysblock/' . $sysblock_id . '.cache'))
- unlink(BASE_DIR . '/cache/sql/sysblock/' . $sysblock_id . '.cache');
-
- if ($sysblock_alias != '' && file_exists(BASE_DIR . '/cache/sql/sysblock/' . $sysblock_alias . '.cache'))
- unlink(BASE_DIR . '/cache/sql/sysblock/' . $sysblock_alias . '.cache');
+ $this->clearCache($sysblock_id, $_REQUEST['sysblock_alias']);
//-- Сохраняем системное сообщение в журнал
reportLog($AVE_Template->get_config_vars('SYSBLOCK_SQLUPDATE') . " (" . stripslashes($_REQUEST['sysblock_name']) . ") (id: $sysblock_id)");
@@ -275,11 +271,7 @@
");
//-- Стираем кеш сисблока
- if (file_exists(BASE_DIR . '/cache/sql/sysblock-' . $sysblock_id . '.cache'))
- unlink(BASE_DIR . '/cache/sql/sysblock/' . $sysblock_id . '.cache');
-
- if ($row->sysblock_alias != '')
- unlink(BASE_DIR . '/cache/sql/sysblock/' . $row->sysblock_alias . '.cache');
+ $this->clearCache($sysblock_id, $row->sysblock_alias);
//-- Сохраняем системное сообщение в журнал
reportLog($AVE_Template->get_config_vars('SYSBLOCK_SQLDEL') . " (" . stripslashes($row->sysblock_name) . ") (id: $sysblock_id)");
@@ -287,5 +279,21 @@
header('Location:index.php?do=sysblocks&cp=' . SESSION);
}
+
+
+ function clearCache ($id, $alias = null)
+ {
+ $cache_id = md5('sysblock' . $id);
+ $cache_alias = md5('sysblock' . $alias);
+
+ $cache_id_file = BASE_DIR . '/tmp/cache/sql/sysblock/' . $cache_id . '.cache';
+ $cache_alias_file = BASE_DIR . '/tmp/cache/sql/sysblock/' . $cache_alias . '.cache';
+
+ if (file_exists($cache_id_file))
+ unlink($cache_id_file);
+
+ if (file_exists($cache_alias_file))
+ unlink($cache_alias_file);
+ }
}
?>
\ No newline at end of file
diff --git a/class/class.template.php b/class/class.template.php
index 6b599f0..16eb1c4 100644
--- a/class/class.template.php
+++ b/class/class.template.php
@@ -42,32 +42,32 @@ class AVE_Template extends Smarty
/**
* Имя каталога, в котором хранятся компилированные шаблоны.
*/
- $this->compile_dir = BASE_DIR . '/cache/smarty';
+ $this->compile_dir = BASE_DIR . '/tmp/cache/smarty';
/**
* Имя каталога, в котором хранится кэш.
*/
- $this->cache_dir_root = BASE_DIR . '/cache';
+ $this->cache_dir_root = BASE_DIR . '/tmp/cache';
/**
* Имя каталога, в котором хранится кэш шаблонов.
*/
- $this->cache_dir = BASE_DIR . '/cache/tpl';
+ $this->cache_dir = BASE_DIR . '/tmp/cache/tpl';
/**
* Имя каталога, в котором хранится кэш модулей.
*/
- $this->module_cache_dir = BASE_DIR . '/cache/module';
+ $this->module_cache_dir = BASE_DIR . '/tmp/cache/module';
/**
* Имя каталога, в котором хранится сессии пользователей.
*/
- $this->session_dir = BASE_DIR . '/session';
+ $this->session_dir = BASE_DIR . '/tmp/session';
/**
* Имя каталога, в котором хранится сессии пользователей.
*/
- $this->sql_cache_dir = BASE_DIR . '/cache/sql';
+ $this->sql_cache_dir = BASE_DIR . '/tmp/cache/sql';
/**
* Использование поддиректорий для хранения кэша и скомпилированных шаблонов.
@@ -217,13 +217,14 @@ class AVE_Template extends Smarty
{
$this->clear_all_cache();
- foreach (glob($this->cache_dir_root."/cache_*") as $filename)
+ foreach (glob($this->cache_dir_root . "/cache_*") as $filename)
{
@unlink($filename);
}
$filename = $this->cache_dir . '/.htaccess';
- if (!file_exists($filename))
+
+ if (! file_exists($filename))
{
$fp = @fopen($filename, 'w');
if ($fp)
@@ -233,7 +234,7 @@ class AVE_Template extends Smarty
}
}
- if($_REQUEST['ajax'] && Memcached_Server && Memcached_Port)
+ if ($_REQUEST['ajax'] && Memcached_Server && Memcached_Port)
{
$memcache = new Memcache;
$memcache->connect(Memcached_Server, Memcached_Port);
diff --git a/class/class.templates.php b/class/class.templates.php
index bf40c74..d4e3d24 100644
--- a/class/class.templates.php
+++ b/class/class.templates.php
@@ -142,6 +142,12 @@
{
global $AVE_DB, $AVE_Template;
+ $template_id = (int)$_REQUEST['Id'];
+
+ $cache = 'template_' . $template_id;
+
+ $cache_file = BASE_DIR . '/tmp/cache/templates/' . $cache . '.inc';
+
$row = $AVE_DB->Query("
SELECT
*
@@ -159,8 +165,15 @@
$AVE_Template->assign('read_only', 'readonly');
}
- $row->template_text = pretty_chars($row->template_text);
- $row->template_text = stripslashes($row->template_text);
+ if (file_exists($cache_file) && filesize($cache_file))
+ {
+ $row->template_text = file_get_contents($cache_file);
+ }
+ else
+ {
+ $row->template_text = pretty_chars($row->template_text);
+ $row->template_text = stripslashes($row->template_text);
+ }
$AVE_Template->assign('row', $row);
$AVE_Template->assign('content', $AVE_Template->fetch('templates/form.tpl'));
@@ -173,6 +186,8 @@
if (isset($_REQUEST['Id']) AND is_numeric($_REQUEST['Id']))
{
+ $template_id = $_REQUEST['Id'];
+
$ok = true;
$check_code = strtolower($_REQUEST['template_text']);
@@ -190,6 +205,10 @@
$theme = 'error';
}
+ $cache = 'template_' . $template_id;
+
+ $cache_file = BASE_DIR . '/tmp/cache/templates/' . $cache . '.inc';
+
if ($ok === false)
{
if (isset($_REQUEST['ajax']) && $_REQUEST['ajax'] = '1')
@@ -212,7 +231,7 @@
template_title = '" . $_REQUEST['template_title'] . "',
template_text = '" . addslashes(pretty_chars($_REQUEST['template_text'])) . "'
WHERE
- Id = '" . (int)$_REQUEST['Id'] . "'
+ Id = '" . $template_id . "'
");
if ($sql === false)
@@ -223,6 +242,11 @@
}
else
{
+ if (! file_exists(dirname($cache_file)))
+ mkdir(dirname($cache_file), 0766, true);
+
+ file_put_contents($cache_file, stripslashes(pretty_chars($_REQUEST['template_text'])));
+
$message = $AVE_Template->get_config_vars('TEMPLATES_SAVED');
$header = $AVE_Template->get_config_vars('TEMPLATES_SUCCESS');
$theme = 'accept';
@@ -295,6 +319,15 @@
$iid = $AVE_DB->InsertId();
+ $cache = 'template_' . $iid;
+
+ $cache_file = BASE_DIR . '/tmp/cache/templates/' . $cache . '.inc';
+
+ if (! file_exists(dirname($cache_file)))
+ mkdir(dirname($cache_file), 0766, true);
+
+ file_put_contents($cache_file, stripslashes(pretty_chars($_REQUEST['template_text'])));
+
reportLog($AVE_Template->get_config_vars('TEMPLATES_REPORT_NEW') . '(' . stripslashes(htmlspecialchars($_REQUEST['template_text'], ENT_QUOTES)) . ') (Id:' . (int)$iid . ')');
if (!$_REQUEST['next_edit'])
@@ -440,7 +473,7 @@
{
case 'save':
- $dir = BASE_DIR.'/templates/'.DEFAULT_THEME_FOLDER.'/css/'.$_REQUEST['name_file'];
+ $dir = BASE_DIR . '/templates/' . DEFAULT_THEME_FOLDER . '/css/' . $_REQUEST['name_file'];
$check_code = stripcslashes($_REQUEST['code_text']);
diff --git a/config/.htaccess b/config/.htaccess
new file mode 100644
index 0000000..3418e55
--- /dev/null
+++ b/config/.htaccess
@@ -0,0 +1 @@
+deny from all
\ No newline at end of file
diff --git a/inc/config.inc.php b/config/config.inc.php
similarity index 100%
rename from inc/config.inc.php
rename to config/config.inc.php
diff --git a/inc/db.config.php b/config/db.config.php
similarity index 100%
rename from inc/db.config.php
rename to config/db.config.php
diff --git a/fields/checkbox/field.php b/fields/checkbox/field.php
index 99bc427..280e5fc 100644
--- a/fields/checkbox/field.php
+++ b/fields/checkbox/field.php
@@ -1,4 +1,4 @@
-
+ 1)
+ list ($path, $watermark, $position, $transparency) = $default;
+ else
+ {
+ list ($path) = $default;
+ $watermark = false;
+ $position = null;
+ $transparency = null;
+ }
if (preg_match("/%id/i", $path))
{
@@ -288,15 +296,18 @@
break;
case 'save':
- foreach ($field_value as $v)
+ if (is_array($field_value))
{
- if (! empty($v['url']))
+ foreach ($field_value as $v)
{
+ if (! empty($v['url']))
+ {
- $field_value_new[] = $v['url']
- . ($v['title'] ? '|' . stripslashes(htmlspecialchars($v['title'], ENT_QUOTES)) : '|')
- . ($v['description'] ? '|' . stripslashes(htmlspecialchars($v['description'], ENT_QUOTES)) : '|')
- . ($v['link'] ? '|' . ltrim($v['link'], '/') : '|');
+ $field_value_new[] = $v['url']
+ . ($v['title'] ? '|' . stripslashes(htmlspecialchars($v['title'], ENT_QUOTES)) : '|')
+ . ($v['description'] ? '|' . stripslashes(htmlspecialchars($v['description'], ENT_QUOTES)) : '|')
+ . ($v['link'] ? '|' . ltrim($v['link'], '/') : '|');
+ }
}
}
diff --git a/fields/image_single/field.php b/fields/image_single/field.php
index 0d46452..5a50e13 100644
--- a/fields/image_single/field.php
+++ b/fields/image_single/field.php
@@ -1,4 +1,4 @@
-
+ 0 ? false : true;
}
@@ -105,7 +108,7 @@
*/
function clean_php($text)
{
- return str_replace(array('', '?>', '\n \n \n \n |