Browse Source

Fixes

master
M@d D3n 4 years ago
parent
commit
5059a9ca96
  1. 4
      admin/functions/func.admin.common.php
  2. 1
      admin/lang/bg/dbactions.txt
  3. 17
      admin/lang/bg/docs.txt
  4. 6
      admin/lang/bg/groups.txt
  5. 1
      admin/lang/bg/logs.txt
  6. 1
      admin/lang/bg/modules.txt
  7. 7
      admin/lang/bg/request.txt
  8. 46
      admin/lang/bg/rubs.txt
  9. 62
      admin/lang/bg/scripts.js
  10. 25
      admin/lang/bg/settings.txt
  11. 18
      admin/lang/bg/sysblocks.txt
  12. 3
      admin/lang/ru/main.txt
  13. 12
      admin/lang/ru/settings.txt
  14. 22
      admin/lang/ua/docs.txt
  15. 2
      admin/lang/ua/main.txt
  16. 3
      admin/lang/ua/navigation.txt
  17. 6
      admin/lang/ua/request.txt
  18. 45
      admin/lang/ua/rubs.txt
  19. 27
      admin/lang/ua/settings.txt
  20. 21
      admin/lang/ua/sysblocks.txt
  21. 2
      admin/lang/ua/templates.txt
  22. 185
      admin/settings.php
  23. 2
      admin/sysblocks.php
  24. 8
      admin/templates/main.tpl
  25. 1
      admin/templates/settings/pagination_edit.tpl
  26. 1
      admin/templates/settings/settings_case.tpl
  27. 1
      admin/templates/settings/settings_countries.tpl
  28. 1
      admin/templates/settings/settings_lang.tpl
  29. 1
      admin/templates/settings/settings_main.tpl
  30. 1
      admin/templates/settings/settings_pagination.tpl
  31. 25
      class/class.core.php
  32. 159
      class/class.database.php
  33. 61
      class/class.debug.php
  34. 25
      class/class.docs.php
  35. 127
      class/class.settings.php
  36. 9
      fields/image_mega/field.php
  37. 59
      functions/func.common.php
  38. 5
      functions/func.documents.php
  39. 33
      functions/func.fields.php
  40. 98
      functions/func.parserequest.php
  41. 33
      inc/config.php
  42. 47
      inc/init.php
  43. 2
      inc/sitemap.php
  44. 26
      index.php

4
admin/functions/func.admin.common.php

@ -199,7 +199,7 @@
function get_dir_size($directory)
{
if (! is_dir($directory))
return -1;
return 0;
$size = 0;
@ -228,7 +228,7 @@
closedir($DIR);
}
return $size;
return $size > 0 ? $size : 0;
}

1
admin/lang/bg/dbactions.txt

@ -47,3 +47,4 @@ DB_ACTIONS_DELETE_H = "Изтриване на файл"
DB_ACTIONS_DELETE_T = "Сигурни ли сте, че желаете да изтриете файл с резервно копие на базите данни?"
DB_NO_FILES_MESS = "В момента липсват файлове с резевно копие на базите данни"
DB_BACKUP_FILE_NAME = "Име на файла:"

17
admin/lang/bg/docs.txt

@ -299,3 +299,20 @@ DOC_SAVE_LOG_DOC = " документ"
DOC_LANG = "Език"
DOC_LANG_ID = "Език на документа:"
DOC_LANG_SELECT = "Изберете език"
// 3.25
DOC_CLOSE_SEARCH_RUBRIC = "Върни се в раздела, според параметрите на търсенето"
// 3.26
DOC_POSITION = "Позиция"
DOCUMENT_POSITION = "Позиция на документа"
DOCUMENT_POSITION_ERR = "Неуспешен запис на позицията на документа"
DOCUMENT_POSITION_ERROR = "Грешка"
DOCUMENT_POSITION_OK = "Позицията на документа е успешно записана"
DOCUMENT_POSITION_SUCCESS = "Выполнено"
DOC_SEARCH_PARAM = "Параметър на документа"
DOC_SEARCH_PARAM_SELECT = "Изберете параметър"
DOC_SEARCH_PARAM_LIKE = "Съдържа"
DOC_SEARCH_PARAM_EQ = "Равно"
DOC_SEARCH_PARAM_TEXT = "Значение"

6
admin/lang/bg/groups.txt

@ -1,5 +1,4 @@
# npop 04,2017 Neli Popova, npop@abv.bg
[groups]
UGROUP_TITLE = "Управление на групите потребители"
UGROUP_TITLE2 = "Управление правата за достъп на група"
@ -51,6 +50,8 @@ gen_settings = "Достъп за управлението на общ
gen_settings_more = "Достъп за управлението на допълнителните настройки на системата"
gen_settings_countries = "Достъп за управлението на списъка с държави"
gen_settings_languages = "Достъп за управлението на езиците"
gen_settings_robots = "Достъп за редактиране на файла robots.txt"
gen_settings_fcustom = "Достъп за редактиране на файла func.custom.php"
logs_view = "Достъп за преглед на системните съобщения"
logs_clear = "Достъп за изтриване на системните съобщения"
@ -85,6 +86,9 @@ request_view = "Достъп до списъка със заявкит
request_edit = "Достъп до управлението на заявките <strong>(Създаване, Редактиране, Изтриване)</strong>"
request_php = "Достъп за използване на PHP код в шаблоните на заявките <strong>(Бъдете много внимателни!)</strong>"
blocks_view = "Достъп за преглед на списъка с визуални блокове"
blocks_edit = "Достъп за управление навизуални блокове <strong>(Създаване, Редактиране, Изтриване)</strong>"
sysblocks_view = "Достъп за преглед на списъка със системните блокове"
sysblocks_edit = "Достъп за управление на системните блокове <strong>(Създаване, Редактиране, Изтриване)</strong>"

1
admin/lang/bg/logs.txt

@ -1,5 +1,4 @@
# npop 04,2017 Neli Popova, npop@abv.bg
[logs]
LOGS_SUB_TITLE = "Управление на системните съобщения"
LOGS_TITLE = "Журнал системни събития"

1
admin/lang/bg/modules.txt

@ -1,5 +1,4 @@
# npop 04,2017 Neli Popova, npop@abv.bg
[modules]
MODULES_SUB_TITLE = "Управление на модулите"
MODULES_TIP = "В този раздел може да инсталирате, деинсталирате или обновявате модулите, както и да редактирате спесифичните им настройки."

7
admin/lang/bg/request.txt

@ -1,5 +1,4 @@
# npop 04,2017 Neli Popova, npop@abv.bg
[request]
REQUEST_ID = "ID"
REQUEST_DELETE = "Изтриване заявка"
@ -198,3 +197,9 @@ REQUEST_SHOW_SQL = "Покажи SQL заявката"
REQUEST_DOC_ON_PAGE = "Брой елементи на заявката на страница"
REQUEST_PAGES_CURENT = "Номер страница"
REQUEST_PAGES_TOTAL = "Общ брой страници"
// v 3.24
REQUEST_COUNT_ITEMS = "Получаване на бр. елементи(ако не се използва постранична навигация)"
// v 3.26
REQUEST_BY_POSITION = "Позиция на документа"

46
admin/lang/bg/rubs.txt

@ -1,5 +1,4 @@
# npop 04,2017 Neli Popova, npop@abv.bg
[rubs]
RUBRIK_SUB_TITLE = "Управление на рубрики"
RUBRIK_TIP = "В този раздел са всички рубрики в системата. Тук може да добавяте, редактирате или копирате рубриките. Може да редактирате шаблона за показване на документите в рубриката и правата за достъп."
@ -280,3 +279,48 @@ RUBRIC_TMPLS_FROM = "Създай копие на основния ш
RUBRIC_TMPLS_INNAME = "Въведете наименование на шаблона"
RUBRIC_TEMPL_REPORT = "Редайтирал допълнителен шаблон за рубрика"
RUBRIC_TMPLS_LOG_DEL = "Изтрил допълнителен шаблон за рубрика"
// 3.24
RUBRIC_WARNING_TIP = "Внимание! Моля, бъдете внимателни - неверните параметри ще доведат до неработоспособна система."
RUBRIK_EDIT_FIELDS = "Управление на полетата"
RUBRIK_EDIT_RULES = "Управление на правата за достъп към рубриката"
RUBRIC_TABLE_BTN_FIELDS = "Полета на рубриката"
RUBRIC_TABLE_BTN_FTEMPLATES = "Шаблони на полетата"
RUBRIC_TABLE_BTN_FGROUPS = "Групи полета"
RUBRIC_TABLE_BTN_TEMPLATES = "Шаблон за рубрика"
RUBRIC_TABLE_BTN_CODE = "Изпълним код"
RUBRIC_TABLE_BTN_RULES = "Права за достъп"
RUBRIK_EDIT_CODE_TIP = "Внимание! Моля, бъдете внимателни - неверните параметри ще доведат до неработоспособна система."
RUBRIK_EDIT_CODE_LOAD_TIP = "Достъп към данните:<br /><strong>$this->curentdoc</strong> - Данни документ, преди поставяне в шаблона за извеждане"
RUBRIK_EDIT_CODE_BEF_TIP = "Достъп към данните:<br /><strong>$data</strong> - Всички данни на документа<br /><strong>$data['feld']</strong> - Данни полета на документа<br /><strong>$rubric_id</strong> - ID рубрика"
RUBRIK_EDIT_CODE_AFT_TIP = "Достъп към данните:<br /><strong>$data</strong> - Всички данни на документа<br /><strong>$rubric_id</strong> - ID рубрика<br /><strong>$document_id</strong> - ID документ - Число или False"
RUBRIK_FIELDS_TEMPLATES_H1 = "Управление шаблоните на полетата"
RUBRIK_FIELDS_TEMPLATES_H2 = "Шаблони на полетата"
RUBRIK_FIELDS_TEMPLATES_T1 = "Създаване/Редактиране/Изтриване на шаблони за полетата (tpl)"
RUBRIK_FIELDS_TEMPLATES_T2 = "Редактиране на шаблоните за извеждане на полетата"
RUBRIK_FIELDS_TEMPLATES_LIST = "Списък типове полета, използвани в рубриката"
RUBRIK_FIELDS_TEMPLATES_FNAME = "Наименование на поле"
RUBRIK_FIELDS_TEMPLATES_FFUNC = "Функция"
RUBRIK_FIELDS_TEMPLATES_FTEMP = "Шаблон .tpl (по подразбиране)"
RUBRIK_FIELDS_TEMPLATES_FTEMPL = "Шаблон .tpl по ID поле"
RUBRIK_FIELDS_TEMPLATES_PANEL = "Панел"
RUBRIK_FIELDS_TEMPLATES_DOC = "Документ"
RUBRIK_FIELDS_TEMPLATES_REQ = "Заявка"
RUBRIK_FIELDS_TEMPLATES_DB = "База данни"
RUBRIK_FIELDS_TEMPLATES_BACK = "Към списъка с типове полета"
RUBRIK_FIELDS_NO_TEMPLATES = "Липсва шаблон"
RUBRIK_FIELDS_EDIT_RUBRIC = "Рубрика"
RUBRIK_FIELDS_EDIT_FIELD = "Поле:"
RUBRIK_FIELDS_EDIT_TYPE = "Тип:"
RUBRIK_FIELDS_EDIT_TPL_ADM = "Шаблон за панела"
RUBRIK_FIELDS_EDIT_TPL_DOC = "Шаблон за извеждане в документ"
RUBRIK_FIELDS_EDIT_TPL_REQ = "Шаблон за извеждане в заявка"
RUBRIK_FIELDS_EDIT_TPL_CREAT = "Създаване на шаблон от основния файл"
RUBRIK_FIELDS_EDIT_TPL_EDIT = "Редактиране на шаблон"
RUBRIK_FIELDS_EDIT_NO_TPL = "Отсъства основен файл на шаблона"
RUBRIC_TMPLS_CREAT = "Създай"
RUBRIC_TMPLS_DELETE = "Изтрий"

62
admin/lang/bg/scripts.js

@ -1,62 +0,0 @@
var logoutTitle = "Изход от панела за управление";
var logoutConfirm = "Сигурни ли сте, че желаете да излезете?";
var clearCacheTitle = "Изтриване на кеша";
var clearCacheConfirm = "Сигурни ли сте, че желаете да изтриете кеша?";
var clearCacheSessTitle = "Изтриване на кеша и сесиите";
var clearCacheSessConfirm = "Сигурни ли сте, че желаете да изтриете кеша и сесиите?";
var clearThumbTitle = "Изтриване на миниатюрите(thumbails)";
var clearThumbConfirm = "Сигурни ли сте, че желаете да изтриите всички миниатюри на изображенията<br/>от директорията за съхраняване на файлове (UPLOAD_DIR)?";
var clearRevTitle = "Изтриване ревизиите на документите";
var clearRevConfirm = "Сигурни ли сте, че желаете да изтриете всички ревизии на документите?";
var clearCountTitle = "Зануляване на дневния брояч на документите";
var clearCountConfirm = "Сигурни ли сте, че желаете да изтриите дневния брояч на документите?";
var cacheShowTitle = "Покажи размера на кеша";
var cacheShowConfirm = "Сигурни ли сте, че желаете да видите размера на кеша?<br />Това може да отнеме известно време.";
var ajaxErrorStatus = "Няма съединение.<br />Моля, провете данните за връзка.";
var ajaxErrorStatus404 = "Търсената страница не е намерена. [404]";
var ajaxErrorStatus401 = "Заявката не може да бъде изпълнена.<br />Грешка при авторизация за изпълнение на тази заявка. [401]";
var ajaxErrorStatus500 = "Вътрешна грешка.<br />Пробвайте да повторите своята заявка по-късно. [500]";
var ajaxErrorStatusJSON = "Некоректен отговор на сървъра<br />Данните не са в JSON формат.";
var ajaxErrorStatusTimeOut = "Времето за заявка изтече.";
var ajaxErrorStatusAbort = "Ajax заявката е прекъсната.";
var ajaxErrorStatusMess = "Грешка:<br />";
var delCascadTitle = "Изтриване на изображение";
var delCascadConfirm = "Сигурни ли сте, че желаете да изтриете?";
var saveMessageOk = "Данните са записани";
//===== Date & Time Pickers =====//
$.datepicker.regional['bg'] = {
closeText: 'Затвори',
prevText: '<Пред',
nextText: 'След>',
currentText: 'Днес',
monthNames: ['Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни',
'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'
],
monthNamesShort: ['Яну', 'Фев', 'Мар', 'Апр', 'Май', 'Юни',
'Юли', 'Авг', 'Сеп', 'Окт', 'Ное', 'Дек'
],
dayNames: ['неделя', 'понеделник', 'вторник', 'сряда', 'четвъртък', 'петък', 'събота'],
dayNamesShort: ['нед', 'пон', 'вто', 'сря', 'чет', 'пет', 'съб'],
dayNamesMin: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
weekHeader: 'Не',
dateFormat: 'dd.mm.yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['bg']);
$.timepicker.regional['bg'] = {
timeOnlyTitle: 'Изберете време',
timeText: 'Време',
hourText: 'Час',
minuteText: 'Минути',
secondText: 'Секунди',
millisecText: 'милисекунди',
currentText: 'Сега',
closeText: 'Затвори',
ampm: false
};
$.timepicker.setDefaults($.timepicker.regional['bg']);

25
admin/lang/bg/settings.txt

@ -138,3 +138,28 @@ pagination_start_label = "Текст за линк "Първа""
pagination_end_label = "Текст за линк "Последна""
pagination_next_label = "Текст за линк "Следваща""
pagination_prev_label = "Текст за линк "Предходна""
// v3.24
SETTINGS_SAVED_ERR_FILE = "Грешка при записване на файла. Моля, пробвайте отново."
SETTINGS_SAVED_FILE = "Файлът е успешно записан."
SETTINGS_FILE_EDIT_H = "Редактиране на файла"
SETTINGS_FILE_CONTENT = "Съдържание на файла:"
SETTINGS_FILE_ROBOTS = "Файл robots.txt"
SETTINGS_FILE_CUSTOM = "Файл func.custom.php"
// v3.25
_const_auth = "Авторизация"
_const_url = "Формиране на URL"
_const_themes = "Оформление"
_const_folders = "Папки"
_const_thumbs = "Генериране на миниатюри"
_const_watermarks = "Водни знаци"
_const_sessions = "Session и Cookie"
_const_dev = "Разработка"
_const_smarty = "Настройки на Smarty"
_const_cache = "Кеширане на SQL"
_const_compression = "Компресия"
_const_memcached = "Memcached"
_const_request = "Заявки"
_const_database = "База данни"
_const_other = "Още"

18
admin/lang/bg/sysblocks.txt

@ -75,3 +75,21 @@ SYSBLOCK_I = "Опционално. Алиасът позволява да с
SYSBLOCK_ACCEPT = "Този алиас може да се използва"
SYSBLOCK_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
SYSBLOCK_ER_EXISTS = "Грешен алиас!<br> Този алиас вече е използван в друг системен блок"
// v 3.26
SYSBLOCK_EVAL = "Изпълнявай PHP преди връщане на резултата"
SYS_GROUP_NO_TITLE = "Без групи"
SYS_GROUP_NO_DESCRIPTION = "Лписва описание"
SYS_GROUP_PLEASE_SELECT = "Изберете група"
SYS_GROUP_TITLE = "Наименование на група"
SYS_GROUP_DESCRIPTION = "Описание на група"
SYS_GROUP_BTN = "Добави група"
SYS_GROUPS = "Списък групи"
SYS_GROUPS_SORT_TIP = "За да подредите полетата, натиснете на кръсчето и без да пускате го преместете."
SYS_GROUPS_GROUP_TITLE = "Наименование на група"
SYS_GROUPS_TIP = "Списък групи за системни блокове"
SYS_NO_GROUPS = "В момента няма групио са системни блокове"
SYS_GROUPS_DELETE = "Изтриване на група"
SYS_GROUPS_DELETE_H = "Сигурни ли сте, че желаете да изтриете групата?"
SYS_GROUPS_NEW = "Добави нова група"
SYSBLOCK_COPY_LOG = "създал копие на системния блок"

3
admin/lang/ru/main.txt

@ -301,3 +301,6 @@ support = "Служба технической поддержк
// 3.1.9
MAIN_BLOCKS = "Визуальные блоки"
// 3.27
MAIN_SETTINGS_SHOWCACHE = "Подробные данные"

12
admin/lang/ru/settings.txt

@ -161,3 +161,15 @@ _const_memcached = "Memcached"
_const_request = "Запросы"
_const_database = "База данных"
_const_other = "Прочее"
// 3.27
SETTINGS_CACHE_TITLE = "Работа с кешем"
SETTINGS_SHOWCACHE = "Управление кешем"
SETTINGS_CACHE_H_TITLE = "Тип кеша"
SETTINGS_CACHE_H_SHOW = "Показать размер"
SETTINGS_CACHE_SHOW = "Показать"
SETTINGS_CACHE_CLEAR = "Очистить"
SETTINGS_CACHE_SUCCES = "Удачно"
SETTINGS_CACHE_SUCCES_T = "Кеш удачно удален"
SETTINGS_CACHE_ERROR = "Ошибка"
SETTINGS_CACHE_ERROR_T = "Произошла ошибка. Попробуйте повторить операцию еще раз"

22
admin/lang/ua/docs.txt

@ -296,3 +296,25 @@ DOC_WITHOUT_TITLE = "Документ без назви"
DOC_SAVE_ADD = "Додав"
DOC_SAVE_EDIT = "Відредагував"
DOC_SAVE_LOG_DOC = " документ"
/* new */
DOC_LANG = "Мова"
DOC_LANG_ID = "Мова документа:"
DOC_LANG_SELECT = "Оберіть мову"
// 3.25
DOC_CLOSE_SEARCH_RUBRIC = "Повернутися у розділ, враховуючи параметри пошуку"
// 3.26
DOC_POSITION = "Позиція"
DOCUMENT_POSITION = "Позиція документа"
DOCUMENT_POSITION_ERR = "Не вдалося зберегти позицію документа"
DOCUMENT_POSITION_ERROR = "Помилка"
DOCUMENT_POSITION_OK = "Позицію документа успішно збережено"
DOCUMENT_POSITION_SUCCESS = "Виконано"
DOC_SEARCH_PARAM = "Параметр документа"
DOC_SEARCH_PARAM_SELECT = "Оберіть параметр"
DOC_SEARCH_PARAM_LIKE = "Містить"
DOC_SEARCH_PARAM_EQ = "Дорівнює"
DOC_SEARCH_PARAM_TEXT = "Значення"

2
admin/lang/ua/main.txt

@ -279,7 +279,7 @@ TEMPLATES_MESSAGE = "<strong>Повідомлення:</strong>"
TEMPLATES_CACHE_SUCCESS = "Кеш успішно очищено."
TEMPLATES_CACHE_SUCCESS_LOG = "Очистив кеш"
TEMPLATES_CACHE_DB_SUCCESS = "Таблиця _sessions успішно очищена."
TEMPLATES_CACHE_DB_SUCCESS_LOG = "Очистив таблицьу _sessions."
TEMPLATES_CACHE_DB_SUCCESS_LOG = "Очистив таблицю _sessions."
TEMPLATES_CACHE_CT_SUCCESS = "Видалено скомпільовані шаблони."
TEMPLATES_CACHE_CT_SUCCESS_LOG = "Видалив скомпільовані шаблони"
TEMPLATES_CACHE_MC_SUCCESS = "Видалено скомпільовані шаблони модулів."

3
admin/lang/ua/navigation.txt

@ -129,3 +129,6 @@ NAVI_ITEM_ODD = "непарний"
NAVI_TAG = "Тег для вставки пунктів"
NAVI_LAVEL_TEMPL = "Шаблон рівня"
NAVI_CONDITIONS = "Умови"
/**/
NAVI_CLOSE = "Закрити"
NAVI_ADD_AFTER = "Додати після"

6
admin/lang/ua/request.txt

@ -195,3 +195,9 @@ REQUEST_SHOW_SQL = "Показати SQL запит"
REQUEST_DOC_ON_PAGE = "Число елементів запиту на сторінці"
REQUEST_PAGES_CURENT = "Номер сторінки пагінації"
REQUEST_PAGES_TOTAL = "Загальна кількість сторінок пагінації"
// v 3.24
REQUEST_COUNT_ITEMS = "Отримувати кількість елементів (якщо не використовується посторінкова навігація)"
// v 3.26
REQUEST_BY_POSITION = "Позиція документа"

45
admin/lang/ua/rubs.txt

@ -278,3 +278,48 @@ RUBRIC_TMPLS_FROM = "Створити копію основного ш
RUBRIC_TMPLS_INNAME = "Введіть назву шаблона"
RUBRIC_TEMPL_REPORT = "Відредагував додатковий шаблон рубрики"
RUBRIC_TMPLS_LOG_DEL = "Видалив додатковий шаблон рубрики"
// 3.24
RUBRIC_WARNING_TIP = "Увага! Будь ласка, будьте максимально уважні та пам'ятайте, що неправильні параметри можуть зробити систему непрацеспроможною."
RUBRIK_EDIT_FIELDS = "Керування полями"
RUBRIK_EDIT_RULES = "Керування правами доступів до рубрики"
RUBRIC_TABLE_BTN_FIELDS = "Поля рубрики"
RUBRIC_TABLE_BTN_FTEMPLATES = "Шаблони полів"
RUBRIC_TABLE_BTN_FGROUPS = "Групи полів"
RUBRIC_TABLE_BTN_TEMPLATES = "Шаблон рубрики"
RUBRIC_TABLE_BTN_CODE = "Виконуваний код"
RUBRIC_TABLE_BTN_RULES = "Права доступів"
RUBRIK_EDIT_CODE_TIP = "Увага! Будь ласка, будьте максимально уважні та пам'ятайте, що неправильні параметри можуть зробити систему непрацеспроможною."
RUBRIK_EDIT_CODE_LOAD_TIP = "Доступ до даних:<br /><strong>$this->curentdoc</strong> - Дані документа, перед підстановкою їх у шаблон виводу"
RUBRIK_EDIT_CODE_BEF_TIP = "Доступ до даних:<br /><strong>$data</strong> - Усі дані документа<br /><strong>$data['feld']</strong> - Дані полів документа<br /><strong>$rubric_id</strong> - ID рубрики"
RUBRIK_EDIT_CODE_AFT_TIP = "Доступ до даних:<br /><strong>$data</strong> - Усі дані документа<br /><strong>$rubric_id</strong> - ID рубрики<br /><strong>$document_id</strong> - ID документа - Число або False"
RUBRIK_FIELDS_TEMPLATES_H1 = "Керування шаблонами полів"
RUBRIK_FIELDS_TEMPLATES_H2 = "Шаблони полів"
RUBRIK_FIELDS_TEMPLATES_T1 = "Створювати/Редагувати/Видаляти шаблони полів (tpl)"
RUBRIK_FIELDS_TEMPLATES_T2 = "Редагувати шаблони виводу полів"
RUBRIK_FIELDS_TEMPLATES_LIST = "Список типів полів, які використовуються у рубриці"
RUBRIK_FIELDS_TEMPLATES_FNAME = "Назва поля"
RUBRIK_FIELDS_TEMPLATES_FFUNC = "Функція"
RUBRIK_FIELDS_TEMPLATES_FTEMP = "Шаблон .tpl (по дефолту)"
RUBRIK_FIELDS_TEMPLATES_FTEMPL = "Шаблон .tpl за ID поля"
RUBRIK_FIELDS_TEMPLATES_PANEL = "Панель"
RUBRIK_FIELDS_TEMPLATES_DOC = "Документ"
RUBRIK_FIELDS_TEMPLATES_REQ = "Запит"
RUBRIK_FIELDS_TEMPLATES_DB = "База даних"
RUBRIK_FIELDS_TEMPLATES_BACK = "До списку типів полів"
RUBRIK_FIELDS_NO_TEMPLATES = "Немає шаблона"
RUBRIK_FIELDS_EDIT_RUBRIC = "Рубрика"
RUBRIK_FIELDS_EDIT_FIELD = "Поле:"
RUBRIK_FIELDS_EDIT_TYPE = "Тип:"
RUBRIK_FIELDS_EDIT_TPL_ADM = "Шаблон для панелі"
RUBRIK_FIELDS_EDIT_TPL_DOC = "Шаблон виводу в документі"
RUBRIK_FIELDS_EDIT_TPL_REQ = "Шаблон виводу в запиті"
RUBRIK_FIELDS_EDIT_TPL_CREAT = "Створення шаблону з основного файлу"
RUBRIK_FIELDS_EDIT_TPL_EDIT = "Редагування шаблону"
RUBRIK_FIELDS_EDIT_NO_TPL = "Відсутній основний файл шаблону"
RUBRIC_TMPLS_CREAT = "Створити"
RUBRIC_TMPLS_DELETE = "Видалити"

27
admin/lang/ua/settings.txt

@ -108,8 +108,6 @@ SETTINGS_COUNT_DELETED_ERR = "Не вдалося обнулити поденн
SETTINGS_COUNT_UPDATE = "Обнулено поденний лічильник документів"
SETTINGS_CACHE_LIFETIME = "Увага!!! Увімкнено кешування запиту до налаштувань системи. Зміни набудуть чинності, тільки після закінчення часу життя кеша або відключення кешування"
// v3.2
SETTINGS_PAGINATION = "Налаштування пагінації"
PAGINATION_ADD = "Створити шаблон пагінації"
@ -135,3 +133,28 @@ pagination_start_label = "Текст посилання “Перша”"
pagination_end_label = "Текст посилання “Остання”"
pagination_next_label = "Текст посилання “Наступна”"
pagination_prev_label = "Текст посилання “Попередня”"
// v3.24
SETTINGS_SAVED_ERR_FILE = "Помилка при збереженні файлу. Спробуйте ще раз."
SETTINGS_SAVED_FILE = "Файл успішно збережено."
SETTINGS_FILE_EDIT_H = "Редагування файлу"
SETTINGS_FILE_CONTENT = "Вміст файлу:"
SETTINGS_FILE_ROBOTS = "Файл robots.txt"
SETTINGS_FILE_CUSTOM = "Файл func.custom.php"
// v3.25
_const_auth = "Авторизація"
_const_url = "Формування URL"
_const_themes = "Оформлення"
_const_folders = "Папки"
_const_thumbs = "Генерація мініатюр"
_const_watermarks = "Водяні знаки"
_const_sessions = "Session та Cookie"
_const_dev = "Розробка"
_const_smarty = "Налаштування Smarty"
_const_cache = "Кешування SQL"
_const_compression = "Компресія"
_const_memcached = "Memcached"
_const_request = "Запити"
_const_database = "База даних"
_const_other = "Інше"

21
admin/lang/ua/sysblocks.txt

@ -17,7 +17,7 @@ SYSBLOCK_AJAX_H = "виконуватися тільки по Ajax"
SYSBLOCK_VISUAL = "Візуальний редактор"
SYSBLOCK_VISUAL_H = "Візуальний редактор"
SYSBLOCK_MEDIAPATH = "Системний тег, шляхи до папки дизайна"
SYSBLOCK_MEDIAPATH = "Системний тег, шляхи до папки дизайну"
SYSBLOCK_BREADCRUMB = "Системний тег хлібних крихт"
SYSBLOCK_DOCID_INFO = "Системний тег, ідентифікатор документа"
SYSBLOCK_PATH = "Кореневий шлях установки"
@ -68,7 +68,6 @@ SYSBLOCK_SAVED_ERR = "Не вдалося зберегти системний
SYSBLOCK_ERROR = "Помилка"
SYSBLOCK_SUCCESS = "Виконано"
// v 3.2
SYSBLOCK_DESCRIPTION = "Короткий опис"
SYSBLOCK_ALIAS = "Аліас"
@ -77,4 +76,20 @@ SYSBLOCK_ACCEPT = "Цей аліас можна використовувати"
SYSBLOCK_ER_SYN = "Неправильний аліас!<br> Аліас не повинен бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення та мати довжину не більше 20 символів"
SYSBLOCK_ER_EXISTS = "Неправильний аліас!<br> Такий аліас уже прив’язаний до іншого системного блока"
// v 3.26
SYSBLOCK_EVAL = "Виконувати PHP перед поверненням результату"
SYS_GROUP_NO_TITLE = "Без групи"
SYS_GROUP_NO_DESCRIPTION = "Опис відсутній"
SYS_GROUP_PLEASE_SELECT = "Оберіть групу"
SYS_GROUP_TITLE = "Назва групи"
SYS_GROUP_DESCRIPTION = "Опис групи"
SYS_GROUP_BTN = "Додати групу"
SYS_GROUPS = "Список груп"
SYS_GROUPS_SORT_TIP = "Для впорядкування полів натисніть на хрестик та, утримуючи його, перетягніть поле"
SYS_GROUPS_GROUP_TITLE = "Назва групи"
SYS_GROUPS_TIP = "Список груп для системних блоків"
SYS_NO_GROUPS = "В даний час, немає груп для системних блоків"
SYS_GROUPS_DELETE = "Видалити групу"
SYS_GROUPS_DELETE_H = "Ви впевнені, що бажаєте видалити групу?"
SYS_GROUPS_NEW = "Додати нову групу"
SYSBLOCK_COPY_LOG = " створив копію системного блоку"

2
admin/lang/ua/templates.txt

@ -109,7 +109,7 @@ TEMPLATES_REPORT_DEL_OK = "Файл успішно видалено"
TEMPLATES_REPORT_DEL_ER = "Не вдалося видалити файл"
TEMPLATES_REPORT_ERROR_TEXT = "HTML код шаблона пустий"
TEMPLATES_REPORT_ERROR_TITLE = "Не заповнено - назва щаблона"
TEMPLATES_REPORT_ERROR_TITLE = "Не заповнено - назва шаблона"
TEMPLATES_SAVED = "Шаблон успішно збережено"
TEMPLATES_SAVED_FILE = "Файл успішно збережено"

185
admin/settings.php

@ -17,7 +17,7 @@
exit;
}
global $AVE_Template;
global $AVE_Template, $AVE_DB;
require(BASE_DIR . '/class/class.docs.php');
require(BASE_DIR . '/class/class.settings.php');
@ -32,118 +32,125 @@
switch ($_REQUEST['sub'])
{
case '':
if(check_permission_acp('gen_settings'))
{
$AVE_Settings->settingsShow();
if (check_permission_acp('gen_settings'))
$AVE_Settings->settingsShow();
break;
}
case 'case':
if(check_permission_acp('gen_settings_more'))
{
$AVE_Settings->settingsCase();
if(check_permission_acp('gen_settings_more'))
$AVE_Settings->settingsCase();
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();
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'))
{
if (isset($_REQUEST['save']) && $_REQUEST['save'] == 1)
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();
}
$AVE_Settings->settingsCountriesList();
break;
}
case 'language':
if(check_permission_acp('gen_settings_languages'))
{
if(isset($_REQUEST['func'])){
switch($_REQUEST['func'])
if(check_permission_acp('gen_settings_languages'))
{
if (isset($_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");
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();
}
}
else
{
$AVE_Settings->settingsLanguageList();
break;
}
}
break;
case 'editlang':
if (check_permission_acp('gen_settings_languages'))
{
$AVE_Settings->settingsLanguageEdit();
if (check_permission_acp('gen_settings_languages'))
$AVE_Settings->settingsLanguageEdit();
break;
}
case 'clearcache':
if (check_permission_acp('cache_clear'))
{
$AVE_Template->CacheClear();
exit;
}
if (check_permission_acp('cache_clear'))
{
$AVE_Template->CacheClear();
exit;
}
break;
case 'clearthumb':
if (check_permission_acp('cache_thumb'))
{
$AVE_Template->ThumbnailsClear();
exit;
}
if (check_permission_acp('cache_thumb'))
{
$AVE_Template->ThumbnailsClear();
exit;
}
break;
case 'clearrevision':
if (check_permission_acp('document_revisions'))
{
$AVE_Document->documentsRevisionsClear();
exit;
}
if (check_permission_acp('document_revisions'))
{
$AVE_Document->documentsRevisionsClear();
exit;
}
break;
case 'clearcounter':
if (check_permission_acp('gen_settings'))
{
$AVE_Document->documentCounterClear();
exit;
}
if (check_permission_acp('gen_settings'))
{
$AVE_Document->documentCounterClear();
exit;
}
break;
case 'showcache':
cacheShow();
@ -187,5 +194,19 @@
$AVE_Settings->editCustom();
break;
//-- v3.24
//-- v3.27
case 'showcache':
$AVE_Settings->showCache();
break;
case 'showsize':
$AVE_Settings->showCacheSize();
break;
case 'cacheclear':
$AVE_Settings->clearCache();
break;
//-- v3.27
}
?>

2
admin/sysblocks.php

@ -19,7 +19,7 @@
global $AVE_DB, $AVE_Template;
require(BASE_DIR . '/class/class.sysblocks.php');
require (BASE_DIR . '/class/class.sysblocks.php');
new Sysblocks;

8
admin/templates/main.tpl

@ -239,7 +239,13 @@
</ul>
</li>
{/if}
{if check_permission('cache_clear')}<li><a href="javascript:void(0);" class="clearCache" title="{#MAIN_STAT_CLEAR_CACHE#}"><img src="{$tpl_dir}/images/icons/subTrash.png" alt="" /><span>{#MAIN_STAT_CLEAR_CACHE#}</span></a></li>{/if}
{if check_permission('cache_clear')}
<li class="dropdown"><a href="javascript:void(0);" class="clearCache" title="{#MAIN_STAT_CLEAR_CACHE#}"><img src="{$tpl_dir}/images/icons/subTrash.png" alt="" /><span>{#MAIN_STAT_CLEAR_CACHE#}</span></a>
<ul>
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#MAIN_SETTINGS_SHOWCACHE#}</a></li>
</ul>
</li>
{/if}
{*
<li><a href="#" title="{#MAIN_LOGIN_HELP#}"><img src="{$tpl_dir}/images/icons/help.png" alt="" /><span>{#MAIN_LOGIN_HELP#}</span></a></li>
*}

1
admin/templates/settings/pagination_edit.tpl

@ -40,6 +40,7 @@
{if check_permission('gen_settings_countries')}<li><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
{if check_permission('gen_settings_languages')}<li><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
<li class="activeTab"><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
</ul>
<form id="paginations" action="index.php?do=settings&action=save_paginations&cp={$sess}" method="post" class="mainForm">

1
admin/templates/settings/settings_case.tpl

@ -37,6 +37,7 @@
{if check_permission('gen_settings_countries')}<li><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
{if check_permission('gen_settings_languages')}<li><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
</ul>

1
admin/templates/settings/settings_countries.tpl

@ -37,6 +37,7 @@
{if check_permission('gen_settings_countries')}<li class="activeTab"><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
{if check_permission('gen_settings_languages')}<li><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
</ul>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<thead>

1
admin/templates/settings/settings_lang.tpl

@ -35,6 +35,7 @@
{if check_permission('gen_settings_countries')}<li><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
{if check_permission('gen_settings_languages')}<li class="activeTab"><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
</ul>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">

1
admin/templates/settings/settings_main.tpl

@ -40,6 +40,7 @@
{if check_permission('gen_settings_countries')}<li><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
{if check_permission('gen_settings_languages')}<li><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
</ul>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">

1
admin/templates/settings/settings_pagination.tpl

@ -35,6 +35,7 @@
{if check_permission('gen_settings_countries')}<li><a href="index.php?do=settings&sub=countries&cp={$sess}">{#MAIN_COUNTRY_EDIT#}</a></li>{/if}
{if check_permission('gen_settings_languages')}<li><a href="index.php?do=settings&sub=language&cp={$sess}">{#SETTINGS_LANG_EDIT#}</a></li>{/if}
<li class="activeTab"><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
<li><a href="index.php?do=settings&action=showcache&cp={$sess}">{#SETTINGS_SHOWCACHE#}</a></li>
<div class="num">
<a class="greenNum" href="index.php?do=settings&action=new_paginations&cp={$sess}">{#PAGINATION_ADD#}</a>
</div>

25
class/class.core.php

@ -774,7 +774,7 @@
*/
function _get_cache_id ()
{
$cache = array();
$cache = [];
$cache['id'] = (int)$this->curentdoc->Id;
@ -893,6 +893,8 @@
{
global $AVE_DB, $AVE_Template, $AVE_Module;
Debug::startTime('MODULES_PARSE');
$pattern = []; // Массив системных тегов
$replace = []; // Массив функций, на которые будут заменены системные теги
@ -957,6 +959,8 @@
}
}
$GLOBALS['block_generate']['DOCUMENT']['MODULES'] = Debug::endTime('MODULES_PARSE');
// Выполняем замену систеного тега на php код и возвращаем результат
return preg_replace($pattern, $replace, $template);
}
@ -1012,6 +1016,8 @@
}
}
$GLOBALS['block_generate']['DOCUMENT']['MODULES'] = Debug::endTime('MODULES_PARSE');
// Выполняем замену систеного тега на php код и возвращаем результат
return preg_replace($pattern, $replace, $template);
}
@ -1027,6 +1033,8 @@
{
global $AVE_DB;
Debug::startTime('DOC_' . $id);
$main_content = '';
// Если происходит вызов модуля, получаем соответствующие мета-теги и получаем шаблон модуля
@ -1452,7 +1460,7 @@
// Или из запроса
elseif (isset($_REQUEST['request']))
{
// Убираем пустые теги в сис блоке
// Убираем пустые теги в запросе
$main_content = preg_replace('/\[tag:(.+?)\]/', '', $main_content);
$main_content = preg_replace('/\[mod_(.+?)\]/', '', $main_content);
}
@ -1544,7 +1552,6 @@
$out
);
// Парсим теги языковых условий
if (defined('RUB_ID'))
{
@ -1566,15 +1573,15 @@
// Парсим остальные теги основного шаблона
$out = str_replace($search, $replace, $out);
unset ($search, $replace); //Убираем данные
// Парсим теги для combine.php
$out = preg_replace_callback('/\[tag:(css|js):([^ :\/]+):?(\S+)*\]/', array($this, '_parse_combine'), $out);
// ЧПУ
$out = str_ireplace('"//"','"/"', str_ireplace('///','/', rewrite_link($out)));
unset ($main_content);
unset ($search, $replace, $main_content); //Убираем данные
$GLOBALS['block_generate']['DOCUMENT']['FETCH'] = Debug::endTime('DOC_' . $id);
// Выводим собранный документ
echo $out;
@ -1591,6 +1598,8 @@
{
global $AVE_DB;
Debug::startTime('URL_PARSE');
$document_id = null;
$cache_time = 0;
@ -1842,6 +1851,8 @@
$get_url = $check_url;
}
$GLOBALS['block_generate']['DOCUMENT']['URL_PARSE'] = Debug::endTime('URL_PARSE');
//-- Перенаправление на адреса с суффиксом
if (
$check_url !== $get_url . URL_SUFF
@ -1880,6 +1891,8 @@
$redirect_alias = $AVE_DB->Query($sql)->FetchRow();
$GLOBALS['block_generate']['DOCUMENT']['URL_PARSE'] = Debug::endTime('URL_PARSE');
if ($redirect_alias->document_alias && ! empty($redirect_alias->document_alias))
{
$redirect_alias = ABS_PATH . $redirect_alias->document_alias . URL_SUFF;

159
class/class.database.php

@ -787,80 +787,6 @@
}
public function cacheId($cache_id)
{
//-- Если это документ, то меняем расположение
if (substr($cache_id, 0, 3) == 'doc')
{
$cache_id = (int)str_replace('doc_', '', $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/' . (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/' . (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/' . (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 = explode('_', $cache_id);
return $cache_id = 'navigations/' . $cache_id[1];
}
if (substr_count($cache_id, '__') > 0)
{
return str_replace('__', '/', $cache_id);
}
return $cache_id;
}
/**
* Метод, предназначенный для выполнения запроса к MySQL и возвращение результата в виде асоциативного массива с поддержкой кеша
*
@ -911,7 +837,10 @@
while ($mfa = $res->FetchAssocArray())
$result[] = $mfa;
file_put_contents($cache_dir . $cache_file, _base64_encode(serialize($result)));
if (defined('USE_ENCODE_SERIALIZE') && USE_ENCODE_SERIALIZE)
file_put_contents($cache_dir . $cache_file, _base64_encode(serialize($result)));
else
file_put_contents($cache_dir . $cache_file, serialize($result));
}
else
{
@ -928,7 +857,10 @@
];
}
$result = unserialize(_base64_decode(file_get_contents($cache_dir . $cache_file)));
if (defined('USE_ENCODE_SERIALIZE') && USE_ENCODE_SERIALIZE)
$result = unserialize(_base64_decode(file_get_contents($cache_dir . $cache_file)));
else
$result = unserialize(file_get_contents($cache_dir . $cache_file));
}
return new AVE_DB_Result($result);
@ -1431,6 +1363,76 @@
}
/**
* Метод, предназначенный для определения кеша
*
* @param $cache_id
* @return bool
*/
public function cacheId($cache_id)
{
//-- Если это документ, то меняем расположение
if (substr($cache_id, 0, 3) == 'doc') {
$cache_id = (int) str_replace('doc_', '', $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/' . (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/' . (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/' . (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 = explode('_', $cache_id);
return $cache_id = 'navigations/' . $cache_id[1];
}
if (substr_count($cache_id, '__') > 0) {
return str_replace('__', '/', $cache_id);
}
return $cache_id;
}
/**
* Метод, предназначенный для очищения кеша документов
*
@ -1535,12 +1537,11 @@
/**
* Метод, предназначенный для очищения кеша запросов
*
* @param $doc_id
* @param $hash
* @param int $doc_id
*/
public function clearDocument($doc_id)
{
$this->clearCache('doc_' . $doc_id); // Прочее
$this->clearCache('doc_' . $doc_id); // Параметры
$this->clearCache('fld_' . $doc_id); // Поля
$this->clearCache('cmd_' . $doc_id); // Компиляция
$this->clearCache('rqe_' . $doc_id); // Элемент запроса

61
class/class.debug.php

@ -931,6 +931,10 @@
case 'globals':
$stat = self::_stat_get('globals');
break;
case 'blocks':
$stat = self::_stat_get('blocks');
break;
}
return $stat;
@ -945,6 +949,7 @@
public static function _stat_get($type = 'get')
{
ob_start();
if ($type == 'get')
var_dump($_GET);
else if ($type == 'post')
@ -963,6 +968,8 @@
var_dump($_ENV);
else if ($type == 'globals')
var_dump($GLOBALS);
else if ($type == 'blocks')
var_dump($GLOBALS['block_generate']);
$stat = ob_get_contents();
$stat = preg_replace('/=>(\s+|\s$)/', ' => ', $stat);
$stat = htmlspecialchars($stat);
@ -994,18 +1001,19 @@
<div id="debug_bar">
<ul class="debug_tabs">
<li id="debug-1">Timers</li>
<li id="debug-2">$_GET</li>
<li id="debug-3">$_POST</li>
<li id="debug-4">$_REQUEST</li>
<li id="debug-5">$_FILES</li>
<li id="debug-6">$_COOKIE</li>
<li id="debug-7">$_SESSION</li>
<li id="debug-8">$_SERVER</li>
<li id="debug-9">$_ENV</li>
<li id="debug-10">$GLOBALS</li>
<li id="debug-11">MySQL</li>
<li id="debug-12">Trace</li>
<li id="debug-13">Debug</li>
<li id="debug-2">Blocks</li>
<li id="debug-3">$_GET</li>
<li id="debug-4">$_POST</li>
<li id="debug-5">$_REQUEST</li>
<li id="debug-6">$_FILES</li>
<li id="debug-7">$_COOKIE</li>
<li id="debug-8">$_SESSION</li>
<li id="debug-9">$_SERVER</li>
<li id="debug-10">$_ENV</li>
<li id="debug-11">$GLOBALS</li>
<li id="debug-12">MySQL</li>
<li id="debug-13">Trace</li>
<li id="debug-14">Debug</li>
</ul>
';
$out .= PHP_EOL;
@ -1022,77 +1030,84 @@
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-2-cont" style="display: none;">' . PHP_EOL;
$out .= 'Blocks:';
$out .= self::getStatistic('blocks');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-3-cont" style="display: none;">' . PHP_EOL;
$out .= 'GET:';
$out .= self::getStatistic('get');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-3-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-4-cont" style="display: none;">' . PHP_EOL;
$out .= 'POST:';
$out .= self::getStatistic('post');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-4-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-5-cont" style="display: none;">' . PHP_EOL;
$out .= 'REQUEST:';
$out .= self::getStatistic('request');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-5-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-6-cont" style="display: none;">' . PHP_EOL;
$out .= 'FILES:';
$out .= self::getStatistic('files');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-6-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-7-cont" style="display: none;">' . PHP_EOL;
$out .= 'COOKIE:';
$out .= self::getStatistic('cookie');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-7-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-8-cont" style="display: none;">' . PHP_EOL;
$out .= 'SESSION:';
$out .= self::getStatistic('session');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-8-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-9-cont" style="display: none;">' . PHP_EOL;
$out .= 'SERVER:';
$out .= self::getStatistic('server');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-9-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-10-cont" style="display: none;">' . PHP_EOL;
$out .= 'ENV:';
$out .= self::getStatistic('env');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-10-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-11-cont" style="display: none;">' . PHP_EOL;
$out .= self::getStatistic('globals');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-11-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-12-cont" style="display: none;">' . PHP_EOL;
$out .= $AVE_DB->DBProfilesGet('list');
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-12-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-13-cont" style="display: none;">' . PHP_EOL;
$out .= $AVE_DB->showAllQueries();
$out .= '</div>';
$out .= PHP_EOL;
$out .= '<div class="debug_tab" id="debug-13-cont" style="display: none;">' . PHP_EOL;
$out .= '<div class="debug_tab" id="debug-14-cont" style="display: none;">' . PHP_EOL;
$out .= implode('', self::$_debug);
$out .= '</div>';

25
class/class.docs.php

@ -2889,22 +2889,23 @@
" . PREFIX . "_documents
WHERE
Id = '" . $document_id . "'
");
;");
// Выполняем запрос к БД на удаление полей, которые относились к документу
$AVE_DB->Query("
DELETE
f1.*,
f2.*
FROM
" . PREFIX . "_document_fields AS f1
INNER JOIN
" . PREFIX . "_document_fields_text AS f2
DELETE FROM
" . PREFIX . "_document_fields
WHERE
f1.document_id = '" . $document_id . "'
AND
f2.document_id = f1.document_id
");
document_id = '" . $document_id . "'
;");
// Выполняем запрос к БД на удаление полей, которые относились к документу
$AVE_DB->Query("
DELETE FROM
" . PREFIX . "_document_fields_text
WHERE
document_id = '" . $document_id . "'
;");
// Чистим кеш
$AVE_DB->clearDocument($document_id);

127
class/class.settings.php

@ -691,7 +691,7 @@
*/
function editCustom()
{
global $AVE_DB, $AVE_Template;
global $AVE_Template;
$file_name = 'func.custom.php';
@ -747,5 +747,130 @@
$AVE_Template->assign('content', $AVE_Template->fetch('settings/edit_file.tpl'));
}
function showCache ()
{
global $AVE_Template;
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_cache.tpl'));
}
function showCacheSize ()
{
switch ($_REQUEST['source'])
{
case 'smarty':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/smarty'));
break;
case 'documents':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/documents'));
break;
case 'langs':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/langs'));
break;
case 'modules':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/modules'));
break;
case 'navigations':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/navigations'));
break;
case 'paginations':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/paginations'));
break;
case 'requests':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/requests'));
break;
case 'rubrics':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/rubrics'));
break;
case 'sessions':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/session'));
break;
case 'settings':
$size = format_size(get_dir_size(BASE_DIR . '/tmp/cache/sql/settings'));
break;
}
$return = [
'size' => $size,
'message' => 'Успешно выполнено',
'theme' => 'accept'
];
_json($return, true);
}
function clearCache ()
{
global $AVE_Template;
switch ($_REQUEST['source'])
{
case 'smarty':
$cache_dir = BASE_DIR . '/tmp/cache/smarty';
break;
case 'documents':
$cache_dir = BASE_DIR . '/tmp/cache/sql/documents';
break;
case 'langs':
$cache_dir = BASE_DIR . '/tmp/cache/sql/langs';
break;
case 'modules':
$cache_dir = BASE_DIR . '/tmp/cache/sql/modules';
break;
case 'navigations':
$cache_dir = BASE_DIR . '/tmp/cache/sql/navigations';
break;
case 'paginations':
$cache_dir = BASE_DIR . '/tmp/cache/sql/paginations';
break;
case 'requests':
$cache_dir = BASE_DIR . '/tmp/cache/sql/requests';
break;
case 'rubrics':
$cache_dir = BASE_DIR . '/tmp/cache/sql/rubrics';
break;
case 'sessions':
$cache_dir = BASE_DIR . '/tmp/session';
break;
case 'settings':
$cache_dir = BASE_DIR . '/tmp/cache/sql/settings';
break;
}
$remove = rrmdir($cache_dir);
$return = [
'size' => format_size(get_dir_size($cache_dir)),
'header' => $remove ? $AVE_Template->get_config_vars('SETTINGS_CACHE_SUCCES') : $AVE_Template->get_config_vars('SETTINGS_CACHE_ERROR'),
'message' => $remove ? $AVE_Template->get_config_vars('SETTINGS_CACHE_SUCCES_T') : $AVE_Template->get_config_vars('SETTINGS_CACHE_ERROR_T'),
'theme' => $remove ? 'accept' : 'error'
];
_json($return, true);
}
}
?>

9
fields/image_mega/field.php

@ -355,10 +355,13 @@
: '';
}
function getExtension($file)
if (! function_exists('getExtension'))
{
$file = pathinfo($file);
return $file['extension'];
function getExtension($file)
{
$file = pathinfo($file);
return $file['extension'];
}
}
$valid_formats = array("jpg", "png", "gif", "bmp", "jpeg");

59
functions/func.common.php

@ -1328,4 +1328,63 @@
return $host;
}
}
function getIp ()
{
$ip = false;
$ipa = array();
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ipa[] = trim(strtok($_SERVER['HTTP_X_FORWARDED_FOR'], ','));
if (isset($_SERVER['HTTP_CLIENT_IP']))
$ipa[] = $_SERVER['HTTP_CLIENT_IP'];
if (isset($_SERVER['REMOTE_ADDR']))
$ipa[] = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_X_REAL_IP']))
$ipa[] = $_SERVER['HTTP_X_REAL_IP'];
//-- Проверяем ip-адреса на валидность начиная с приоритетного.
foreach ($ipa as $ips)
{
//-- Если ip валидный обрываем цикл, назначаем ip адрес и возвращаем его
if (isValidIp($ips))
{
//-- Localhost IP6
if ($ips == '::1')
$ips = '127.0.0.1';
$ip = $ips;
break;
}
}
return $ip;
}
function isValidIp ($ip = null)
{
//-- Если ip-адрес попадает под регулярное выражение, возвращаем true
if (preg_match('#^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$#', $ip))
return true;
//-- Localhost IP6
if ($ip == '::1')
return true;
//-- Иначе возвращаем false
return false;
}
if (!function_exists('getExtension'))
{
function getExtension($path)
{
return strtolower(substr(strrchr($path, "."), 1));
}
}
?>

5
functions/func.documents.php

@ -88,7 +88,10 @@
if ($doc_id < 1)
return [];
static $get_documents_data = [];
if (defined('USE_STATIC_DATA') && USE_STATIC_DATA)
static $get_documents_data = [];
else
$get_documents_data = [];
if (! isset ($get_documents_data[$doc_id]))
{

33
functions/func.fields.php

@ -84,6 +84,7 @@
if (! $tpl_empty)
{
$field_param = explode('|', $field_value);
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
@ -117,8 +118,8 @@
$arr = get_defined_functions();
$fields = array();
$field = array();
$fields = [];
$field = [];
foreach ($arr['user'] as $v)
{
@ -131,16 +132,16 @@
$id = substr($v, strlen('get_field_'));
if ($name != false && is_string($name))
$fields[] = array('id' => $id, 'name' => $name);
$fields[] = ['id' => $id, 'name' => $name];
if (! empty($type) && $id == $type)
$field = array('id' => $id, 'name' => $name);
$field = ['id' => $id, 'name' => $name];
}
else
continue;
}
$fields = msort($fields, array('name'));
$fields = msort($fields, ['name']);
return (! empty($type))
? $field
@ -188,7 +189,8 @@
return $alias_field_id[$rubric_id][$alias];
$sql = "
SELECT Id
SELECT
Id
FROM
" . PREFIX . "_rubric_fields
WHERE
@ -286,6 +288,8 @@
*
* @param null $_tpl
*
* @param null $maxlength
*
* @return string
*/
function document_get_field ($field_id, $document_id = null, $_tpl = null, $maxlength = null)
@ -312,6 +316,7 @@
$tpl_field_empty = $document_fields[$field_id]['tpl_field_empty'];
// ToDo
// if ($field_value == '' && $tpl_field_empty) return '';
$field_type = $document_fields[$field_id]['rubric_field_type'];
@ -320,6 +325,7 @@
$rubric_field_default = $document_fields[$field_id]['rubric_field_default'];
// ToDo
// $field_value = parse_hide($field_value);
// $field_value = ($length != '') ? truncate_text($field_value, $length, '…', true) : $field_value;
@ -349,7 +355,9 @@
if (! is_numeric($field_id))
return '';
$document_fields = get_document_fields(get_current_document_id());
$doc_id = get_current_document_id();
$document_fields = get_document_fields($doc_id);
$field_value = trim($document_fields[$field_id]['field_value']);
@ -411,7 +419,7 @@
{
global $AVE_DB, $AVE_Core, $fields_data; //$request_documents
if (defined('USE_STATIC_FIELDS') && USE_STATIC_FIELDS)
if (defined('USE_STATIC_DATA') && USE_STATIC_DATA)
static $document_fields = [];
else
$document_fields = [];
@ -432,7 +440,7 @@
doc_field.document_id,
doc_field.rubric_field_id,
doc_field.field_value,
text_field.field_value as field_value_more,
text_field.field_value AS field_value_more,
rub_field.rubric_field_alias,
rub_field.rubric_field_type,
rub_field.rubric_field_default,
@ -477,8 +485,11 @@
unlink ($cache_dir . $cache_file);
}
// Безусловный кеш
$sql = $AVE_DB->Query($query, -1, 'fld_' . $document_id, true, '.fields');
$cache_time = (defined('CACHE_DOC_FILE') && CACHE_DOC_FILE)
? -1
: 0;
$sql = $AVE_DB->Query($query, $cache_time, 'fld_' . $document_id, true, '.fields');
// Вдруг памяти мало!!!!
if (memory_panic() && (count($document_fields) > 3))

98
functions/func.parserequest.php

@ -878,9 +878,13 @@
return $return;
}
Debug::startTime('SQL');
// Выполняем запрос к бд
$sql = $AVE_DB->Query($sql_request, (int)$request->request_cache_lifetime, 'rqs_' . $id, true, '.request');
$GLOBALS['block_generate']['REQUESTS'][$id]['SQL'] = Debug::endTime('SQL');
// Если просили просто вернуть резльтат запроса, возвращаем результат
if (isset($params['RETURN_SQL']) && $params['RETURN_SQL'] == 1)
return $AVE_DB->GetFoundRows();
@ -1027,13 +1031,21 @@
$request_changed = $request->request_changed;
$request_changed_elements = $request->request_changed_elements;
Debug::startTime('ELEMENTS_ALL');
foreach ($rows as $row)
{
$x++;
$last_item = ($x == $items_count ? true : false);
$item_num = $x;
$req_item_num = $item_num;
Debug::startTime('ELEMENT_' . $item_num);
$item = showrequestelement($row, $request->request_template_item);
$GLOBALS['block_generate']['REQUESTS'][$id]['ELEMENTS'][$item_num] = Debug::endTime('ELEMENT_' . $item_num);
$item = '<'.'?php $item_num='.var_export($item_num,1).'; $last_item='.var_export($last_item,1).'?'.'>'.$item;
$item = '<'.'?php $req_item_id = ' . $row->Id . '; ?>' . $item;
$item = str_replace('[tag:if_first]', '<'.'?php if(isset($item_num) && $item_num===1) { ?'.'>', $item);
@ -1047,7 +1059,9 @@
$items .= $item;
}
//== Обрабатываем теги запроса
$GLOBALS['block_generate']['REQUESTS'][$id]['ELEMENTS']['ALL'] = Debug::endTime('ELEMENTS_ALL');
// ============ Обрабатываем теги запроса ============ //
//-- Парсим теги визуальных блоков
$main_template = preg_replace_callback('/\[tag:block:([A-Za-z0-9-_]{1,20}+)\]/', 'parse_block', $main_template);
@ -1055,12 +1069,8 @@
//-- Парсим теги системных блоков
$main_template = preg_replace_callback('/\[tag:sysblock:([A-Za-z0-9-_]{1,20}+)\]/', 'parse_sysblock', $main_template);
//-- Заменяем тег пагинации на пагинацию
$main_template = str_replace('[tag:pages]', $pagination, $main_template);
//-- Дата
$main_template = preg_replace_callback(
'/\[tag:date:([a-zA-Z0-9-. \/]+)\]/',
$main_template = preg_replace_callback('/\[tag:date:([a-zA-Z0-9-. \/]+)\]/',
function ($match) use ($AVE_Core)
{
return translate_date(date($match[1], $AVE_Core->curentdoc->document_published));
@ -1068,43 +1078,38 @@
$main_template
);
//-- ID Документа
$main_template = str_replace('[tag:docid]', $AVE_Core->curentdoc->Id, $main_template);
//-- ID Автора
$main_template = str_replace('[tag:docauthorid]', $AVE_Core->curentdoc->document_author_id, $main_template);
//-- Имя автора
if (preg_match('[tag:docauthor]', $main_template))
$main_template = str_replace('[tag:docauthor]', get_username_by_id($AVE_Core->curentdoc->document_author_id), $main_template);
//-- Время - 1 день назад
$main_template = str_replace('[tag:humandate]', human_date($AVE_Core->curentdoc->document_published), $main_template);
//-- Дата создания
$main_template = str_replace('[tag:docdate]', pretty_date(strftime(DATE_FORMAT, $AVE_Core->curentdoc->document_published)), $main_template);
//-- Время создания
$main_template = str_replace('[tag:doctime]', pretty_date(strftime(TIME_FORMAT, $AVE_Core->curentdoc->document_published)), $main_template);
//-- Домен
$main_template = str_replace('[tag:domain]', getSiteUrl(), $main_template);
//-- Общее число элементов запроса
$main_template = str_replace('[tag:doctotal]', $num_items, $main_template);
//-- Показано элементов запроса на странице
$main_template = str_replace('[tag:doconpage]', $x, $main_template);
//-- Номер страницы пагинации
$main_template = str_replace('[tag:pages:curent]', get_current_page('page'), $main_template);
//-- Общее кол-во страниц пагинации
$main_template = str_replace('[tag:pages:total]', $num_pages, $main_template);
//-- Title
$main_template = str_replace('[tag:pagetitle]', stripslashes(htmlspecialchars_decode($AVE_Core->curentdoc->document_title)), $main_template);
//-- Alias
$main_template = str_replace('[tag:alias]', (isset($AVE_Core->curentdoc->document_alias) ? $AVE_Core->curentdoc->document_alias : ''), $main_template);
$str_replace = [
//-- ID Документа
'[tag:docid]' => $AVE_Core->curentdoc->Id,
//-- ID Автора
'[tag:docauthorid]' => $AVE_Core->curentdoc->document_author_id,
//-- Имя автора
'[tag:docauthor]' => get_username_by_id($AVE_Core->curentdoc->document_author_id),
//-- Время - 1 день назад
'[tag:humandate]' => human_date($AVE_Core->curentdoc->document_published),
//-- Дата создания
'[tag:docdate]' => pretty_date(strftime(DATE_FORMAT, $AVE_Core->curentdoc->document_published)),
//-- Время создания
'[tag:doctime]' => pretty_date(strftime(TIME_FORMAT, $AVE_Core->curentdoc->document_published)),
//-- Домен
'[tag:domain]' => getSiteUrl(),
//-- Заменяем тег пагинации на пагинацию
'[tag:pages]' => $pagination,
//-- Общее число элементов запроса
'[tag:doctotal]' => $num_items,
//-- Показано элементов запроса на странице
'[tag:doconpage]' => $x,
//-- Номер страницы пагинации
'[tag:pages:curent]' => get_current_page('page'),
//-- Общее кол-во страниц пагинации
'[tag:pages:total]' => $num_pages,
//-- Title
'[tag:pagetitle]' => stripslashes(htmlspecialchars_decode($AVE_Core->curentdoc->document_title)),
//-- Alias
'[tag:alias]' => (isset($AVE_Core->curentdoc->document_alias) ? $AVE_Core->curentdoc->document_alias : '')
];
$main_template = str_replace(array_keys($str_replace), array_values($str_replace), $main_template);
//-- Возвращаем параметр документа из БД
$main_template = preg_replace_callback('/\[tag:doc:([a-zA-Z0-9-_]+)\]/u',
@ -1118,8 +1123,7 @@
);
//-- Если пришел вызов на активацию языковых файлов
$main_template = preg_replace_callback(
'/\[tag:langfile:([a-zA-Z0-9-_]+)\]/u',
$main_template = preg_replace_callback('/\[tag:langfile:([a-zA-Z0-9-_]+)\]/u',
function ($match)
{
global $AVE_Template;
@ -1132,6 +1136,8 @@
//-- Вставляем элементы запроса
$return = str_replace('[tag:content]', $items, $main_template);
unset ($items, $main_template, $str_replace, $pagination);
//-- Парсим тег [hide]
$return = parse_hide($return);
@ -1145,7 +1151,7 @@
$return = $AVE_Core->coreModuleTagParse($return);
//-- Фиксируем время генерации запроса
$GLOBALS['block_generate']['REQUESTS'][$id][] = Debug::endTime('request_' . $id);
$GLOBALS['block_generate']['REQUESTS'][$id]['TIME'] = Debug::endTime('request_' . $id);
// Статистика
if ($request->request_show_statistic)

33
inc/config.php

@ -6,14 +6,14 @@
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
* @copyright © 2007-2014 AVE.cms, https://ave-cms.ru
*
* @license GPL v.2
*/
@define('APP_NAME', 'AVE.cms');
@define('APP_VERSION', '3.26');
@define('APP_INFO', '<a target="_blank" href="https://www.ave-cms.ru/">Ave-Cms.Ru</a> '.'&copy; 2007-' . date('Y'));
define('APP_NAME', 'AVE.cms');
define('APP_VERSION', '3.27');
define('APP_INFO', '<a target="_blank" href="https://ave-cms.ru/">Ave-Cms.Ru</a> '.'&copy; 2007-' . date('Y'));
$themes = [];
@ -21,6 +21,8 @@
if (is_dir($filename))
$themes[] = basename($filename);
unset ($filename);
$codemirror = [
'default',
'3024-day',
@ -526,14 +528,30 @@
'VARIANT' => ''
];
//-- Использовать проверку в полях на пусто, только исходные данные, исключая шаблон поля
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['USE_STATIC_FIELDS'] = [
'DESCR' => 'Использовать статитчное хранение полей в системе',
//-- Использовать статитчное хранение полей в памяти
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['USE_STATIC_DATA'] = [
'DESCR' => 'Использовать статитчное хранение в памяти, данных документа и полей',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
];
//-- Шифровать сериализованные кешированные данные
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['USE_ENCODE_SERIALIZE'] = [
'DESCR' => 'Шифровать сериализованные кешированные данные',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
];
//-- Кол-во дней для хранения системных событий
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['LOG_DAYS_LIMIT'] = [
'DESCR' => 'Кол-во дней для хранения системных событий',
'DEFAULT' => 14*60*24*14,
'TYPE' => 'integer',
'VARIANT' => ''
];
//-- Проверка наличия новых версий
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['CHECK_VERSION'] = [
'DESCR' => 'Проверка наличия новых версий',
@ -552,4 +570,5 @@
if(! defined($k))
define($k, $v['DEFAULT']);
unset ($key, $const, $k, $v);
?>

47
inc/init.php

@ -6,22 +6,32 @@
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2018 AVE.cms, http://www.ave-cms.ru
* @copyright © 2007-2020 AVE.cms, https://ave-cms.ru
*
* @license GPL v.2
*/
@date_default_timezone_set('Europe/Moscow');
if (! defined('BASE_DIR'))
exit;
define ('DS', DIRECTORY_SEPARATOR);
@date_default_timezone_set('Europe/Moscow');
//-- Подключаем файл настроек
require_once (BASE_DIR . '/inc/config.php');
if (PHP_DEBUGGING_FILE && ! defined('ACP'))
include_once BASE_DIR . '/inc/errors.php';
//-- Debug Class
require(BASE_DIR . '/class/class.debug.php');
new Debug;
//-- Hooks Class
require(BASE_DIR . '/class/class.hooks.php');
new Hooks;
//-- Удаление глобальных массивов
function unsetGlobals()
{
@ -185,14 +195,6 @@
}
}
//-- Debug Class
require (BASE_DIR . '/class/class.debug.php');
new Debug;
//-- Hooks Class
require (BASE_DIR . '/class/class.hooks.php');
new Hooks;
//-- Подкючаем необходимые файлы функций
require_once (BASE_DIR . '/functions/func.breadcrumbs.php'); // Хлебные крошки
require_once (BASE_DIR . '/functions/func.common.php'); // Основные функции
@ -213,11 +215,15 @@
require_once (BASE_DIR . '/functions/func.users.php'); // Функции по работе с пользователями
require_once (BASE_DIR . '/functions/func.watermarks.php'); // Функции по работе с водными знаками
//-- Logs Class
require(BASE_DIR . '/class/class.logs.php');
//-- Создание папок и файлов
foreach (array(ATTACH_DIR, 'cache', 'backup', 'logs', 'session', 'update') as $dir)
foreach ([ATTACH_DIR, 'cache', 'backup', 'logs', 'session', 'update'] AS $dir)
write_htaccess_deny(BASE_DIR . '/tmp/' . $dir);
foreach (array('combine', 'module', 'redactor', 'smarty', 'sql', 'tpl') as $dir)
foreach (['combine', 'module', 'redactor', 'smarty', 'sql', 'tpl'] AS $dir)
write_htaccess_deny(BASE_DIR . '/tmp/cache/' . $dir);
//-- Шаблоны
@ -235,8 +241,8 @@
require_once (BASE_DIR . '/config/db.config.php');
//-- Если параметры не указаны, прерываем работу
if (! isset($config))
exit;
if (! isset($config) OR empty($config))
die('No database config');
//-- Если константа префикса таблиц не задана, принудительно определяем ее на основании параметров в файле db.config.php
if (! defined('PREFIX'))
@ -328,7 +334,6 @@
if (isset($HTTP_SESSION_VARS))
$_SESSION = $HTTP_SESSION_VARS;
//-- Logout
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'logout')
{
@ -338,7 +343,6 @@
exit;
}
//-- Если нет авторизации
if (! defined('ACPL') && ! auth_sessions())
{
@ -357,7 +361,6 @@
}
}
//-- Запоминаем время последнего визита пользователя
if (! empty($_SESSION['user_id']))
{
@ -378,7 +381,7 @@
$_SESSION['accept_langs'] = array();
$sql = $AVE_DB->Query("
$sql = "
SELECT
# LANGS
*
@ -388,9 +391,11 @@
lang_status = '1'
ORDER BY
lang_default ASC
", -1, 'langs', true, '.langs');
";
$query = $AVE_DB->Query($sql, -1, 'langs', true, '.langs');
while ($row = $sql->FetchRow())
while ($row = $query->FetchRow())
{
if (trim($row->lang_key) > '')
{

2
inc/sitemap.php

@ -16,6 +16,8 @@
define ('BASE_DIR', str_replace("\\", "/", rtrim($_SERVER['DOCUMENT_ROOT'], '/')));
define ('USE_STATIC_DATA', false);
if (! @filesize(BASE_DIR . '/config/db.config.php'))
{
header ('Location: Location:install/index.php');

26
index.php

@ -11,7 +11,7 @@
* @license GPL v.2
*/
define ('START_MICROTIME', microtime());
define ('START_MICROTIME', microtime(true));
define ('START_MEMORY', memory_get_usage());
define ('BASE_DIR', str_replace("\\", "/", dirname(__FILE__)));
@ -33,14 +33,16 @@
ob_start();
//-- Подключаем файл определения мобильных устройств
//-- далее пользуемся $MDetect
//-- далее пользуемся $MobileDetect
require_once (BASE_DIR . '/lib/mobile_detect/Mobile_Detect.php');
$MDetect = new Mobile_Detect;
$MobileDetect = new Mobile_Detect;
$init_start = microtime(true);
//-- Подключаем файл инициализации
require (BASE_DIR . '/inc/init.php');
unset ($GLOBALS['CMS_CONFIG']);
$GLOBALS['block_generate']['INIT']['END'] = number_format(microtime_diff($init_start, microtime()), 3, ',', ' ') . ' sec';
//-- Проверяем нет ли в запросе папки UPLOADS_DIR
//-- подключаем файл для работы thumbsnail
@ -70,12 +72,12 @@
$GLOBALS['page_id'] = array((isset($_REQUEST['id'])
? $_REQUEST['id']
: '')
=> array('page' => floatval(0)));
=> ['page' => floatval(0)]);
//-- Если пришел вызов на показ ревизии документа
if (! empty($_REQUEST['revission']))
{
$res = $AVE_DB->Query("
$sql = "
SELECT
doc_data
FROM
@ -85,7 +87,9 @@
AND
doc_revision = '" . (int)$_REQUEST['revission'] . "'
LIMIT 1
")->GetCell();
";
$res = $AVE_DB->Query($sql)->GetCell();
$res = @unserialize($res);
@ -95,6 +99,8 @@
//-- Собираем страницу
$AVE_Core->coreSiteFetch(get_current_document_id());
Debug::startTime('CONTENT');
$content = ob_get_clean();
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && (defined('GZIP_COMPRESSION') && GZIP_COMPRESSION))
@ -152,18 +158,18 @@
? ''
: implode(chr(10), $GLOBALS['user_header']));
$render = str_replace('[tag:rubheader]', $rubheader, $render);
//-- Тут заменяем [tag:rubfooter]
//-- на собранный $GLOBALS["user_footer"]
$rubfooter = (empty($GLOBALS['user_footer'])
? ''
: implode(chr(10), $GLOBALS['user_footer']));
$render = str_replace('[tag:rubfooter]', $rubfooter, $render);
$render = str_replace(['[tag:rubheader]', '[tag:rubfooter]'], [$rubheader, $rubfooter], $render);
unset ($rubheader, $rubfooter);
$GLOBALS['block_generate']['DOCUMENT']['CONTENT'] = Debug::endTime('CONTENT');
//-- Вывод конечного результата
output_compress($render);
?>
Loading…
Cancel
Save