обновлен шаблонизатор Smarty до версии 5.6 , обновление кода для совместимости с PHP-8.4.x

This commit is contained in:
2025-11-18 01:04:23 +05:00
parent 6544a2d2e2
commit 90ec364b45
371 changed files with 32705 additions and 11774 deletions

View File

@@ -1,4 +1,4 @@
### Альтернативная версия AVE.CMS v3.29 ALT
### Альтернативная версия AVE.CMS v3.30 ALT
#### Основное отличие:
### В версии 🔥v3.29 теперь есть выбор какие запросы использовать, либо из ver 2.09RC1, либо оригинальные из ver 3.28, выбирайте то, с чем привыкли работать.
#### Управление запросами находится в разделе Системные настройки → Дополнительные настройки → Запросы
@@ -9,7 +9,12 @@
### Changelog:
#### Версия v3.30 ALT - Шаблонизатор Smarty обновлен до версии 5.6 Проведено обновление кода для совместимости с PHP-8.4;
#### Версия v3.29 ALT - удален устаревший Swift Mailer, на замену ему интегрирован Symfony Mailer;
#### В Системных настройках, при выборе метода отправки почты: SMTP --> Шифрование, добавлены новые пункты: TLS (без проверки сертификата) и SSL (без проверки сертификата). Это дает возможность полноценно настраивать почту на локальном хосте. Добавлен выбор вариантов запросов.
####
#### Системные требования: min версия PHP-8.2 и выше; MySQL-8.x
### Вы можете отправить Баг-репорт в случае выявления ошибки: [ave.gitget.ru](https://ave.gitget.ru)

View File

@@ -65,7 +65,7 @@
case 'alias':
if (check_permission_acp('blocks_edit'))
{
echo $AVE_Block->blockValidate($_REQUEST['alias'], (int)$_REQUEST['id']);
echo $AVE_Block->blockValidate($_REQUEST['alias'], (int)(isset($_REQUEST['id']) ? $_REQUEST['id'] : 0));
}
exit;

View File

@@ -169,7 +169,10 @@ switch ($action) {
break;
default:
list($target, $target_id) = explode('__', $_REQUEST['target'] ?? '__');
//list($target, $target_id) = explode('__', $_REQUEST['target'] ?? '__');
$parts = explode('__', $_REQUEST['target'] ?? '__');
$target = $parts[0] ?? null;
$target_id = $parts[1] ?? null;
$tval = '/';
@@ -195,4 +198,4 @@ switch ($action) {
$out = ob_get_clean();
echo $out;
?>

View File

@@ -24,10 +24,10 @@
require(BASE_DIR . '/class/class.navigation.php');
require(BASE_DIR . '/class/class.request.php');
$AVE_Document = new AVE_Document;
$AVE_Rubric = new AVE_Rubric;
$AVE_Document = new AVE_Document;
$AVE_Rubric = new AVE_Rubric;
$AVE_Navigation = new AVE_Navigation;
$AVE_Request = new AVE_Request;
$AVE_Request = new AVE_Request;
$AVE_Document->documentTemplateTimeAssign();
@@ -52,11 +52,13 @@
}
$AVE_Document->documentListGet();
}
if (isset($_REQUEST['rubric_id']) && is_numeric($_REQUEST['rubric_id']))
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['rubric_id']
$rubric_id = $_REQUEST['rubric_id'] ?? null;
if ($rubric_id !== null && is_numeric($rubric_id))
// Если существет файл с ID рубрики
if (file_exists(BASE_DIR . '/admin/templates/documents/docs-' .$_REQUEST['rubric_id'] . '.tpl'))
$_docs_template = 'documents/docs-' . $_REQUEST['rubric_id'] . '.tpl';
if (file_exists(BASE_DIR . '/admin/templates/documents/docs-' . $rubric_id . '.tpl'))
$_docs_template = 'documents/docs-' . $rubric_id . '.tpl';
$AVE_Template->assign('content', $AVE_Template->fetch($_docs_template));
break;
@@ -85,7 +87,8 @@
$AVE_Navigation->navigationAllItemList();
$AVE_Request->requestListFetch();
}
$AVE_Document->documentEdit((int)$_REQUEST['Id']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Document->documentEdit((int)($_REQUEST['Id'] ?? 0));
}
break;
@@ -94,7 +97,8 @@
{
$AVE_Navigation->navigationAllItemList();
$AVE_Request->requestListFetch();
$AVE_Document->documentCopy((int)$_REQUEST['Id']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Document->documentCopy((int)($_REQUEST['Id'] ?? 0));
}
break;
@@ -107,7 +111,8 @@
$AVE_Request->requestListFetch();
}
$AVE_Document->documentNew((int)$_REQUEST['rubric_id']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['rubric_id']
$AVE_Document->documentNew((int)($_REQUEST['rubric_id'] ?? 0));
}
break;
@@ -129,40 +134,45 @@
case 'open':
if (check_permission_acp('document_view'))
{
$AVE_Navigation->navigationItemStatusOn((int)$_REQUEST['Id']);
$AVE_Document->documentStatusSet((int)$_REQUEST['Id'], 1);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Navigation->navigationItemStatusOn((int)($_REQUEST['Id'] ?? 0));
$AVE_Document->documentStatusSet((int)($_REQUEST['Id'] ?? 0), 1);
}
break;
case 'close':
if (check_permission_acp('document_view'))
{
$AVE_Navigation->navigationItemStatusOff((int)$_REQUEST['Id']);
$AVE_Document->documentStatusSet((int)$_REQUEST['Id'], 0);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Navigation->navigationItemStatusOff((int)($_REQUEST['Id'] ?? 0));
$AVE_Document->documentStatusSet((int)($_REQUEST['Id'] ?? 0), 0);
}
break;
case 'delete':
if (check_permission_acp('document_view'))
{
$AVE_Navigation->navigationItemStatusOff((int)$_REQUEST['Id']);
$AVE_Document->documentMarkDelete((int)$_REQUEST['Id']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Navigation->navigationItemStatusOff((int)($_REQUEST['Id'] ?? 0));
$AVE_Document->documentMarkDelete((int)($_REQUEST['Id'] ?? 0));
}
break;
case 'redelete':
if (check_permission_acp('document_view'))
{
$AVE_Navigation->navigationItemStatusOn((int)$_REQUEST['Id']);
$AVE_Document->documentUnmarkDelete((int)$_REQUEST['Id']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Navigation->navigationItemStatusOn((int)($_REQUEST['Id'] ?? 0));
$AVE_Document->documentUnmarkDelete((int)($_REQUEST['Id'] ?? 0));
}
break;
case 'enddelete':
if (check_permission_acp('alles'))
{
$AVE_Navigation->navigationItemDeleteFromDoc((int)$_REQUEST['Id']);
$AVE_Document->documentDelete((int)$_REQUEST['Id']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Navigation->navigationItemDeleteFromDoc((int)($_REQUEST['Id'] ?? 0));
$AVE_Document->documentDelete((int)($_REQUEST['Id'] ?? 0));
// Выполняем обновление страницы
header('Location:index.php?do=docs&cp=' . SESSION);
}
@@ -171,48 +181,73 @@
case 'revision_recover':
if (check_permission_acp('document_view'))
{
$AVE_Document->documentRevissionRestore((int)$_REQUEST['doc_id'], (int)$_REQUEST['revission'], (int)$_REQUEST['rubric_id']);
// ИСПРАВЛЕНИЕ: Защита всех ID
$AVE_Document->documentRevissionRestore(
(int)($_REQUEST['doc_id'] ?? 0),
(int)($_REQUEST['revission'] ?? 0),
(int)($_REQUEST['rubric_id'] ?? 0)
);
}
break;
case 'revision_delete':
if (check_permission_acp('document_view'))
{
$AVE_Document->documentRevissionDelete((int)$_REQUEST['doc_id'], (int)$_REQUEST['revission'], (int)$_REQUEST['rubric_id']);
// ИСПРАВЛЕНИЕ: Защита всех ID
$AVE_Document->documentRevissionDelete(
(int)($_REQUEST['doc_id'] ?? 0),
(int)($_REQUEST['revission'] ?? 0),
(int)($_REQUEST['rubric_id'] ?? 0)
);
}
break;
case 'revisions_delete':
if (check_permission_acp('document_view')) {
$AVE_Document->documentRevissionsDelete((int) $_REQUEST['doc_id'], (int) $_REQUEST['revission'], (int) $_REQUEST['rubric_id']);
// ИСПРАВЛЕНИЕ: Защита всех ID
$AVE_Document->documentRevissionsDelete(
(int)($_REQUEST['doc_id'] ?? 0),
(int)($_REQUEST['revission'] ?? 0),
(int)($_REQUEST['rubric_id'] ?? 0)
);
}
break;
case 'remark':
if (check_permission_acp('remark_view'))
{
$AVE_Document->documentRemarkNew((int)$_REQUEST['Id'], 0);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Document->documentRemarkNew((int)($_REQUEST['Id'] ?? 0), 0);
}
break;
case 'remark_reply':
if (check_permission_acp('remark_view'))
{
$AVE_Document->documentRemarkNew((int)$_REQUEST['Id'], 1);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['Id']
$AVE_Document->documentRemarkNew((int)($_REQUEST['Id'] ?? 0), 1);
}
break;
case 'remark_status':
if (check_permission_acp('remark_edit'))
{
$AVE_Document->documentRemarkStatus((int)$_REQUEST['Id'], (int)$_REQUEST['remark_status']);
// ИСПРАВЛЕНИЕ: Защита ID и статуса
$AVE_Document->documentRemarkStatus(
(int)($_REQUEST['Id'] ?? 0),
(int)($_REQUEST['remark_status'] ?? 0)
);
}
break;
case 'remark_del':
if (check_permission_acp('remark_edit'))
{
$AVE_Document->documentRemarkDelete((int)$_REQUEST['Id'], (int)$_REQUEST['remark_first']);
// ИСПРАВЛЕНИЕ: Защита ID
$AVE_Document->documentRemarkDelete(
(int)($_REQUEST['Id'] ?? 0),
(int)($_REQUEST['remark_first'] ?? 0)
);
}
break;
@@ -239,14 +274,16 @@
case 'find_user':
if (check_permission_acp('document_view'))
{
findautor($_REQUEST['q'], 10);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['q']
findautor(($_REQUEST['q'] ?? ''), 10);
}
exit;
case 'keywords':
if (check_permission_acp('document_view'))
{
searchKeywords($_REQUEST['q']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['q']
searchKeywords(($_REQUEST['q'] ?? ''));
}
exit;
@@ -258,11 +295,13 @@
break;
case 'image_import':
echo json_encode(array("respons"=>image_multi_import($_REQUEST['path']), "status"=>"error", "action"=>"return"));
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['path']
echo json_encode(array("respons"=>image_multi_import(($_REQUEST['path'] ?? '')), "status"=>"error", "action"=>"return"));
exit;
case 'translit':
echo($AVE_Document->documentAliasCreate());
$alias = $AVE_Document->documentAliasCreate();
echo($alias ?? ''); // Добавляем защиту на случай, если функция вернула null
exit;
case 'checkurl':
@@ -279,7 +318,8 @@
case 'aliases_doc':
if (check_permission_acp('document_view'))
{
$AVE_Document->documentAliasListDoc((int)$_REQUEST['doc_id']);
// ИСПРАВЛЕНИЕ: Защита $_REQUEST['doc_id']
$AVE_Document->documentAliasListDoc((int)($_REQUEST['doc_id'] ?? 0));
}
break;

View File

@@ -171,6 +171,29 @@ function getLogRecords()
while ($row = $sql->FetchRow())
$cnts['users_' . $row->status] = $row->cntStatus;
// 1. Проверяем, существует ли переменная $cnts, и если нет, создаем ее как массив
if (!isset($cnts)) {
$cnts = [];
}
// 2. Инициализируем отсутствующие ключи нулем
if (!isset($cnts['modules_0'])) {
$cnts['modules_0'] = 0;
}
if (!isset($cnts['modules_1'])) {
$cnts['modules_1'] = 0;
}
// 3. Инициализируем отсутствующие ключи для ПОЛЬЗОВАТЕЛЕЙ
if (!isset($cnts['users_0'])) {
$cnts['users_0'] = 0;
}
if (!isset($cnts['users_1'])) {
$cnts['users_1'] = 0;
}
$AVE_Template->assign('cnts', $cnts);
}

View File

@@ -118,7 +118,7 @@
include_once (BASE_DIR . '/admin/' . $do . '.php');
if (defined('NOPERM'))
$AVE_Template->assign('content', $config_vars['MAIN_NO_PERMISSION']);
$AVE_Template->assign('content', isset($config_vars['MAIN_NO_PERMISSION']) ? $config_vars['MAIN_NO_PERMISSION'] : 'Доступ запрещен.');
//Шаблоны
$tpl = (isset($_REQUEST['pop']) && $_REQUEST['pop'] == 1)

View File

@@ -19,10 +19,12 @@
require (BASE_DIR . '/inc/init.php');
$AVE_Template = new AVE_Template(BASE_DIR . '/admin/templates');
$AVE_Template->assign('tpl_dir', ABS_PATH . 'admin/templates');
require (BASE_DIR . '/admin/functions/func.admin.common.php');
$AVE_Template = new AVE_Template(BASE_DIR . '/admin/templates');
$AVE_Template->assign('tpl_dir', ABS_PATH . 'admin/templates');
require (BASE_DIR . '/lib/redactor/ckeditor/adapters/ckeditor.php');
$lang_system = $AVE_DB->Query("

View File

@@ -60,7 +60,7 @@ BLOCK_SAVED_ERR = "Неуспешен запис на визуален блок
BLOCK_ERROR = "Грешка"
BLOCK_SUCCESS = "Изпълнено"
// v 3.2
# v 3.2
BLOCK_DESCRIPTION = "Кратко описание"
BLOCK_ALIAS = "Алиас"
BLOCK_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:BLOCK:alias] [tag:BLOCK:id]. Алиасът не може да бъде число, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на блоковете."

View File

@@ -285,7 +285,7 @@ DOC_SEARCH_FIELD_TEXT = "Стойност"
DOC_TEMPLATE_DEFAULT = "Използвай по подразбиране"
DOC_SHOW_LANG = "Покажи"
// 3.2
# 3.2
DOC_TABS_META = "Meta данни"
DOC_TABS_URL = "URL на документа"
DOC_TABS_DATE = "Дата на публикация"
@@ -300,10 +300,10 @@ DOC_LANG = "Език"
DOC_LANG_ID = "Език на документа:"
DOC_LANG_SELECT = "Изберете език"
// 3.25
# 3.25
DOC_CLOSE_SEARCH_RUBRIC = "Върни се в раздела, според параметрите на търсенето"
// 3.26
# 3.26
DOC_POSITION = "Позиция"
DOCUMENT_POSITION = "Позиция на документа"
DOCUMENT_POSITION_ERR = "Неуспешен запис на позицията на документа"

View File

@@ -301,5 +301,5 @@ WRONG_CAPTCHA = "<strong>Грешка:</strong><br />Грешен защитен
oficial_site = "Официален сайт"
support = "Техническо обслужване"
// 3.1.9
# 3.1.9
MAIN_BLOCKS = "Визуални блокове"

View File

@@ -95,14 +95,14 @@ NAVI_ITEM_EDIT = "Редактиране пункт в менюто"
NAVI_ITEM_DELETE = "Изтриване на пункта в менюто"
NAVI_ITEM_DELETE_CONFIRM = "Сигурни ли сте, че желаете да изтриете този пункт в менюто?"
// v 3.2
# v 3.2
NAVI_ALIAS = "Алиас"
NAVI_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиасът не може да бъде чосло, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на модула."
NAVI_ACCEPT = "Този алиас можр да се използва"
NAVI_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
NAVI_ER_EXISTS = "Грешен алиас!<br> Този алиас вече е използван в друга контактна форма"
//from templates
# from templates
NAVI_NOLINK_DOC = "Липсва свързан документ"
NAVI_EDIT_ITEM = "Редактиране на реда в менюто"
NAVI_LINK_FILEDOC = "Свържи с документ/файл"

View File

@@ -179,7 +179,7 @@ REQUEST_REPORT_ERR_RUBRIC= "Не е избрана рубрика"
REQUEST_BY_PARENT = "Родителски документ"
REQUEST_SHOW_STAT = "Покажи статистиката"
// v 3.1.9
# v 3.1.9
REQUEST_ALIAS = "Алиас"
REQUEST_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиасът не може да бъде чосло, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на модула."
REQUEST_ACCEPT = "Този алиас можр да се използва"
@@ -189,7 +189,7 @@ REQUEST_HEADER_EXTERNAL = "Външно обръщание"
REQUEST_EXTERNAL = "Разреши външно обръщение"
REQUEST_ONLY_AJAX = "Изпълнение само чрез Ajax"
// v 3.2
# v 3.2
REQUEST_PAGINATION = "Постранична навигация"
REQUEST_NAVI_TPL = "Шаблон за постранична навигация"
REQUEST_OTHER = "Още"
@@ -198,8 +198,8 @@ REQUEST_DOC_ON_PAGE = "Брой елементи на заявката на с
REQUEST_PAGES_CURENT = "Номер страница"
REQUEST_PAGES_TOTAL = "Общ брой страници"
// v 3.24
# v 3.24
REQUEST_COUNT_ITEMS = "Получаване на бр. елементи(ако не се използва постранична навигация)"
// v 3.26
# v 3.26
REQUEST_BY_POSITION = "Позиция на документа"

View File

@@ -280,7 +280,7 @@ RUBRIC_TMPLS_INNAME = "Въведете наименование на ш
RUBRIC_TEMPL_REPORT = "Редайтирал допълнителен шаблон за рубрика"
RUBRIC_TMPLS_LOG_DEL = "Изтрил допълнителен шаблон за рубрика"
// 3.24
# 3.24
RUBRIC_WARNING_TIP = "Внимание! Моля, бъдете внимателни - неверните параметри ще доведат до неработоспособна система."
RUBRIK_EDIT_FIELDS = "Управление на полетата"

View File

@@ -113,7 +113,7 @@ SETTINGS_COUNT_DELETED_ERR = "Неуспешно изтриване на дне
SETTINGS_COUNT_UPDATE = "Занулил дневния брояч на документите"
SETTINGS_CACHE_LIFETIME = "Внимание!!! Включено кеширование запроса к настройкам системы. Изменения вступят в силу, только после окончания времени жизни кеша или отключения кеширования"
// v3.2
# v3.2
SETTINGS_PAGINATION = "Настройка на пагинация"
PAGINATION_ADD = "Създай шаблон за пагинация"
PAGINATION_NAME = "Наименование"
@@ -139,7 +139,7 @@ pagination_end_label = "Текст за линк "Последна""
pagination_next_label = "Текст за линк "Следваща""
pagination_prev_label = "Текст за линк "Предходна""
// v3.24
# v3.24
SETTINGS_SAVED_ERR_FILE = "Грешка при записване на файла. Моля, пробвайте отново."
SETTINGS_SAVED_FILE = "Файлът е успешно записан."
SETTINGS_FILE_EDIT_H = "Редактиране на файла"
@@ -147,7 +147,7 @@ SETTINGS_FILE_CONTENT = "Съдържание на файла:"
SETTINGS_FILE_ROBOTS = "Файл robots.txt"
SETTINGS_FILE_CUSTOM = "Файл func.custom.php"
// v3.25
# v3.25
_const_auth = "Авторизация"
_const_url = "Формиране на URL"
_const_themes = "Оформление"

View File

@@ -68,7 +68,7 @@ SYSBLOCK_SAVED_ERR = "Неуспешно записване на системн
SYSBLOCK_ERROR = "Грешка"
SYSBLOCK_SUCCESS = "Изпълнено"
// v 3.2
# v 3.2
SYSBLOCK_DESCRIPTION = "Кратко описание"
SYSBLOCK_ALIAS = "Алиас"
SYSBLOCK_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиасът не може да бъде чосло, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на модула."
@@ -76,7 +76,7 @@ SYSBLOCK_ACCEPT = "Този алиас може да се използва"
SYSBLOCK_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
SYSBLOCK_ER_EXISTS = "Грешен алиас!<br> Този алиас вече е използван в друг системен блок"
// v 3.26
# v 3.26
SYSBLOCK_EVAL = "Изпълнявай PHP преди връщане на резултата"
SYS_GROUP_NO_TITLE = "Без групи"
SYS_GROUP_NO_DESCRIPTION = "Лписва описание"

View File

@@ -169,8 +169,7 @@ REQUEST_REPORT_ERR_TITLE = "Cyhbí název požadavku"
REQUEST_REPORT_ERR_TEXT = "Chybí základní šablona designu požadavku"
REQUEST_REPORT_ERR_PHP = "Je zakázáno využívat PHP kodu
REQUEST_REPORT_ERR_PHP_N = "Pokus využítí PHP kodu v šabloně požadavku při vytvoření požadavku"
REQUEST_REPORT_ERR_PHP_E
= "Pokus použítí PHP kodu v šabloně požadavku"
REQUEST_REPORT_ERR_PHP_E = "Pokus použítí PHP kodu v šabloně požadavku"
REQUEST_REPORT_ERR_RUBRIC= "Není vybraná rubrika"
REQUEST_BY_PARENT = "Nadřazený dokument"
REQUEST_SHOW_STAT = "Zobrazit statistiky"

View File

@@ -187,7 +187,7 @@ RUBRIK_ALIAS_HEAD = "Přiřadit alias pro pole"
RUBRIK_ALIAS_HEAD_T = "Můžete použít pouze latinky a čísla <br /> Příklad:! <strong> záhlaví </strong>"
RUBRIK_ALIAS_HEAD_R = "Rubrika"
RUBRIK_ALIAS_HEAD_F = "pole"
RUBRIK_ALIAS_ALIAS = "Alias pole"
RUBRIK_ALIAS_ALIAS = "Alias pole"
RUBRIK_ALIAS_NAME= "Název aliasu"
RUBRIK_ALIAS_BUTT = "Uložit"
RUBRIK_ALIAS_ERROR = "Chyba"

View File

@@ -22,7 +22,7 @@ var ajaxErrorStatusJSON = "Špatná odpověď serveru<br />Data jsou ve špatné
var ajaxErrorStatusTimeOut = "Čas požadavku uplynul.";
var ajaxErrorStatusAbort = "Ajax požadavek přerušen.";
var ajaxErrorStatusMess = "Cyhba:<br />";
var delCascadTitle = "odstranit zobrazení;
var delCascadTitle = "odstranit zobrazení;"
var delCascadConfirm
= "Opravdu chcete smazat?";
var saveMessageOk = "Data uložena";

View File

@@ -54,10 +54,10 @@ DOC_BUTTON_EDIT_DOCUMENT_NEXT = "Zastosuj (Ctrl + S)"
DOC_ADD_DOCUMENT = "Dodaj nowy dokument"
DOC_EDIT_DOCUMENT = "Redagowanie dokumentu"
DOC_OPTIONS = "Ustawienia dokumentu"
DOC_NAME = "Nazwa dokumentu: <br/> <small>(HTML & lt;title&gt;)</small>"
DOC_URL = "Pseudonim dokumentu: <br /> <small> (SEO alias) </small>"
DOC_NAME = "Nazwa dokumentu: <br/> <small>(HTML & lt;title&gt;)</small>"
DOC_URL = "Pseudonim dokumentu: <br /> <small> (SEO alias) </small>"
DOC_URL_LINK = "Podstawianie aliasów"
DOC_URL_INFO = "<strong> Aby link na dokument wyglądał, na przykład, tak: </strong> <br /> http : <br /> //www.domain.tld/phone/samsung/<br />zapisz w tym oknie: phone/samsung <br /> <br /> Przyrostek linku jest dodawany automatycznie przy wyprowadzeniu <br /> według ustawień określonych w pliku inc/config.php <br /> <br /><strong> W tytule pozwolone jest wykorzystanie: </strong><br /> a-z liter łacińskich; <br />а-я - znaków cyrylicy <small> (jeśli jest to dozwolone) </small>; <br /> / - ukośnik; <br /> - — kreska <br /> _ - <br /> <br /> znak podkreślenia. <strong> Tytuł linku nie powinien zawierać:</strong> <br /> print / <small> lub </small> / print / <small> lub </small> / print; <br /> page-XX / <small> lub </small> / page-XX / <small> lub </small> / page-XX ; <br /> Apage-XX / <small> lub </small> / Apage-XX / <small> lub </small> / Apage-XX ; <br /> artpage-XX / <small> lub </small> / artpage-XX / <small> lub </small> / artpage-XX ; <br /> gdzie xx - cyfry "
DOC_URL_INFO = "<strong> Aby link na dokument wyglądał, na przykład, tak: </strong> <br /> http: <br /> //www.domain.tld/phone/samsung/<br />zapisz w tym oknie: phone/samsung <br /> <br /> Przyrostek linku jest dodawany automatycznie przy wyprowadzeniu <br /> według ustawień określonych w pliku inc/config.php <br /> <br /><strong> W tytule pozwolone jest wykorzystanie: </strong><br /> a-z liter łacińskich; <br />а-я - znaków cyrylicy <small> (jeśli jest to dozwolone) </small>; <br /> / - ukośnik; <br /> - — kreska <br /> _ - <br /> <br /> znak podkreślenia. <strong> Tytuł linku nie powinien zawierać:</strong> <br /> print / <small> lub </small> / print / <small> lub </small> / print; <br /> page-XX / <small> lub </small> / page-XX / <small> lub </small> / page-XX ; <br /> Apage-XX / <small> lub </small> / Apage-XX / <small> lub </small> / Apage-XX ; <br /> artpage-XX / <small> lub </small> / artpage-XX / <small> lub </small> / artpage-XX ; <br /> gdzie xx - cyfry "
DOC_URL_LOG = "Wykorzystać historię aliasów, dlia przekierowaninia"
DOC_URL_LOG_T = "Zapisywać lub nie zapisywać historię aliasów dokumentu dla następnego przekierowania"
DOC_URL_LOG_RUBRIC = "Używać ustawienia rubryki"
@@ -68,8 +68,8 @@ DOC_URL_LOG_NOTUSE = "Nie wykorzystywać"
DOC_QUERIES = "Dostępne zapytania"
DOC_META_TITLE = " TITLE (TYTUŁ) to szereg, który będzie wyświetlany na pasku tytułowym przeglądarki, znacznik ten ma istotne znaczenie dla optymizacji wyszukiwarek, dla tego system pozwala nim kierować, a także kilkoma innymi znacznikami."
DOC_META_KEYWORDS = "Słowa kluczowe: <br /> <small> (meta keywords) </small>"
DOC_META_KEYWORDS_INFO = "<strong> opisują zawartość strony, magą być uwzględnione przez wyszukiwarki. </strong> <br /> <br /> <small> Niektóre z tych słów muszą być obece w tekście strony. </small>"
DOC_META_DESCRIPTION = "Opis strony: <br /> <small> (meta opis) </small>"
DOC_META_KEYWORDS_INFO = "<strong> opisują zawartość strony, magą być uwzględnione przez wyszukiwarki. </strong> <br /> <br /> <small> Niektóre z tych słów muszą być obece w tekście strony. </small>"
DOC_META_DESCRIPTION = "Opis strony: <br /> <small> (meta opis) </small>"
DOC_META_DESCRIPTION_INFO = "Mały tekst, który opisuje zawartość strony, może również zostać uznany przez wyszukiwarki, wyprowadza się jako wyjaśnienie w wynikach wyszukiwania lub katalogów internetowych."
DOC_CAN_SEARCH = "Pozwól na przeszukiwanie w dokumencie: <br /> <small> (dla modułu wyszukiwanie) </small>"
DOC_INDEX_TYPE = "Typ indeksowania strony":<br /><small>(meta robots)</small>"
@@ -131,18 +131,18 @@ DOC_NOTICE_TEXT = "Notatka"
DOC_BUTTON_ADD_NOTICE = "Dodaj notatkę"
DOC_SEND_NOTICE_INFO = "Aby dodać nową notatkę do dokumentu, proszę, wypełnij pola w poniższym formularzu."
DOC_NEW_NOTICE_TITLE = "Dodaj nową notatkę"
DOC_MAIL_BODY_CHECK = "Użytkownik %USER% dodał nowy dokument o nazwie %TITLE%".% N % Proszę sprawdzić ten dokument przed publikacją."
DOC_MAIL_BODY_CHECK = "Użytkownik %USER% dodał nowy dokument o nazwie %TITLE%".% N% Proszę sprawdzić ten dokument przed publikacją."
DOC_MAIL_SUBJECT_CHECK = "Dodano nowy dokument"
DOC_MAIL_BODY_USER = "Witamy %USER%.%N% pomyślnie utworzony pzez Pana/Panią dokument był pomyślnie dodany, Administrator otrzymał powiadomienie o sprawdzeniu, po sprawdzeniu dokumentu, zostanie on opublikowany."
DOC_MAIL_SUBJECT_USER = "Dokument był dodany, czeka na sprawdzenie"
DOC_MAIL_BODY_NOTICE = "Użytkownik % USER% dodał nową notatkę do dokumentu %N% Autoryzuj się w Panelu sterowania, a następnie kliknij na link poniżej, aby zobaczyć notatkę:% N%" %% LINK
DOC_MAIL_SUBJECT_NOTICE = "Dodano nową notatkę do dokumentu"
DOC_NEW_PAGE = "Dodać nową stronę"
DOC_CLOSE_HELP_WINDOW = "<br /><br /><input type=\"button\" onclick=\"window.close()\" value=\" Zamknij okno \"/>"
DOC_CLOSE_HELP_WINDOW = "<br /><br /><input type=\"button\" onclick=\"window.close()\" value=\" Zamknij okno \"/>"
DOC_HELP = "Pomoc"
DOC_VIDEO_TYPE_HELP = "<strong> Dodanie pliku wideo </strong> <br /> Po dodaniu pliku wideo można określić szerokość i wysokość okna, aby obejrzeć wideo. Pierwsza wartość określa szerokość okna, druga - wysokość. <br /> <br /> na przykład: <br /> <br /> <b> video.avi | 300 | 300 </b> <br /> <br /> lub <b> video.avi | 100% | 300 </b>"
DOC_FLASH_TYPE_HELP = "<strong> Dodanie filmu Flash </strong> <br /> Po dodaniu filmu Flash, można określić szerokość i wysokość okna przy przeglądzie. Pierwsza wartość określa szerokość, druga wysokość <br /> <br /> na przykład: <br /> <br /> <b> flash.swf | 300 | 300 </b> <br /> <br /> lub <b> flash.swf | 100% | 300 </b> "
DOC_FILE_TYPE_HELP = " <strong> Dodanie pliku</strong> <br /> Po dodaniu pliku, można zadać nazwę linku. Dla tego po nazwie pliku należy podać znak rozpodzielczy | , a następnie wprowadźić nazwę linku <br /> <br /> na przykład: <br /> <br /> <b> file.zip | Pobierz plik </b> "
DOC_VIDEO_TYPE_HELP = "<strong> Dodanie pliku wideo </strong> <br /> Po dodaniu pliku wideo można określić szerokość i wysokość okna, aby obejrzeć wideo. Pierwsza wartość określa szerokość okna, druga - wysokość. <br /> <br /> na przykład: <br /> <br /> <b> video.avi | 300 | 300 </b> <br /> <br /> lub <b> video.avi | 100% | 300 </b>"
DOC_FLASH_TYPE_HELP = "<strong> Dodanie filmu Flash </strong> <br /> Po dodaniu filmu Flash, można określić szerokość i wysokość okna przy przeglądzie. Pierwsza wartość określa szerokość, druga wysokość <br /> <br /> na przykład: <br /> <br /> <b> flash.swf | 300 | 300 </b> <br /> <br /> lub <b> flash.swf | 100% | 300 </b> "
DOC_FILE_TYPE_HELP = " <strong> Dodanie pliku</strong> <br /> Po dodaniu pliku, można zadać nazwę linku. Dla tego po nazwie pliku należy podać znak rozpodzielczy | , a następnie wprowadźić nazwę linku <br /> <br /> na przykład: <br /> <br /> <b> file.zip | Pobierz plik </b> "
DOC_NO_PERMISSION = "Przepraszamy, ale nie masz uprawnień do edytowania tego dokumentu."
DOC_NO_PERMISSION_RUB = "Przepraszamy, ale nie jesteś upoważniony do utworzenia dokumentu w tej rubryce."
DOC_NO_DEL_REVISION = "Przepraszamy, ale nie jesteś upoważniony do usunięcia rewizji."
@@ -267,7 +267,7 @@ DOC_SEARCH_FIELD_TEXT = "Значення"
DOC_TEMPLATE_DEFAULT = "Використовувати по замовчуванню"
DOC_SHOW_LANG = "Показати"
// 3.2
# 3.2
DOC_TABS_META = "Meta дані"
DOC_TABS_URL = "URL документа"
DOC_TABS_DATE = "Дата публікації"

View File

@@ -76,7 +76,7 @@ MAIN_BUTTON_SEARCH = "Szukaj"
MAIN_TITLE_SEARCH = "Nazwa dokumentu"
MAIN_TITLE_DOC_NAME = "Nazwa dokumentu"
MAIN_TITLE_DOC_ID = "ID Dokumentu"
MAIN_SEARCH_HELP = <strong> Korzystanie z wyszukiwarki </strong> <br> Użyj znak & quot; <strong> + </strong> & quot; . dla wyraźnego włączenia słowa do wyszukiwarki. <br>Wykorzystaj znak & quot; <strong> - </strong> & quot; aby wykluczyć słowa z wyszukiwarki <br> obowiązkowe jest używanie spacji przed znakami & quot; <strong> + </strong> & quot; i & quot; <strong> - </strong> & quot;."
MAIN_SEARCH_HELP = <strong> Korzystanie z wyszukiwarki </strong> <br> Użyj znak & quot; <strong> + </strong> & quot;. dla wyraźnego włączenia słowa do wyszukiwarki. <br>Wykorzystaj znak & quot; <strong> - </strong> & quot; aby wykluczyć słowa z wyszukiwarki <br> obowiązkowe jest używanie spacji przed znakami & quot; <strong> + </strong> & quot; i & quot; <strong> - </strong> & quot;."
MAIN_ID_SEARCH = "ID Dokumentu"
MAIN_SELECT_RUBRIK = "W rubryce"
MAIN_ALL_RUBRUKS = "Wszystkie rubryki"
@@ -112,7 +112,7 @@ MAIN_BROWSE_DOCUMENTS = "Popatrzeć w dokumentach"
MAIN_USERS_LIST = "Lista użytkowników"
MAIN_USER_ADD = "Dodaj nowego użytkownika"
MAIN_SEARCH_USERS = "Szukaj użytkowników po:"
MAIN_USER_PARAMS = "Imieniu, ID, E-mail, E-mail domena"
MAIN_USER_PARAMS = "Imieniu, ID, E-mail, E-mail domena"
MAIN_USER_STATUS = "Ze statusem"
MAIN_USER_STATUS_ALL = "Każdy status"
MAIN_USER_STATUS_ACTIVE = "Aktywny"
@@ -243,7 +243,7 @@ MAIN_ADD_USR = "Użytkownika"
MAIN_ADD_GRP = "Grupę"
MAIN_BRANCHES = "Sekcje"
MAIN_SHOWHIDE = "Pokaż / Ukryj menu"
MAIN_CODEMIRROR_HELP = "<strong> Ctrl- F / Cmd-F </strong> ( Szukaj) | <strong> Ctrl-G / Cmd-G </strong> ( Znajdź następny) | <strong> Shift-Ctrl -G / shift -Cmd-G </strong> (Znajdź poprzedni) | <strong> Shift-Ctrl -F / Cmd-Option-F </strong> ( Zamień) | <strong> Shift-Ctrl -R / Shift-Cmd-Option- F </strong> (Zamień wszystkie) | <strong> F11 </strong> (Pełny ekran) "
MAIN_CODEMIRROR_HELP = "<strong> Ctrl-F / Cmd-F </strong> (Szukaj) | <strong> Ctrl-G / Cmd-G </strong> (Znajdź następny) | <strong> Shift-Ctrl-G / shift-Cmd-G </strong> (Znajdź poprzedni) | <strong> Shift-Ctrl-F / Cmd-Option-F </strong> (Zamień) | <strong> Shift-Ctrl-R / Shift-Cmd-Option-F </strong> (Zamień wszystkie) | <strong> F11 </strong> (Pełny ekran) "
TEMPLATES_MESSAGE = "<strong> Wiadomość: </strong>"
TEMPLATES_CACHE_SUCCESS = "Pamięć podręczna została pomyślnie usunięta"
TEMPLATES_CACHE_SUCCESS_LOG = "Pamięć podręczna została wyczyszczona"
@@ -267,5 +267,5 @@ WRONG_CAPTCHA = "<strong> Błąd: </strong> <br /> Nieprawidłowy kod bezpiecze
oficial_site = "Strona oficjalna"
support = "Pomoc techniczna"
// 3.1.9
# 3.1.9
MAIN_BLOCKS = "Візуальні блоки"

View File

@@ -93,14 +93,14 @@ NAVI_ITEM_DELETE = "Usuń ten punkt menu"
NAVI_ITEM_DELETE_CONFIRM = "Czy na pewno chcesz usunąć ten punkt menu nawigacyjnego?"
// v 3.2
# v 3.2
NAVI_ALIAS = "Аліас"
NAVI_I = "Опціонально. Аліас дозволяє використовувати легкий для запам’ятовування тег [tag:sysblock:alias] замість [tag:sysblock:id]. Аліас не може бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення, мати довжину не більше 20 символів та бути унікальним у межах модуля"
NAVI_ACCEPT = "Цей аліас можна використовувати"
NAVI_ER_SYN = "Неправильний аліас!<br> Аліас не може бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення та мати довжину не більше 20 символів"
NAVI_ER_EXISTS = "Неправильний аліас!<br> Цей аліас уже прив’язаний до іншого меню"
//from templates
#from templates
NAVI_NOLINK_DOC = "Немає зв’язаного документа"
NAVI_EDIT_ITEM = "Редагування пункта меню"
NAVI_LINK_FILEDOC = "Зв’язати з документом/файлом"

View File

@@ -22,8 +22,8 @@ REQUEST_DATE_CREATE = "Data utworzenia"
REQUEST_ACTIONS = "Działania"
REQUEST_NO_DESCRIPTION = "Wniosek bez opisu"
REQUEST_NO_REQUST = "Wnioski nieobecne"
REQUEST_DATE_FORMAT = "%d.%m .%w r."
REQUEST_DATE_FORMAT2 = "%d.%m.% w r. w %H:%M"
REQUEST_DATE_FORMAT = "%d.%m.%w r."
REQUEST_DATE_FORMAT2 = "%d.%m.%w r. w %H:%M"
REQUEST_IN = "w"
REQUEST_COPY = "Kopiuj wniosek"
REQUEST_COPY_FAILED = "Nie można skopiować wniosek"
@@ -68,7 +68,7 @@ REQUEST_TEMPLATE_INFO = "W tym polu, stosując kod HTML, można określić proje
REQUEST_TEMPLATE_SAVED = "Wniosek pomyślnie zapisany"
REQUEST_SELECT_IN_LIST = "Proszę wybrać pole rubryki z listy poniżej"
REQUEST_RUB_INFO = "Znacznika systemowy, który jest odpowiedzialny za wyjście zawartośći pola rubryki. ID pola. Xxx-liczba znaków do wyświetlania".
REQUEST_LINK_INFO = "Znacznik systemowy, który określa odnośnik do dokumentu, na przykład &lt; a href = &quot;[tag:link]&quot;&gt;  odnośnik &lt; /a&gt;"
REQUEST_LINK_INFO = "Znacznik systemowy, który określa odnośnik do dokumentu, na przykład &lt; a href = &quot;[tag:link]&quot;&gt; odnośnik &lt; /a&gt;"
REQUEST_RUBRIK_FIELD = "Znacznik systemowy pola"
REQUEST_THUMBNAIL = "Znacznik jest odpowiedzialny za tworzenie miniatury (pod warunkiem, że w szablonie pola rubryki (szablon dla wyjścia we wniosku) jest wybrane wyjście: [tag: parametr:0])"
REQUEST_FIELD_NAME = "Nazwa pola"
@@ -126,8 +126,8 @@ REQUEST_DOCDATE_INFO = "Znacznik systemowy, który odpowiada dacie publikacji do
REQUEST_CDOCDATE_INFO = "Znacznik systemowy, który odpowiada dacie publikacji niniejszego dokumentu (w którym wywodzi się wniosek)"
REQUEST_DOCTIME_INFO = "Znacznik systemowy, który odpowiada odpowiada dacie i godzinie publikacji dokumentu"
REQUEST_CDOCTIME_INFO = "Znacznik systemowy, który odpowiada dacie i godzinie publikacji niniejszego dokumentu (którego wywodzi się wniosek)"
REQUEST_DATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - wygląd konfigurowany <br />. Przykład: [tag: data: DMY] <br /> Można używać dystrybutorów (spacja - /)"
REQUEST_CDATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - wygląd konfigurowany <br />. Przykład: [tag: data: DMY] <br /> ( W którym wywodzi się wniosek) <br /> Można używać dystrybutorów (spacja - / )".
REQUEST_DATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - wygląd konfigurowany <br />. Przykład: [tag: data: DMY]<br />Można używać dystrybutorów (spacja - /)"
REQUEST_CDATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - wygląd konfigurowany <br />. Przykład: [tag: data: DMY]<br /> (W którym wywodzi się wniosek) <br /> Można używać dystrybutorów (spacja - / )".
REQUEST_DOCAUTHOR_INFO = "Znacznik systemowy, który odpowiada autorowi dokumentu"
REQUEST_DOCAUTHOR_AVATAR = "Znacznik systemowy, który odpowiada awataru autora dokumentu"
REQUEST_CDOCAUTHOR_INFO = "Znacznik systemowy, który odpowiada autoru tego dokumentu (w którym wywodzi się wniosek)"
@@ -168,7 +168,7 @@ REQUEST_BY_PARENT = "Dokumentu nadrzędnemu"
REQUEST_SHOW_STAT = "Pokaż statystyki"
// v 3.1.9
# v 3.1.9
REQUEST_ALIAS = "Аліас"
REQUEST_I = "Опціонально. Аліас дозволяє використовувати легкий для запам’ятовування тег [tag:request:alias] замість [tag:request:id]. Аліас не повинен бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення, мати довжину не більше 20 символів та бути унікальним у межах модуля"
REQUEST_ACCEPT = "Цей Аліас можна використовувати"
@@ -178,7 +178,7 @@ REQUEST_HEADER_EXTERNAL = "Зовнішнє звернення"
REQUEST_EXTERNAL = "Дозволити зовнішнє звернення"
REQUEST_ONLY_AJAX = "Виконувати тільки по Ajax"
// v 3.2
# v 3.2
REQUEST_PAGINATION = "Посторінкова навігація"
REQUEST_NAVI_TPL = "Шаблон посторінкової навігації"
REQUEST_OTHER = "Інше"

View File

@@ -120,7 +120,7 @@ RUBRIK_FILED_TEMPLATE_F = "Szablon pola"
RUBRIK_DOCID_INFO = "Znacznik systemowy, identyfikator dokumentu"
RUBRIK_DOCDATE_INFO = "Znacznik systemowy, data publikacji dokumentu"
RUBRIK_DOCTIME_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu"
RUBRIK_DATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - konfigurowalny wygląd <br />. Przykład: [tag: data: Y] "
RUBRIK_DATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - konfigurowalny wygląd <br />. Przykład: [tag: data: Y]"
RUBRIK_DOCAUTHOR_INFO = "Znacznik systemowy, autor dokumentu"
RUBRIK_TITLE_INFO = "Znacznik systemowy, tytuł dokumentu"
RUBRIK_PATH_INFO = "Znacznik systemowy, ścieżki do instalacji root"
@@ -167,9 +167,9 @@ RUBRIK_TEMPLATES_KEYWORDS = "Słowa kluczowe (Meta - słowa kluczowe)"
RUBRIK_TEMPLATES_DESCRIPTION = "Opis strony (Meta - Opis)"
RUBRIK_TEMPLATES_INDEXFOLLOW = "Typ indeksowania"
RUBRIK_TEMPLATES_PATH = "Ścieżka instalacji root"
RUBRIK_TEMPLATES_MEDIAPATH = "Ścieżka do folderu z szablonem (Przykład: [tag: mediapath] images / logo.gif)"
. RUBRIK_TEMPLATES_CSS = "Kompresuje kilka css-plików w jednym. Zwraca ścieżkę <br /> <b> FFF. </b> - nazwy plików oddzielone przecinkami <br> <b> P </b> - ścieżki do folderu z plikami nie są wymagane. Domyślne - [tag: mediapath] css / <br /> <i> Przykład: </i> href = & quot; [tag: CSS: reset.css, style.css] & quot; "
RUBRIK_TEMPLATES_JS = "Kompresuje kilka js-plików w jeden. Zwraca ścieżkę. <br> <b> FFF. </b> - nazwy plików oddzielone przecinkami <br> <b> P </b> ścieżki do folderu z plikami nie są wymagane. Domyślne - [tag: mediapath] js / <br /> <i> Przykład: </i> href = & quot; [tag: JS: common.js, main.js] & quot; "
RUBRIK_TEMPLATES_MEDIAPATH = "Ścieżka do folderu z szablonem (Przykład: [tag: mediapath] images /logo.gif)"
. RUBRIK_TEMPLATES_CSS = "Kompresuje kilka css-plików w jednym. Zwraca ścieżkę <br /> <b> FFF. </b> -nazwy plików oddzielone przecinkami <br> <b> P </b> -ścieżki do folderu z plikami nie są wymagane. Domyślne - [tag: mediapath] css /<br /> <i> Przykład: </i> href = & quot; [tag: CSS: reset.css, style.css] & quot; "
RUBRIK_TEMPLATES_JS = "Kompresuje kilka js-plików w jeden. Zwraca ścieżkę. <br> <b> FFF. </b> - nazwy plików oddzielone przecinkami <br> <b> P </b> ścieżki do folderu z plikami nie są wymagane. Domyślne - [tag: mediapath] js /<br /> <i> Przykład: </i> href = &quot; [tag: JS: common.js, main.js] & quot; "
RUBRIK_RUB_INFO = "Znacznik systemowy, co odpowiada za wyjście zawartości rubryki. Numer ID pola. XXX - liczba znaków do wyświetlania".
RUBRIK_SELECT_IN_LIST = "Proszę wybrać pole rubryki z poniższej listy"
RUBRIK_TEMPLATE_ITEMS = "Szablon projektu dla elementów wniosku"
@@ -180,15 +180,15 @@ RUBRIK_DOCDATE_INFO = "Znacznik systemowy, który odpowiada dacie publikacji nin
RUBRIK_CDOCDATE_INFO = "Znacznik systemowy, który odpowiada dacie publikacji niniejszego dokumentu (w którym wywodzi się wniosek)"
RUBRIK_DOCTIME_INFO = "Znacznik systemowy, który odpowiada dacie i godzinie publikacji dokumentu"
RUBRIK_CDOCTIME_INFO = "Znacznik systemow, który odpowiada dacie i godzinie publikacji niniejszego dokumentu (w którym wywodzi się wniosek)"
RUBRIK_DATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - konfigurowalny wygląd <br />. Przykład: [tag: data: DMY] <br /> Można używać systemów dystrybucyjnych (Spacja - /)"
RUBRIK_CDATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - konfigurowalny wygląd <br />. Przykład: [tag: data: DMY] <br /> (W którym wywodzi się wniosek) <br /> Można używać systemów dystrybucyjnych (spacja - / ) "
RUBRIK_DATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - konfigurowalny wygląd <br />. Przykład: [tag: data: DMY]<br /> Można używać systemów dystrybucyjnych (Spacja - /)"
RUBRIK_CDATE_INFO = "Znacznik systemowy, data i godzina publikacji dokumentu - konfigurowalny wygląd <br />. Przykład: [tag: data: DMY]<br /> (W którym wywodzi się wniosek) <br /> Można używać systemów dystrybucyjnych (spacja - / ) "
RUBRIK_DOCAUTHOR_INFO = "Znacznik systemowy, który odpowiada autoru dokumentu"
RUBRIK_DOCAUTHOR_AVATAR = "Znacznik systemowy, który odpowiada awataru autora dokumentu"
RUBRIK_CDOCAUTHOR_INFO = "Znacznik systemowy, który odpowiada autoru tego dokumentu (w którym wywodzi się wniosek)"
RUBRIK_VIEWS_INFO = "Znacznik systemowy, który pokazuje liczbę przeglądów dokumentu"
RUBRIK_COMMENTS_INFO = "Znacznik systemowy, który pokazuje liczbę przeglądów dokumentu <b> Uwaga! Działa tylko w module </b>"
RUBRIK_PATH = "Znacznik systemowy, identyfikujący instalacje root"
RUBRIK_MEDIAPATH = "Znacznik systemowy, który określa ścieżki do folderu z szablonem (Przykład: [TAG: mediapath] images / logo.gif)"
RUBRIK_MEDIAPATH = "Znacznik systemowy, który określa ścieżki do folderu z szablonem (Przykład: [TAG: mediapath] images /logo.gif)"
RUBRIK_THUMBNAIL = "Znacznik systemowy jest odpowiedzialny za tworzenie miniatury (Pod warunkiem, że w szablonie pola rubryki (szablon dla wyjścia do wniosku) wybrany hest wyjście: [tag: parametr: 0])"
RUBRIK_ALIAS_HEAD = "Przypisywanie aliasu w polu"
RUBRIK_ALIAS_HEAD_T = "Można używać tylko łacińskich liter i cyfr <br /> Przykład: <strong> header </strong>"

View File

@@ -43,12 +43,12 @@ SETTINGS_EMAIL_FOOTER = "Tekst podpisu"
SETTINGS_ERROR_PAGE = "Strona z błędem HTTP Page 404: Nie znaleziono strony"
SETTINGS_PAGE_DEFAULT = "(domyślnie ID: 2)"
SETTINGS_TEXT_PERM = "Tekst wiadomości, jeśli użytkownik nie ma praw:"
SETTINGS_HIDDEN_TEXT = "Tekst wiadomości bez praw dostępu do informacji ukrytej znacznikiem <b>[tag: hide: x, x] ... [/ tag: hide]</b>"
SETTINGS_NAVI_BOX = "Kontener nawigacji stronicowanej: <br> <small> Przykład: & lt; ul & gt; % s & lt; / ul & gt; </small>"
SETTINGS_LINK_BOX = "Kontener dla elementów nawigacji stronicowanej: <br> <small> Przykład: & lt; li & gt; % s & lt; / li & gt; </small>"
SETTINGS_TOTAL_BOX = "Kontener dla tekstu przed numerami stron: <br> <small> Przykład: & lt; span & gt; % s & lt; / span & gt; </small>"
SETTINGS_HIDDEN_TEXT = "Tekst wiadomości bez praw dostępu do informacji ukrytej znacznikiem <b>[tag: hide:x, x] ... [/ tag: hide]</b>"
SETTINGS_NAVI_BOX = "Kontener nawigacji stronicowanej: <br> <small> Przykład: & lt; ul & gt; % s & lt; / ul & gt; </small>"
SETTINGS_LINK_BOX = "Kontener dla elementów nawigacji stronicowanej: <br> <small> Przykład: & lt; li & gt; % s & lt; / li & gt; </small>"
SETTINGS_TOTAL_BOX = "Kontener dla tekstu przed numerami stron: <br> <small> Przykład: & lt; span & gt; % s & lt; / span & gt; </small>"
SETTINGS_ACTIVE_LINK_BOX = "Kontener dla aktywnego elementu: <br> <small> Przykład: & lt; span class ="aktywny"& gt;% s & lt; / span & gt; </small>"
SETTINGS_PAGE_SEPAR = "Kontener dla metki obecności stron: <br><small> Przykład: & lt; li & gt; % s & lt; / li & gt; </small>"
SETTINGS_PAGE_SEPAR = "Kontener dla metki obecności stron: <br><small> Przykład: & lt; li & gt; % s & lt; / li & gt; </small>"
SETTINGS_PAGE_BEFORE = "Tekst przed numerami stron: <br><small> Przykład: Strona%d od %d</small>"
SETTINGS_PAGE_START = "Tekst odnośnika &quot; Pierwsza& quot;:"
SETTINGS_PAGE_END = " Tekst odnośnika &quot;Ostatnia&quot;:"
@@ -103,7 +103,7 @@ SETTINGS_CACHE_LIFETIME = "Uwaga!!! Włączono dodanie do pamięci podręcznej w
// v3.2
# v3.2
SETTINGS_PAGINATION = "Налаштування пагінації"
PAGINATION_ADD = "Створити шаблон пагінації"
PAGINATION_NAME = "Найменування"

View File

@@ -62,7 +62,7 @@ SYSBLOCK_ERROR = "Błąd"
SYSBLOCK_SUCCESS = "Gotowe"
// v 3.2
# v 3.2
SYSBLOCK_DESCRIPTION = "Короткий опис"
SYSBLOCK_ALIAS = "Аліас"
SYSBLOCK_I = "Опціонально. Аліас дозволяє використовувати легкий для запам’ятовування тег [tag:sysblock:alias] замість [tag:sysblock:id]. Аліас не повинен бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення, мати довжину не більше 20 символів та бути унікальним у межах цих блоків"

View File

@@ -9,7 +9,7 @@ TEMPLATES_NAME3 = "Wprowadź nazwę szablonu"
TEMPLATES_AUTHOR = "Author"
TEMPLATES_DATE = "Utworzony"
TEMPLATES_ACTION = "Działania"
TEMPLATES_DATE_FORMAT = "%d.%m.%y r."
TEMPLATES_DATE_FORMAT = "%d.%m.%yr."
TEMPLATES_DATE_FORMAT2 = "%H:%M"
TEMPLATES_IN = "w"
TEMPLATES_EDIT = "Edytuj szablon"
@@ -62,8 +62,8 @@ TEMPLATES_INDEXFOLLOW = "Typ indeksowania"
TEMPLATES_CANONICAL = "Strona kanoniczna to zalecana kopia z zestawu stron o bardzo podobnej treści."
TEMPLATES_PATH = "Ścieżka instalacji root"
TEMPLATES_MEDIAPATH = "Ścieżki do folderu z szablonem (Przykład: [znacznik:mediapath]images/logo.gif)"
TEMPLATES_CSS = "Kompresuje kilka css-plików w jednym. Zwraca ścieżkę. <br /><b> FFF</b> - nazwy plików oddzielone przecinkami <br /><b> P </b> - ścieżki do folderu z plikami, nie jest wymagane. Domyślne - [znacznik: mediapath] css / <br> <i> Przykład: </ i> href =&quot;[znacznik: CSS: reset.css, style.css]&quot;"
TEMPLATES_JS = "Kompresuje kilka js-plików w jeden. Zwraca ścieżkę. <br /><b> FFF</b> - nazwy plików oddzielone przecinkami <br /><b> P </b> - ścieżki do folderu z plikami, nie jest wymagane. Domyślne - [znacznik:mediapath]js/<br /><i> Przykład:</i> href =&quot;[znacznik: JS: common.js, main.js] & quot;"
TEMPLATES_CSS = "Kompresuje kilka css-plików w jednym. Zwraca ścieżkę. <br /><b> FFF</b> - nazwy plików oddzielone przecinkami <br /><b> P </b> - ścieżki do folderu z plikami, nie jest wymagane. Domyślne - [znacznik: mediapath] css / <br> <i> Przykład: </ i> href =&quot;[znacznik: CSS: reset.css, style.css]&quot;"
TEMPLATES_JS = "Kompresuje kilka js-plików w jeden. Zwraca ścieżkę. <br /><b> FFF</b> - nazwy plików oddzielone przecinkami <br /><b> P </b> - ścieżki do folderu z plikami, nie jest wymagane. Domyślne - [znacznik:mediapath]js/<br /><i> Przykład:</i> href =&quot;[znacznik: JS: common.js, main.js] & quot;"
TEMPLATES_MEDIAPATH = "Ścieżki do folderu z szablonem (Przykład: [znacznik: mediapath]images/logo.gif)"
TEMPLATES_MAINCONTENT = "Znacznik dla głównej treści"
TEMPLATES_QUICKFINDER = "Menu kontekstowe szybkiej nawigacji"

View File

@@ -72,9 +72,9 @@ USER_ERROR_FIRSTNAME = "Pole imię użytkownika zawiera nieprawidłowe znaki."
USER_ERROR_USERNAME = "Pole login zawiera nieprawidłowe znaki."
USER_NO_LASTNAME = "Pole nazwisko użytkownika jest puste. Proszę podać nazwisko użytkownika"
USER_ERROR_LASTNAME = "Pole nazwisko użytkownika zawiera nieprawidłowe znaki."
USER_MAIL_BODY1 = "Witaj %USER%,% N %% N %"
USER_MAIL_BODY1 = "Witaj %USER%,% N %% N%"
USER_MAIL_BODY2 = "Twoje konto zostało aktywowane. Proszę używać hasła dostępu dla wejęćia na stronę intwrnetową %HOST%."
USER_MAIL_FOOTER = "%NN%% Z poważaniem, %HOMEPAGENAME%%%%NN%% HOST%"
USER_MAIL_FOOTER = "%NN%% Z poważaniem, %HOMEPAGENAME%%%%NN%%HOST%"
USER_MAIL_SUBJECT = "Twoje konto zostało aktywowane"
USER_MAIL_PASSWORD = "Informacja o zmianię hasła"
USER_MAIL_PASSWORD2 = "Meldujemy o zresetowaniu hasła % N% N %% Nowe hasło: %NEWPASS%"

View File

@@ -60,7 +60,7 @@ BLOCK_SAVED_ERR = "Не удалось сохранить визуальный
BLOCK_ERROR = "Ошибка"
BLOCK_SUCCESS = "Выполнено"
// v 3.2
# v 3.2
BLOCK_DESCRIPTION = "Краткое описание"
BLOCK_ALIAS = "Алиас"
BLOCK_I = "Опционально. Алиас позволяет использовать легко запоминающийся тег [tag:BLOCK:alias] вместо [tag:BLOCK:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах данных блоков"

View File

@@ -127,6 +127,7 @@ DOC_BUTTON_NOTICE = "Выполнить"
DOC_NOTICE_TITLE = "Заголовок:"
DOC_NOTICE_TEXT = "Заметка:"
DOC_BUTTON_ADD_NOTICE = "Добавить заметку"
DOC_NOTICE_DELETE_ALL = "Удалить все заметки"
DOC_SEND_NOTICE_INFO = "Для того, чтобы добавить новую заметку к документу, пожалуйста, заполните поля в форме ниже."
DOC_NEW_NOTICE_TITLE = "Добавить новую заметку"
DOC_MAIL_BODY_CHECK = "Пользователь %USER% добавил новый документ с названием '%TITLE%'.%N%Пожалуйста, проверьте данный документ перед публикацией."
@@ -286,7 +287,7 @@ DOC_SEARCH_FIELD_TEXT = "Значение"
DOC_TEMPLATE_DEFAULT = "Использовать по умолчанию"
DOC_SHOW_LANG = "Показать"
// 3.2
# 3.2
DOC_TABS_META = "Meta данные"
DOC_TABS_URL = "URL документа"
DOC_TABS_DATE = "Дата публикации"
@@ -301,10 +302,10 @@ DOC_LANG = "Язык"
DOC_LANG_ID = "Язык документа:"
DOC_LANG_SELECT = "Выберите язык"
// 3.25
# 3.25
DOC_CLOSE_SEARCH_RUBRIC = "Вернуться в раздел, учитывая параметры поиска"
// 3.26
# 3.26
DOC_POSITION = "Позиция"
DOCUMENT_POSITION = "Позиция документа"
DOCUMENT_POSITION_ERR = "Не удалось сохранить позицию документа"

View File

@@ -299,8 +299,6 @@ WRONG_CAPTCHA = "<strong>Ошибка:</strong><br />Неправильный з
oficial_site = "Официальный сайт"
support = "Служба технической поддержки"
// 3.1.9
MAIN_BLOCKS = "Визуальные блоки"
// 3.27
MAIN_SETTINGS_SHOWCACHE = "Подробные данные"

View File

@@ -93,14 +93,14 @@ NAVI_ITEM_EDIT = "Редактировать пункт меню"
NAVI_ITEM_DELETE = "Удалить данный пункт меню"
NAVI_ITEM_DELETE_CONFIRM = "Вы уверены, что хотите удалить данный пукт меню навигации?"
// v 3.2
# v 3.2
NAVI_ALIAS = "Алиас"
NAVI_I = "Опционально. Алиас позволяет использовать легко запоминающийся тег [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах модуля"
NAVI_ACCEPT = "Этот алиас можно использовать"
NAVI_ER_SYN = "Неверный алиас!<br> Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание и иметь длину не более 20 символов"
NAVI_ER_EXISTS = "Неверный алиас!<br> Данный алиас уже привязан к другому меню"
//from templates
# from templates
NAVI_NOLINK_DOC = "Нет связанного документа"
NAVI_EDIT_ITEM = "Редактирование пункта меню"
NAVI_LINK_FILEDOC = "Связать с документом/файлом"

View File

@@ -183,7 +183,7 @@ REQUEST_REPORT_ERR_RUBRIC= "Не выбрана рубрика"
REQUEST_BY_PARENT = "Родительскому документу"
REQUEST_SHOW_STAT = "Показать статистику"
// v 3.1.9
# v 3.1.9
REQUEST_ALIAS = "Алиас"
REQUEST_I = "Опционально. Алиас позволяет использовать легко запоминающийся тег [tag:request:alias] вместо [tag:request:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах модуля"
REQUEST_ACCEPT = "Этот алиас можно использовать"
@@ -193,7 +193,7 @@ REQUEST_HEADER_EXTERNAL = "Внешнее обращение"
REQUEST_EXTERNAL = "Разрешить внешнее обращение"
REQUEST_ONLY_AJAX = "Выполнять только по Ajax"
// v 3.2
# v 3.2
REQUEST_PAGINATION = "Постраничная навигация"
REQUEST_NAVI_TPL = "Шаблон постраничной навигации"
REQUEST_OTHER = "Прочее"
@@ -202,13 +202,13 @@ REQUEST_DOC_ON_PAGE = "Число элементов запроса на ст
REQUEST_PAGES_CURENT = "Номер страницы пагинации"
REQUEST_PAGES_TOTAL = "Общее кол-во страниц пагинации"
// v 3.24
# v 3.24
REQUEST_COUNT_ITEMS = "Выводить в тег [tag:doctotal] кол-во элементов, когда не используется постраничная навигация"
// v 3.26
# v 3.26
REQUEST_BY_POSITION = "Позиция документа"
// v 4.0
# v 4.0
REQUEST_SORT_TITEL = "Сортировка вывода запросов по параметрам или полям документа. Количество запросов на одной странице"
REQUEST_SORT_BY_I = "Сортировка по параметру документа возможна только тогда, когда в выпадающем списке 'Сортировать по полю документа' выбрано пустое значение."
REQUEST_SORT_BY_I_2 = "Сортировка по полю документа работает после выбора любого, кроме пустого значения, значение выбранное в выпадающем списке 'Сортировка по параметру документа' будет игнорироваться."

View File

@@ -280,7 +280,7 @@ RUBRIC_TMPLS_INNAME = "Введите наименование шабл
RUBRIC_TEMPL_REPORT = "Отредактировал дополнительный шаблон рубрики"
RUBRIC_TMPLS_LOG_DEL = "Удалил дополнительный шаблон рубрики"
// 3.24
# 3.24
RUBRIC_WARNING_TIP = "Внимание! Пожалуйста, будьте предельно внимательны и помните, что неверные параметры могут сделать систему неработоспособной."
RUBRIK_EDIT_FIELDS = "Управление полями"

View File

@@ -115,7 +115,7 @@ SETTINGS_COUNT_DELETED_ERR = "Не удалось обнулить поднев
SETTINGS_COUNT_UPDATE = "Обнулили подневный счетчик документов"
SETTINGS_CACHE_LIFETIME = "Внимание!!! Включено кеширование запроса к настройкам системы. Изменения вступят в силу, только после окончания времени жизни кеша или отключения кеширования"
// v3.2
# v3.2
SETTINGS_PAGINATION = "Настройка пагинации"
PAGINATION_ADD = "Создать шаблон пагинации"
PAGINATION_NAME = "Наименование"
@@ -141,7 +141,7 @@ pagination_end_label = "Текст ссылки "Последняя""
pagination_next_label = "Текст ссылки "Следующая""
pagination_prev_label = "Текст ссылки "Предыдущая""
// v3.24
# v3.24
SETTINGS_SAVED_ERR_FILE = "Ошибка при сохранении файла. Попробуйте снова."
SETTINGS_SAVED_FILE = "Файл успешно сохранен."
SETTINGS_FILE_EDIT_H = "Редактирование файла"
@@ -149,7 +149,7 @@ SETTINGS_FILE_CONTENT = "Содержимое файла:"
SETTINGS_FILE_ROBOTS = "Файл robots.txt"
SETTINGS_FILE_CUSTOM = "Файл func.custom.php"
// v3.25
# v3.25
_const_auth = "Авторизация"
_const_url = "Формирование URL"
_const_themes = "Оформление"
@@ -166,7 +166,7 @@ _const_request = "Запросы"
_const_database = "База данных"
_const_other = "Прочее"
// 3.27
# 3.27
SETTINGS_CACHE_TITLE = "Работа с кешем"
SETTINGS_SHOWCACHE = "Управление кешем"
SETTINGS_CACHE_H_TITLE = "Тип кеша"
@@ -189,4 +189,5 @@ SETTINGS_CACHE_T_MODULES = "Данные модулей"
SETTINGS_CACHE_T_QUERIES = "Данные запросов"
SETTINGS_CACHE_T_DOCS = "Данные документов"
SETTINGS_CACHE_T_COMPILED = "Данные скомпилированных документов"
SETTINGS_CACHE_T_COMPILED = "Данные скомпилированных документов"
SETTINGS_LANG_FLAG = "Флаг"

View File

@@ -67,7 +67,7 @@ SYSBLOCK_ERROR = "Ошибка"
SYSBLOCK_SUCCESS = "Выполнено"
// v 3.2
# v 3.2
SYSBLOCK_DESCRIPTION = "Краткое описание"
SYSBLOCK_ALIAS = "Алиас"
SYSBLOCK_I = "Опционально. Алиас позволяет использовать легко запоминающийся тег [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание, иметь длину не более 20 символов и быть уникальным в пределах модуля"
@@ -75,7 +75,7 @@ SYSBLOCK_ACCEPT = "Этот алиас можно использовать"
SYSBLOCK_ER_SYN = "Неверный алиас!<br> Алиас не должен являться числом, может содержать только цифры, латинские буквы, дефис, подчёркивание и иметь длину не более 20 символов"
SYSBLOCK_ER_EXISTS = "Неверный алиас!<br> Данный алиас уже привязан к другоому системному блоку"
// v 3.26
# v 3.26
SYSBLOCK_EVAL = "Выполнять PHP перед возвращением результата"
SYS_GROUP_NO_TITLE = "Без группы"
SYS_GROUP_NO_DESCRIPTION = "Описание отсутвует"

View File

@@ -286,7 +286,7 @@ DOC_SEARCH_FIELD_TEXT = "Значення"
DOC_TEMPLATE_DEFAULT = "Використовувати по замовчуванню"
DOC_SHOW_LANG = "Показати"
// 3.2
# 3.2
DOC_TABS_META = "Meta дані"
DOC_TABS_URL = "URL документа"
DOC_TABS_DATE = "Дата публікації"
@@ -297,15 +297,15 @@ DOC_SAVE_ADD = "Додав"
DOC_SAVE_EDIT = "Відредагував"
DOC_SAVE_LOG_DOC = " документ"
/* new */
# /* new */
DOC_LANG = "Мова"
DOC_LANG_ID = "Мова документа:"
DOC_LANG_SELECT = "Оберіть мову"
// 3.25
# 3.25
DOC_CLOSE_SEARCH_RUBRIC = "Повернутися у розділ, враховуючи параметри пошуку"
// 3.26
# 3.26
DOC_POSITION = "Позиція"
DOCUMENT_POSITION = "Позиція документа"
DOCUMENT_POSITION_ERR = "Не вдалося зберегти позицію документа"

View File

@@ -301,5 +301,5 @@ WRONG_CAPTCHA = "<strong>Помилка:</strong><br />Неправильний
oficial_site = "Офіційний сайт"
support = "Служба технічної підтримки"
// 3.1.9
# 3.1.9
MAIN_BLOCKS = "Візуальні блоки"

View File

@@ -96,14 +96,14 @@ NAVI_ITEM_DELETE = "Видалити цей пункт меню"
NAVI_ITEM_DELETE_CONFIRM = "Ви впевнені, що бажаєте видалити цей пукт меню навігації?"
// v 3.2
# v 3.2
NAVI_ALIAS = "Аліас"
NAVI_I = "Опціонально. Аліас дозволяє використовувати легкий для запам’ятовування тег [tag:sysblock:alias] замість [tag:sysblock:id]. Аліас не може бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення, мати довжину не більше 20 символів та бути унікальним у межах модуля"
NAVI_ACCEPT = "Цей аліас можна використовувати"
NAVI_ER_SYN = "Неправильний аліас!<br> Аліас не може бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення та мати довжину не більше 20 символів"
NAVI_ER_EXISTS = "Неправильний аліас!<br> Цей аліас уже прив’язаний до іншого меню"
//from templates
# from templates
NAVI_NOLINK_DOC = "Немає зв’язаного документа"
NAVI_EDIT_ITEM = "Редагування пункта меню"
NAVI_LINK_FILEDOC = "Зв’язати з документом/файлом"
@@ -129,6 +129,6 @@ NAVI_ITEM_ODD = "непарний"
NAVI_TAG = "Тег для вставки пунктів"
NAVI_LAVEL_TEMPL = "Шаблон рівня"
NAVI_CONDITIONS = "Умови"
/**/
# /**/
NAVI_CLOSE = "Закрити"
NAVI_ADD_AFTER = "Додати після"

View File

@@ -177,7 +177,7 @@ REQUEST_SHOW_STAT = "Показати статистику"
// v 3.1.9
# v 3.1.9
REQUEST_ALIAS = "Аліас"
REQUEST_I = "Опціонально. Аліас дозволяє використовувати легкий для запам’ятовування тег [tag:request:alias] замість [tag:request:id]. Аліас не повинен бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення, мати довжину не більше 20 символів та бути унікальним у межах модуля"
REQUEST_ACCEPT = "Цей Аліас можна використовувати"
@@ -187,7 +187,7 @@ REQUEST_HEADER_EXTERNAL = "Зовнішнє звернення"
REQUEST_EXTERNAL = "Дозволити зовнішнє звернення"
REQUEST_ONLY_AJAX = "Виконувати тільки по Ajax"
// v 3.2
# v 3.2
REQUEST_PAGINATION = "Посторінкова навігація"
REQUEST_NAVI_TPL = "Шаблон посторінкової навігації"
REQUEST_OTHER = "Інше"
@@ -196,8 +196,8 @@ REQUEST_DOC_ON_PAGE = "Число елементів запиту на сто
REQUEST_PAGES_CURENT = "Номер сторінки пагінації"
REQUEST_PAGES_TOTAL = "Загальна кількість сторінок пагінації"
// v 3.24
# v 3.24
REQUEST_COUNT_ITEMS = "Отримувати кількість елементів (якщо не використовується посторінкова навігація)"
// v 3.26
# v 3.26
REQUEST_BY_POSITION = "Позиція документа"

View File

@@ -279,7 +279,7 @@ RUBRIC_TMPLS_INNAME = "Введіть назву шаблона"
RUBRIC_TEMPL_REPORT = "Відредагував додатковий шаблон рубрики"
RUBRIC_TMPLS_LOG_DEL = "Видалив додатковий шаблон рубрики"
// 3.24
# 3.24
RUBRIC_WARNING_TIP = "Увага! Будь ласка, будьте максимально уважні та пам'ятайте, що неправильні параметри можуть зробити систему непрацеспроможною."
RUBRIK_EDIT_FIELDS = "Керування полями"

View File

@@ -108,7 +108,7 @@ SETTINGS_COUNT_DELETED_ERR = "Не вдалося обнулити поденн
SETTINGS_COUNT_UPDATE = "Обнулено поденний лічильник документів"
SETTINGS_CACHE_LIFETIME = "Увага!!! Увімкнено кешування запиту до налаштувань системи. Зміни набудуть чинності, тільки після закінчення часу життя кеша або відключення кешування"
// v3.2
# v3.2
SETTINGS_PAGINATION = "Налаштування пагінації"
PAGINATION_ADD = "Створити шаблон пагінації"
PAGINATION_NAME = "Найменування"
@@ -134,7 +134,7 @@ pagination_end_label = "Текст посилання “Остання”"
pagination_next_label = "Текст посилання “Наступна”"
pagination_prev_label = "Текст посилання “Попередня”"
// v3.24
# v3.24
SETTINGS_SAVED_ERR_FILE = "Помилка при збереженні файлу. Спробуйте ще раз."
SETTINGS_SAVED_FILE = "Файл успішно збережено."
SETTINGS_FILE_EDIT_H = "Редагування файлу"
@@ -142,7 +142,7 @@ SETTINGS_FILE_CONTENT = "Вміст файлу:"
SETTINGS_FILE_ROBOTS = "Файл robots.txt"
SETTINGS_FILE_CUSTOM = "Файл func.custom.php"
// v3.25
# v3.25
_const_auth = "Авторизація"
_const_url = "Формування URL"
_const_themes = "Оформлення"

View File

@@ -68,7 +68,7 @@ SYSBLOCK_SAVED_ERR = "Не вдалося зберегти системний
SYSBLOCK_ERROR = "Помилка"
SYSBLOCK_SUCCESS = "Виконано"
// v 3.2
# v 3.2
SYSBLOCK_DESCRIPTION = "Короткий опис"
SYSBLOCK_ALIAS = "Аліас"
SYSBLOCK_I = "Опціонально. Аліас дозволяє використовувати легкий для запам’ятовування тег [tag:sysblock:alias] замість [tag:sysblock:id]. Аліас не повинен бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення, мати довжину не більше 20 символів та бути унікальним у межах цих блоків"
@@ -76,7 +76,7 @@ SYSBLOCK_ACCEPT = "Цей аліас можна використовувати"
SYSBLOCK_ER_SYN = "Неправильний аліас!<br> Аліас не повинен бути числом, може містити тільки цифри, латинські літери, дефіс, підкреслення та мати довжину не більше 20 символів"
SYSBLOCK_ER_EXISTS = "Неправильний аліас!<br> Такий аліас уже прив’язаний до іншого системного блока"
// v 3.26
# v 3.26
SYSBLOCK_EVAL = "Виконувати PHP перед поверненням результату"
SYS_GROUP_NO_TITLE = "Без групи"
SYS_GROUP_NO_DESCRIPTION = "Опис відсутній"

View File

@@ -80,7 +80,7 @@
case 'itemedit':
if (check_permission_acp('navigation_edit'))
{
$AVE_Navigation->navigationItemEdit((int)$_REQUEST['navigation_item_id']);
$AVE_Navigation->navigationItemEdit((int)(isset($_REQUEST['navigation_item_id']) ? $_REQUEST['navigation_item_id'] : 0));
}
break;
@@ -129,7 +129,7 @@
case 'alias':
if (check_permission_acp('navigation_edit'))
{
echo $AVE_Navigation->navigationValidate($_REQUEST['alias'], (int)$_REQUEST['id']);
echo $AVE_Navigation->navigationValidate($_REQUEST['alias'], (int)(isset($_REQUEST['id']) ? $_REQUEST['id'] : 0));
}
exit;
}

View File

@@ -94,7 +94,7 @@ switch ($_REQUEST['action'])
case 'alias':
if (check_permission_acp('request_edit'))
{
echo $AVE_Request->requestValidate($_REQUEST['alias'], (int)$_REQUEST['id']);
echo $AVE_Request->requestValidate($_REQUEST['alias'], (int)($_REQUEST['id'] ?? 0));
}
exit;
}

View File

@@ -250,7 +250,7 @@
case 'fields':
if(check_permission_acp('rubric_edit'))
{
$AVE_Rubric->rubricFieldShow((int)$_REQUEST['Id'], $_REQUEST['ajax']);
$AVE_Rubric->rubricFieldShow((int)($_REQUEST['Id'] ?? 0), $_REQUEST['ajax'] ?? '');
}
break;

View File

@@ -68,7 +68,7 @@
}
break;
case 'language':
case 'language':
if(check_permission_acp('gen_settings_languages'))
{
if (isset($_REQUEST['func']))
@@ -106,6 +106,11 @@
case 'save':
$AVE_Settings->settingsLanguageEditSave();
exit;
// !!! ДОБАВЛЕНО !!!
case 'editlang':
$AVE_Settings->settingsLanguageEdit();
break;
}
}
else

View File

@@ -22,8 +22,8 @@
<li>
<a href="index.php?do=blocks&cp={$sess}" title="">{#BLOCK_LIST_LINK#}</a>
</li>
<li>{if $smarty.request.id != ''}{#BLOCK_EDIT_H#}{else}{#BLOCK_INSERT_H#}{/if}</li>
<li><strong class="code">{if $smarty.request.id != ''}{$block_name|escape}{else}{$smarty.request.block_name}{/if}</strong></li>
<li>{if isset($smarty.request.id) && $smarty.request.id != ''}{#BLOCK_EDIT_H#}{else}{#BLOCK_INSERT_H#}{/if}</li>
<li><strong class="code">{if isset($smarty.request.id) && $smarty.request.id != ''}{$block_name|escape}{else}{$smarty.request.block_name}{/if}</strong></li>
</ul>
</div>
</div>
@@ -31,7 +31,7 @@
<form id="block" action="index.php?do=blocks&action=save&cp={$sess}" method="post" class="mainForm">
<div class="widget first">
<div class="head">
<h5 class="iFrames">{if $smarty.request.id != ''}{#BLOCK_EDIT_H#}{else}{#BLOCK_INSERT_H#}{/if}</h5>
<h5 class="iFrames">{if isset($smarty.request.id) && $smarty.request.id != ''}{#BLOCK_EDIT_H#}{else}{#BLOCK_INSERT_H#}{/if}</h5>
</div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<col width="300">
@@ -42,14 +42,14 @@
<td><strong>{#BLOCK_NAME#}</strong></td>
<td colspan="3">
<div class="pr12">
<input name="block_name" class="mousetrap" type="text" value="{if $smarty.request.id != ''}{$block_name|escape}{else}{$smarty.request.block_name}{/if}" />
<input name="block_name" class="mousetrap" type="text" value="{if isset($smarty.request.id) && $smarty.request.id != ''}{$block_name|escape}{else}{if isset($smarty.request.block_name)}{$smarty.request.block_name}{/if}{/if}" />
</div>
</td>
</tr>
<tr>
<td>{#BLOCK_DESCRIPTION#}</td>
<td colspan="3">
<input name="block_description" type="text" id="block_description" value="{if $smarty.request.id != ''}{$block_description|escape}{else}{$smarty.request.block_description}{/if}" placeholder="{#BLOCK_DESCRIPTION#}">
<input name="block_description" type="text" id="block_description" value="{if isset($smarty.request.id) && $smarty.request.id != ''} {$block_description|escape}{else} {if isset($smarty.request.block_description)}{$smarty.request.block_description}{/if}{/if}" placeholder="{#BLOCK_DESCRIPTION#}">
</td>
</tr>
<tr>
@@ -60,8 +60,8 @@
</td>
<td colspan="3">
<div class="pr12">
<input type="text" name="block_alias" id="block_alias" value="{if $smarty.request.id != ''}{$block_alias|escape}{else}{$smarty.request.block_alias}{/if}" class="mousetrap" data-accept="{#BLOCK_ACCEPT#}" data-error-syn="{#BLOCK_ER_SYN#}" data-error-exists="{#BLOCK_ER_EXISTS#}" placeholder="{#BLOCK_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="block_alias_tag" value="[tag:block:{if $smarty.request.id != ''}{$block_alias|escape}{else}{$smarty.request.block_alias}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<input type="text" name="block_alias" id="block_alias" value="{if isset($smarty.request.id) && $smarty.request.id != ''}{$block_alias|escape}{else}{if isset($smarty.request.block_alias)}{$smarty.request.block_alias}{/if}{/if}" class="mousetrap" data-accept="{#BLOCK_ACCEPT#}" data-error-syn="{#BLOCK_ER_SYN#}" data-error-exists="{#BLOCK_ER_EXISTS#}" placeholder="{#BLOCK_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="block_alias_tag" value="[tag:block:{if isset($smarty.request.id) && $smarty.request.id != ''}{$block_alias|escape}{else}{if isset($smarty.request.block_alias)}{$smarty.request.block_alias}{/if}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<a style="text-align: center; padding: 5px 3px 4px 3px;" class="whiteBtn copyBtn" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#block_alias_tag">
<img style="margin-top: -3px; position: relative; top: 4px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13">
</a>
@@ -86,7 +86,7 @@
<div class="rowElem" id="saveBtn">
<div class="saveBtn">
{if $smarty.request.id != ''}
{if isset($smarty.request.id) && $smarty.request.id != ''}
<input type="hidden" name="id" value="{$sid}">
<input name="submit" type="submit" class="basicBtn" value="{#BLOCK_SAVEDIT#}" />
{else}

View File

@@ -52,8 +52,8 @@
{if $dir != '/'}
<div class="imageBlock0">
<div class="imageBlock1">
<div class="imageBlock"><a href="index.php?do=browser&type={$smarty.request.type|escape}&action=list&dir={$dirup}&target={$smarty.request.target|escape}"><img class="topDir" title="{#MAIN_MP_UP_LEVEL#}" src="{$tpl_dir}/images/folder_up.gif" alt="" border="0" width="{$max_size}" height="{$max_size}" /></a></div>
<div class="imageName" align="center"><a title="{#MAIN_MP_UP_LEVEL#}" href="index.php?do=browser&type={$smarty.request.type|escape}&action=list&dir={$dirup}&target={$smarty.request.target|escape}">..</a></div>
<div class="imageBlock"><a href="index.php?do=browser&type={$smarty.request.type|escape}&action=list&dir={$dirup}&target={$smarty.request.target|default:''|escape}"><img class="topDir" title="{#MAIN_MP_UP_LEVEL#}" src="{$tpl_dir}/images/folder_up.gif" alt="" border="0" width="{$max_size}" height="{$max_size}" /></a></div>
<div class="imageName" align="center"><a title="{#MAIN_MP_UP_LEVEL#}" href="index.php?do=browser&type={$smarty.request.type|escape}&action=list&dir={$dirup}&target={$smarty.request.target|default:''|escape}">..</a></div>
</div>
</div>
{/if}
@@ -61,7 +61,7 @@
{foreach from=$dirs item=dir_link key=dir_name}
<div class="imageBlock0">
<div class="imageBlock1">
<div class="imageBlock"><a href="{$dir_link}&target={$smarty.request.target|escape}"><img src="{$tpl_dir}/images/folder.gif" alt="" border="0" width="{$max_size}" height="{$max_size}" /></a></div>
<div class="imageBlock"><a href="{$dir_link}&target={$smarty.request.target|default:''|escape}"><img src="{$tpl_dir}/images/folder.gif" alt="" border="0" width="{$max_size}" height="{$max_size}" /></a></div>
<div class="imageName" align="center">{$dir_name}</div>
</div>
</div>
@@ -110,7 +110,7 @@
parent.window.$('.openDialog').prop(
{ldelim}
href: 'index.php?do=browser&type={$smarty.request.type|escape}&target={$smarty.request.target|escape}&action=upload&dir=' + parent.document.bForm.bDirName.value
href: 'index.php?do=browser&type={$smarty.request.type|escape}&target={$smarty.request.target|default:''|escape}&action=upload&dir=' + parent.document.bForm.bDirName.value
{rdelim});
{literal}
@@ -171,7 +171,7 @@
function(b){ldelim}
if (b){ldelim}
$.alerts._overlay('show');
parent.frames['zf'].location.href = 'index.php?do=browser&type={$smarty.request.typ|escape}&action=delfile&dir={$dir}&file=' + fName;
parent.frames['zf'].location.href = 'index.php?do=browser&type={$smarty.request.typ|default:''|escape}&action=delfile&dir={$dir}&file=' + fName;
$.alerts._overlay('hide');
{rdelim}
{rdelim}

View File

@@ -170,7 +170,7 @@
window.opener.CKEDITOR.tools.callFunction(funcNum, fileUrl);
{elseif $target=='navi'}
window.opener.document.getElementById('{$smarty.request.id|escape}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
window.opener.document.getElementById('{$smarty.request.id|default:null|escape}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
{elseif $target=='img_feld' || $target_img=='img_feld'}
let imgSource = '/' + '{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
@@ -201,10 +201,10 @@
{/if}
{elseif $target!='all'}
{if $smarty.request.fillout=='dl'}
{if isset($smarty.request.fillout) and $smarty.request.fillout == 'dl'}
window.opener.document.getElementById('{$smarty.request.target|escape}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
{else}
//window.opener.updatePreview();
{/if}
{/if}
setTimeout("self.close();", 100);

View File

@@ -5,7 +5,7 @@
<!-- Wrapper -->
<div class="wrapper">
<div class="widget">
<form action="index.php?do=browser&type={$smarty.request.typ|escape}&action=upload2&tval={$smarty.request.dir|escape}" method="post" enctype="multipart/form-data" name="upform" id="upform" style="display:inline;">
<form action="index.php?do=browser&type={$smarty.request.typ|default:''|escape}&action=upload2&tval={$smarty.request.dir|escape}" method="post" enctype="multipart/form-data" name="upform" id="upform" style="display:inline;">
<input name="fromuploader" type="hidden" id="fromuploader" value="1" />
<input name="target" type="hidden" value="{$smarty.request.target}" />
<fieldset>

View File

@@ -31,10 +31,13 @@ function ChangeRazd() {ldelim}
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<tr>
<td>
<select name="NewRubr" size="1" onchange="ChangeRazd();" style="width: 370px">
<select name="NewRubr" size="1" onchange="ChangeRazd();" style="width: 370px">
{foreach from=$rubrics item=rubric}
{if $rubric->Show==1}
<option value="{$rubric->Id}" {if ($smarty.request.NewRubr=='' && $smarty.request.rubric_id==$rubric->Id) || ($smarty.request.NewRubr!='' && $smarty.request.NewRubr==$rubric->Id)}selected{/if}>{$rubric->rubric_title|escape}</option>
<option value="{$rubric->Id}"
{* ИСПРАВЛЕНИЕ: Защищаем $smarty.request.NewRubr с помощью |default:'' *}
{if ($smarty.request.NewRubr|default:'' == '' && $smarty.request.rubric_id|default:0 == $rubric->Id) || ($smarty.request.NewRubr|default:'' != '' && $smarty.request.NewRubr|default:'' == $rubric->Id)}selected{/if}
>{$rubric->rubric_title|escape}</option>
{/if}
{/foreach}
</select>

View File

@@ -1,162 +1,179 @@
<form method="get" id="doc_search" action="index.php" class="mainForm">
<input type="hidden" name="do" value="docs" />
{if $smarty.request.action}<input type="hidden" name="action" value="{$smarty.request.action}" />
{/if}{if $smarty.request.target_title}<input type="hidden" name="target_title" value="{$smarty.request.target_title}" />
{/if}{if $smarty.request.target}<input type="hidden" name="target" value="{$smarty.request.target}" />
{/if}{if $smarty.request.doc}<input type="hidden" name="doc" value="{$smarty.request.doc}" />
{/if}{if $smarty.request.document_alias}<input type="hidden" name="document_alias" value="{$smarty.request.document_alias}" />
{/if}{if $smarty.request.idtitle}<input type="hidden" name="idtitle" value="{$smarty.request.idtitle}" />
{/if}{if $smarty.request.selurl}<input type="hidden" name="selurl" value="{$smarty.request.selurl}" />
{/if}{if $smarty.request.selecturl}<input type="hidden" name="selecturl" value="{$smarty.request.selecturl}" />
{/if}{if $smarty.request.idonly}<input type="hidden" name="idonly" value="{$smarty.request.idonly}" />
{/if}{if $smarty.request.sort}<input type="hidden" name="sort" value="{$smarty.request.sort}" />
{/if}{if $smarty.request.pop}<input type="hidden" name="pop" value="{$smarty.request.pop}" />
{/if}{if $smarty.request.CKEditor}<input type="hidden" name="CKEditor" value="{$smarty.request.CKEditor}" />
{/if}{if $smarty.request.CKEditorFuncNum}<input type="hidden" name="CKEditorFuncNum" value="{$smarty.request.CKEditorFuncNum}" />
{/if}{if $smarty.request.langCode}<input type="hidden" name="langCode" value="{$smarty.request.langCode}" />
{/if}{if $smarty.request.function}<input type="hidden" name="function" value="{$smarty.request.function}" />
{/if}<input type="hidden" name="TimeSelect" value="1" />
<input type="hidden" name="do" value="docs" />
{* БЕЗОПАСНОСТЬ PHP 8+: Всегда используем |default:'' и проверку !empty() *}
{if !empty($smarty.request.action)}<input type="hidden" name="action" value="{$smarty.request.action}" />
{/if}{if !empty($smarty.request.target_title)}<input type="hidden" name="target_title" value="{$smarty.request.target_title}" />
{/if}{if !empty($smarty.request.target)}<input type="hidden" name="target" value="{$smarty.request.target}" />
{/if}{if !empty($smarty.request.doc)}<input type="hidden" name="doc" value="{$smarty.request.doc}" />
{/if}{if !empty($smarty.request.document_alias)}<input type="hidden" name="document_alias" value="{$smarty.request.document_alias}" />
{/if}{if !empty($smarty.request.idtitle)}<input type="hidden" name="idtitle" value="{$smarty.request.idtitle}" />
{/if}{if !empty($smarty.request.selurl)}<input type="hidden" name="selurl" value="{$smarty.request.selurl}" />
{/if}{if !empty($smarty.request.selecturl)}<input type="hidden" name="selecturl" value="{$smarty.request.selecturl}" />
{/if}{if !empty($smarty.request.idonly)}<input type="hidden" name="idonly" value="{$smarty.request.idonly}" />
{/if}{if !empty($smarty.request.sort)}<input type="hidden" name="sort" value="{$smarty.request.sort}" />
{/if}{if !empty($smarty.request.pop)}<input type="hidden" name="pop" value="{$smarty.request.pop}" />
{/if}{if !empty($smarty.request.CKEditor)}<input type="hidden" name="CKEditor" value="{$smarty.request.CKEditor}" />
{/if}{if !empty($smarty.request.CKEditorFuncNum)}<input type="hidden" name="CKEditorFuncNum" value="{$smarty.request.CKEditorFuncNum}" />
{/if}{if !empty($smarty.request.langCode)}<input type="hidden" name="langCode" value="{$smarty.request.langCode}" />
{/if}{if !empty($smarty.request.function)}<input type="hidden" name="function" value="{$smarty.request.function}" />
{/if}<input type="hidden" name="TimeSelect" value="1" />
<div class="widget first">
<div class="head collapsible" id="opened"><h5>{#MAIN_SEARCH_DOCUMENTS#}</h5></div>
<div style="display: block;">
<div class="head collapsible" id="opened"><h5>{#MAIN_SEARCH_DOCUMENTS#}</h5></div>
<div style="display: block;">
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<col width="150">
<col width="120">
<col width="160">
<col>
<col width="120">
<col>
<tr class="noborder">
<td rowspan="2"><strong>{#MAIN_TIME_PERIOD#}</strong></td>
<td>
<div class="pr12"><input id="document_published" name="document_published" type="text" value="{$smarty.request.document_published|date_format:"%d.%m.%Y"}" placeholder="{#MAIN_TIME_START#}" /></div>
</td>
<td><strong>{#MAIN_TITLE_SEARCH#}&nbsp;<a href="javascript:void(0);" style="cursor:help;" class="topDir link" title="{#MAIN_SEARCH_HELP#}">[?]</a></strong></td>
<td>
<div class="pr12"><input type="text" name="QueryTitel" value="{$smarty.request.QueryTitel|escape|stripslashes}" placeholder="{#MAIN_TITLE_DOC_NAME#}" /></div>
</td>
<td><strong>{#MAIN_SELECT_RUBRIK#}</strong></td>
<td>
<select name="rubric_id" id="rubric_id">
<option value="all">{#MAIN_ALL_RUBRUKS#}</option>
{foreach from=$rubrics item=rubric}
<option value="{$rubric->Id}" {if $smarty.request.rubric_id==$rubric->Id}selected{/if}>{$rubric->rubric_title|escape}</option>
{/foreach}
</select>
</td>
</tr>
<col width="150">
<col width="120">
<col width="160">
<col>
<col width="120">
<col>
<tr class="noborder">
<td rowspan="2"><strong>{#MAIN_TIME_PERIOD#}</strong></td>
<td>
{* ИСПРАВЛЕНИЕ: Используем стандартный блок {if}/{else} для безопасного присвоения значения даты. *}
{if !empty($smarty.request.document_published)}
{assign var="published_date_formatted" value=$smarty.request.document_published|date_format:"%d.%m.%Y"}
{else}
{assign var="published_date_formatted" value=''}
{/if}
<div class="pr12"><input id="document_published" name="document_published" type="text" value="{$published_date_formatted}" placeholder="{#MAIN_TIME_START#}" /></div>
</td>
<td><strong>{#MAIN_TITLE_SEARCH#}&nbsp;<a href="javascript:void(0);" style="cursor:help;"  class="topDir link" title="{#MAIN_SEARCH_HELP#}">[?]</a></strong></td>
<td>
<div class="pr12"><input type="text" name="QueryTitel" value="{$smarty.request.QueryTitel|default:''|escape|stripslashes}" placeholder="{#MAIN_TITLE_DOC_NAME#}" /></div>
</td>
<td><strong>{#MAIN_SELECT_RUBRIK#}</strong></td>
<td>
<select name="rubric_id" id="rubric_id">
<option value="all">{#MAIN_ALL_RUBRUKS#}</option>
{foreach from=$rubrics item=rubric}
<option value="{$rubric->Id}" {if !empty($smarty.request.rubric_id) && $smarty.request.rubric_id == $rubric->Id}selected{/if}>{$rubric->rubric_title|escape}</option>
{/foreach}
</select>
</td>
</tr>
<tr>
<td>
<div class="pr12"><input id="document_expire" name="document_expire" type="text" value="{$smarty.request.document_expire|date_format:"%d.%m.%Y"}" placeholder="{#MAIN_TIME_END#}" /></div>
</td>
<td><strong>{#MAIN_ID_SEARCH#}</strong></td>
<td><input style="width:80px" type="text" name="doc_id" value="{$smarty.request.doc_id|escape|stripslashes}" placeholder="{#MAIN_TITLE_DOC_ID#}" /></td>
<td><strong>{#MAIN_DOCUMENT_STATUS#}</strong></td>
<td>
<select name="status">
<option value="All">{#MAIN_ALL_DOCUMENTS#}</option>
<option value="Opened" {if $smarty.request.status == 'Opened'}selected{/if}>{#MAIN_DOCUMENT_ACTIVE#}</option>
<option value="Closed" {if $smarty.request.status == 'Closed'}selected{/if}>{#MAIN_DOCUMENT_INACTIVE#}</option>
<option value="Deleted" {if $smarty.request.status == 'Deleted'}selected{/if}>{#MAIN_TEMP_DELETE_DOCS#}</option>
</select>
</td>
</tr>
<tr>
<td>
{* ИСПРАВЛЕНИЕ: Используем стандартный блок {if}/{else} для безопасного присвоения значения даты. *}
{if !empty($smarty.request.document_expire)}
{assign var="expire_date_formatted" value=$smarty.request.document_expire|date_format:"%d.%m.%Y"}
{else}
{assign var="expire_date_formatted" value=''}
{/if}
<div class="pr12"><input id="document_expire" name="document_expire" type="text" value="{$expire_date_formatted}" placeholder="{#MAIN_TIME_END#}" /></div>
</td>
<td><strong>{#MAIN_ID_SEARCH#}</strong></td>
<td>
<input style="width:80px" type="text" name="doc_id" value="{$smarty.request.doc_id|default:''|escape|stripslashes}" placeholder="{#MAIN_TITLE_DOC_ID#}" />
</td>
<td><strong>{#MAIN_DOCUMENT_STATUS#}</strong></td>
<td>
<select name="status">
<option value="All">{#MAIN_ALL_DOCUMENTS#}</option>
<option value="Opened" {if !empty($smarty.request.status) && $smarty.request.status == 'Opened'}selected{/if}>{#MAIN_DOCUMENT_ACTIVE#}</option>
<option value="Closed" {if !empty($smarty.request.status) && $smarty.request.status == 'Closed'}selected{/if}>{#MAIN_DOCUMENT_INACTIVE#}</option>
<option value="Deleted" {if !empty($smarty.request.status) && $smarty.request.status == 'Deleted'}selected{/if}>{#MAIN_TEMP_DELETE_DOCS#}</option>
</select>
</td>
</tr>
{if $fields}
<tr>
<td>
<strong>{#DOC_SEARCH_FIELD#}</strong>
</td>
<td colspan="2">
<select name="field_id">
<option value="">{#DOC_SEARCH_FIELD_SELECT#}</option>
{foreach from=$fields item=field}
<option value="{$field->Id}" {if $smarty.request.field_id == $field->Id}selected{/if}>{$field->rubric_field_title|escape}</option>
{/foreach}
</select>
</td>
<td>
<select name="field_request">
<option value="like" {if $smarty.request.field_request == 'like'}selected{/if}>{#DOC_SEARCH_FIELD_LIKE#}</option>
<option value="eq" {if $smarty.request.field_request == 'eq'}selected{/if}>{#DOC_SEARCH_FIELD_EQ#}</option>
</select>
</td>
<td colspan="2">
<div class="pr12">
<input id="" name="field_search" type="text" value="{$smarty.request.field_search|default:""}" placeholder="{#DOC_SEARCH_FIELD_TEXT#}" />
</div>
</td>
</tr>
{/if}
<tr>
<td>
<strong>{#DOC_SEARCH_PARAM#}</strong>
</td>
<td colspan="2">
<select name="param_id">
<option value="">{#DOC_SEARCH_PARAM_SELECT#}</option>
{foreach from=$params item=param}
<option value="{$param}" {if $smarty.request.param_id == $param}selected{/if}>{$param}</option>
{/foreach}
</select>
</td>
<td>
<select name="param_request">
<option value="like" {if $smarty.request.param_request == 'like'}selected{/if}>{#DOC_SEARCH_PARAM_LIKE#}</option>
<option value="eq" {if $smarty.request.param_request == 'eq'}selected{/if}>{#DOC_SEARCH_PARAM_EQ#}</option>
</select>
</td>
<td colspan="2">
<div class="pr12">
<input id="" name="param_search" type="text" value="{$smarty.request.param_search|default:""}" placeholder="{#DOC_SEARCH_PARAM_TEXT#}" />
</div>
</td>
</tr>
<tr>
<td>
<strong>{#DOC_LANG_ID#}</strong>
</td>
<td>
<select name="lang_id">
<option value="" {if !$smarty.request.lang_id}selected{/if}>{#DOC_LANG_SELECT#}</option>
{foreach from=$smarty.session.accept_langs key=lang_id item=lang}
<option value="{$lang_id}" {if $smarty.request.lang_id == $lang_id}selected{/if}>{$lang_id}</option>
{if $fields}
<tr>
<td>
<strong>{#DOC_SEARCH_FIELD#}</strong>
</td>
<td colspan="2">
<select name="field_id">
<option value="">{#DOC_SEARCH_FIELD_SELECT#}</option>
{foreach from=$fields item=field}
<option value="{$field->Id}" {if !empty($smarty.request.field_id) && $smarty.request.field_id == $field->Id}selected{/if}>{$field->rubric_field_title|escape}</option>
{/foreach}
</select>
</td>
<td colspan="2"></td>
<td>
<strong>{#MAIN_RESULTS_ON_PAGE#}</strong>
</td>
<td>
<select name="limit">
{section loop=500 name=dl step=50}
<option value="{$smarty.section.dl.index+50}" {if $smarty.request.limit==$smarty.section.dl.index+50}selected{/if}>{$smarty.section.dl.index+50}</option>
{/section}
</select>
</td>
</tr>
</select>
</td>
<td>
<select name="field_request">
<option value="like" {if !empty($smarty.request.field_request) && $smarty.request.field_request == 'like'}selected{/if}>{#DOC_SEARCH_FIELD_LIKE#}</option>
<option value="eq" {if !empty($smarty.request.field_request) && $smarty.request.field_request == 'eq'}selected{/if}>{#DOC_SEARCH_FIELD_EQ#}</option>
</select>
</td>
<td colspan="2">
<div class="pr12">
<input id="" name="field_search" type="text" value="{$smarty.request.field_search|default:""}" placeholder="{#DOC_SEARCH_FIELD_TEXT#}" />
</div>
</td>
</tr>
{/if}
<tr>
<td>
<strong>{#DOC_SEARCH_PARAM#}</strong>
</td>
<td colspan="2">
<select name="param_id">
<option value="">{#DOC_SEARCH_PARAM_SELECT#}</option>
{foreach from=$params item=param}
<option value="{$param}" {if !empty($smarty.request.param_id) && $smarty.request.param_id == $param}selected{/if}>{$param}</option>
{/foreach}
</select>
</td>
<td>
<select name="param_request">
<option value="like" {if !empty($smarty.request.param_request) && $smarty.request.param_request == 'like'}selected{/if}>{#DOC_SEARCH_PARAM_LIKE#}</option>
<option value="eq" {if !empty($smarty.request.param_request) && $smarty.request.param_request == 'eq'}selected{/if}>{#DOC_SEARCH_PARAM_EQ#}</option>
</select>
</td>
<td colspan="2">
<div class="pr12">
<input id="" name="param_search" type="text" value="{$smarty.request.param_search|default:""}" placeholder="{#DOC_SEARCH_PARAM_TEXT#}" />
</div>
</td>
</tr>
<tr>
<td colspan="6">
<input type="submit" class="basicBtn" value="{#MAIN_BUTTON_SEARCH#}" />
</td>
</tr>
<tr>
<td>
<strong>{#DOC_LANG_ID#}</strong>
</td>
<td>
<select name="lang_id">
<option value="" {if empty($smarty.request.lang_id)}selected{/if}>{#DOC_LANG_SELECT#}</option>
{foreach from=$smarty.session.accept_langs key=lang_id item=lang}
<option value="{$lang_id}" {if !empty($smarty.request.lang_id) && $smarty.request.lang_id == $lang_id}selected{/if}>{$lang_id}</option>
{/foreach}
</select>
</td>
<td colspan="2"></td>
<td>
<strong>{#MAIN_RESULTS_ON_PAGE#}</strong>
</td>
<td>
<select name="limit">
{section loop=500 name=dl step=50}
<option value="{$smarty.section.dl.index+50}" {if !empty($smarty.request.limit) && $smarty.request.limit == $smarty.section.dl.index+50}selected{/if}>{$smarty.section.dl.index+50}</option>
{/section}
</select>
</td>
</tr>
{if $smarty.request.rubric_id}
{/if}
<tr>
<td colspan="6">
<input type="submit" class="basicBtn" value="{#MAIN_BUTTON_SEARCH#}" />
</td>
</tr>
{if !empty($smarty.request.rubric_id)}
{/if}
</table>
<input type="hidden" name="cp" value="{$sess}" />
</div>
</table>
<input type="hidden" name="cp" value="{$sess}" />
</div>
</div>
</form>

View File

@@ -1,83 +1,85 @@
<script>
var add_doc_title = '{#MAIN_ADD_IN_RUB#}',
add_doc_text = '{#DOC_ENTER_NAME#}',
del_doc_title = '{#DOC_TEMPORARY_DELETE#}',
del_doc_confirm = '{#DOC_TEMPORARY_CONFIRM#}',
copy_doc_title = '{#DOC_COPY#}',
copy_doc_text = '{#DOC_COPY_TIP#}',
copy_doc_no = '{#MAIN_NO_ADD_DOCS#}';
var add_doc_title = '{#MAIN_ADD_IN_RUB#}',
add_doc_text = '{#DOC_ENTER_NAME#}',
del_doc_title = '{#DOC_TEMPORARY_DELETE#}',
del_doc_confirm = '{#DOC_TEMPORARY_CONFIRM#}',
copy_doc_title = '{#DOC_COPY#}',
copy_doc_text = '{#DOC_COPY_TIP#}',
copy_doc_no = '{#MAIN_NO_ADD_DOCS#}';
</script>
<div class="title">
<h5>{#DOC_SUB_TITLE#}</h5>
<h5>{#DOC_SUB_TITLE#}</h5>
</div>
<div class="widget" style="margin-top: 0px;">
<div class="body">
{#DOC_TIPS#}
</div>
<div class="body">
{#DOC_TIPS#}
</div>
</div>
<div class="breadCrumbHolder module">
<div class="breadCrumb module">
<ul>
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li>{#DOC_SUB_TITLE#}</li>
</ul>
</div>
<div class="breadCrumb module">
<ul>
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li>{#DOC_SUB_TITLE#}</li>
</ul>
</div>
</div>
{if check_permission('document_view')}
<div class="widget first">
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<col width="50%">
<col width="50%">
<thead>
<tr>
<td>{#MAIN_ADD_IN_RUB#}</td>
<td>{#MAIN_SORT_DOCUMENTS#}</td>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:8px;">
<form action="index.php" method="get" id="addDocRub" class="mainForm">
<input type="hidden" name="cp" value="{$sess}" />
<input type="hidden" name="do" value="docs" />
<input type="hidden" name="action" value="new" />
<select name="rubric_id" id="rubricId">
<option value="">{#DOC_CHOSE_RUB#}</option>
{foreach from=$rubrics item=rubric}
{if $rubric->Show==1}
<option value="{$rubric->Id}"{if $smarty.request.rubric_id==$rubric->Id} selected{/if}>{$rubric->rubric_title|escape}</option>
{/if}
{/foreach}
</select>
&nbsp;
<input style="width:85px" type="submit" class="basicBtn AddDocument" value="{#MAIN_BUTTON_ADD#}" />
</form>
</td>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<col width="50%">
<col width="50%">
<thead>
<tr>
<td>{#MAIN_ADD_IN_RUB#}</td>
<td>{#MAIN_SORT_DOCUMENTS#}</td>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:8px;">
<form action="index.php" method="get" id="addDocRub" class="mainForm">
<input type="hidden" name="cp" value="{$sess}" />
<input type="hidden" name="do" value="docs" />
<input type="hidden" name="action" value="new" />
<select name="rubric_id" id="rubricId">
<option value="">{#DOC_CHOSE_RUB#}</option>
{foreach from=$rubrics item=rubric}
{if $rubric->Show==1}
<option value="{$rubric->Id}"{if $smarty.request.rubric_id|default:''==$rubric->Id} selected{/if}>{$rubric->rubric_title|escape}</option>
{/if}
{/foreach}
</select>
&nbsp;
<input style="width:85px" type="submit" class="basicBtn AddDocument" value="{#MAIN_BUTTON_ADD#}" />
</form>
</td>
<td style="padding:8px;">
<form action="index.php" method="get" class="mainForm">
<input type="hidden" name="cp" value="{$sess}" />
<input type="hidden" name="do" value="docs" />
<select name="rubric_id" id="rubricSort">{*RubrikSort*}
<option value="all">{#MAIN_ALL_RUBRUKS#}</option>
{foreach from=$rubrics item=rubric}
{if $rubric->Show==1}
<option value="{$rubric->Id}"{if $smarty.request.rubric_id|default:'' == $rubric->Id} selected{/if}>{$rubric->rubric_title|escape}</option>
{/if}
{/foreach}
</select>
&nbsp;
<input style="width:85px" type="submit" class="basicBtn" value="{#MAIN_BUTTON_SORT#}" />
</form>
</td>
</tr>
</tbody>
</table>
<td style="padding:8px;">
<form action="index.php" method="get" class="mainForm">
<input type="hidden" name="cp" value="{$sess}" />
<input type="hidden" name="do" value="docs" />
<select name="rubric_id" id="rubricSort">{*RubrikSort*}
<option value="all">{#MAIN_ALL_RUBRUKS#}</option>
{foreach from=$rubrics item=rubric}
{if $rubric->Show==1}
<option value="{$rubric->Id}"{if $smarty.request.rubric_id==$rubric->Id} selected{/if}>{$rubric->rubric_title|escape}</option>
{/if}
{/foreach}
</select>
&nbsp;
<input style="width:85px" type="submit" class="basicBtn" value="{#MAIN_BUTTON_SORT#}" />
</form>
</td>
</tr>
</tbody>
</table>
</div>
{/if}
@@ -85,383 +87,391 @@
<div class="widget first">
<div class="head">
<h5 class="iFrames">{#MAIN_DOCUMENTS_ALL#}</h5>
<div class="num">
<a class="basicNum" href="index.php?do=docs&action=aliases&cp={$sess}">{#DOC_ALIASES#}</a>
</div>
<h5 class="iFrames">{#MAIN_DOCUMENTS_ALL#}</h5>
<div class="num">
<a class="basicNum" href="index.php?do=docs&action=aliases&cp={$sess}">{#DOC_ALIASES#}</a>
</div>
</div>
<form class="mainForm" method="post" action="index.php?do=docs&action=editstatus&cp={$sess}">
<div class="body">
<strong>{#DOC_SORT_TEXT#}</strong>
<span class="mrl5">
{if $smarty.request.sort=='id'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='id_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=id{if $smarty.request.sort=='id'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_ID#}</a>
</span>
<div class="body">
<strong>{#DOC_SORT_TEXT#}</strong>
<span class="mrl5">
{if $smarty.request.sort=='position'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='position_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=position{if $smarty.request.sort=='position'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_POSITION#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='id'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='id_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=id{if $smarty.request.sort|default:''=='id'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_ID#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='title'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='title_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=title{if $smarty.request.sort=='title'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_TITLE#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='position'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='position_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=position{if $smarty.request.sort|default:''=='position'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_POSITION#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='alias'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='alias_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=alias{if $smarty.request.sort=='alias'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_URL_RUB#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='title'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='title_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=title{if $smarty.request.sort|default:''=='title'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_TITLE#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='rubric'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='rubric_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=rubric{if $smarty.request.sort=='rubric'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_IN_RUBRIK#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='alias'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='alias_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=alias{if $smarty.request.sort|default:''=='alias'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_URL_RUB#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='published'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='published_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=published{if $smarty.request.sort=='published'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_CREATED#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='rubric'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='rubric_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=rubric{if $smarty.request.sort|default:''=='rubric'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_IN_RUBRIK#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='changed'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='changed_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=changed{if $smarty.request.sort=='changed' || !$smarty.request.sort}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_EDIT#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='published'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='published_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=published{if $smarty.request.sort|default:''=='published'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_CREATED#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='author'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='author_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=author{if $smarty.request.sort=='author'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_AUTHOR#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='changed'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='changed_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=changed{if $smarty.request.sort|default:''=='changed' || !$smarty.request.sort|default:''}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_EDIT#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='author'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='author_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=author{if $smarty.request.sort|default:''=='author'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_AUTHOR#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort|default:''=='lang'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort|default:''=='lang_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=lang{if $smarty.request.sort|default:''=='lang'}_desc{/if}&page={$smarty.request.page|default:'1'}&cp={$sess}">{#DOC_LANG#}</a>
</span>
</div>
<span class="mrl5">
{if $smarty.request.sort=='lang'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='lang_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=lang{if $smarty.request.sort=='lang'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_LANG#}</a>
</span>
</div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic" id="docs">
<col width="10">
<col width="10">
<col>
<col width="150">
<col width="150">
<col width="180">
{if !$smarty.const.ADMIN_EDITMENU}<col width="141">{/if}
<col width="10">
<col width="10">
<col>
<col width="150">
<col width="150">
<col width="180">
{if !$smarty.const.ADMIN_EDITMENU}<col width="141">{/if}
{if $docs}
<thead>
<tr>
<td>
<div align="center">
<input type="checkbox" id="selectAll" value="1" />
</div>
</td>
<td>
{#DOC_ID#}
</td>
<td nowrap="nowrap">
{#DOC_TITLE#}&nbsp;|&nbsp;{#DOC_URL_RUB#}
</td>
<td>
{#DOC_IN_RUBRIK#}
</td>
<td>
{#DOC_POSITION#}
</td>
<td>
{#DOC_CREATED#}&nbsp;|&nbsp;{#DOC_EDIT#}
</td>
{if !$smarty.const.ADMIN_EDITMENU}
<td {if $smarty.const.ADMIN_EDITMENU}colspan="7"{else}colspan="14"{/if} align="center">
{#DOC_ACTIONS#}
</td>
{/if}
</tr>
</thead>
{if $docs}
<thead>
<tr>
<td>
<div align="center">
<input type="checkbox" id="selectAll" value="1" />
</div>
</td>
<td>
{#DOC_ID#}
</td>
<td nowrap="nowrap">
{#DOC_TITLE#}&nbsp;|&nbsp;{#DOC_URL_RUB#}
</td>
<td>
{#DOC_IN_RUBRIK#}
</td>
<td>
{#DOC_POSITION#}
</td>
<td>
{#DOC_CREATED#}&nbsp;|&nbsp;{#DOC_EDIT#}
</td>
{if !$smarty.const.ADMIN_EDITMENU}
<td {if $smarty.const.ADMIN_EDITMENU}colspan="7"{else}colspan="14"{/if} align="center">
{#DOC_ACTIONS#}
</td>
{/if}
</tr>
</thead>
{/if}
<tbody>
{if $docs}
{foreach from=$docs item=item}
<tr {if $item->document_deleted==1}class="red"{/if}{if $item->document_status!=1}class="yellow"{/if}>
<td nowrap="nowrap"><input name="document[{$item->Id}]" type="checkbox" value="1" {if ($item->cantEdit!=1 || $item->canOpenClose!=1 || $item->canEndDel!=1) && ($item->Id == 1 || $item->Id == $PAGE_NOT_FOUND_ID)}disabled{/if} class="checkbox" /></td>
<td align="center" nowrap="nowrap"><strong><a class="toprightDir" title="{#DOC_SHOW_TITLE#}" href="../{if $item->Id!=1}index.php?id={$item->Id}&cp={$sess}{/if}" target="_blank">{$item->Id}</a></strong></td>
<tbody>
{if $docs}
{foreach from=$docs item=item}
<tr {if $item->document_deleted==1}class="red"{/if}{if $item->document_status!=1}class="yellow"{/if}>
<td nowrap="nowrap"><input name="document[{$item->Id}]" type="checkbox" value="1" {if ($item->cantEdit!=1 || $item->canOpenClose!=1 || $item->canEndDel!=1) && ($item->Id == 1 || $item->Id == $PAGE_NOT_FOUND_ID)}disabled{/if} class="checkbox" /></td>
<td align="center" nowrap="nowrap"><strong><a class="toprightDir" title="{#DOC_SHOW_TITLE#}" href="../{if $item->Id!=1}index.php?id={$item->Id}&cp={$sess}{/if}" target="_blank">{$item->Id}</a></strong></td>
<td>
<div class="docaction">
{if $item->cantEdit==1}
<td>
<div class="docaction">
{if $item->cantEdit==1}
{if $item->rubric_admin_teaser_template != ""}
{$item->rubric_admin_teaser_template}
{else}
<strong>
<a class="toprightDir docname" title="{#DOC_EDIT_TITLE#}" href="index.php?do=docs&action=edit&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
{if $item->document_breadcrum_title != ""}
{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}
{/if}
{if $item->rubric_admin_teaser_template != ""}
{$item->rubric_admin_teaser_template}
{else}
<strong>
<a class="toprightDir docname" title="{#DOC_EDIT_TITLE#}" href="index.php?do=docs&action=edit&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
{if $item->document_breadcrum_title != ""}
{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}
{/if}
</a>
</strong>
<br />
<img src="{$ABS_PATH}lib/flags/{$item->document_lang}.png" width="16" alt="{$item->document_lang}">
<span class="code">url:</span>&nbsp;
<a class="toprightDir" title="{#DOC_SHOW2_TITLE#}" href="../{if $item->Id!=1}{$item->document_alias}{/if}" target="_blank">
<span class="dgrey doclink">{$item->document_alias}</span>
</a>
&nbsp;|&nbsp;
<span class="dgrey">{#DOC_CLICKS#}: </span> <strong class="code">{$item->document_count_view}</strong>
{/if}
<div class="actions" style="display: none;">
{if $smarty.const.ADMIN_EDITMENU}
<!-- Редактировать -->
{if $item->cantEdit==1}
<a class="topDir floatleft" title="{#DOC_EDIT_TITLE#}" href="index.php?do=docs&action=edit&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_edit"></span>
</a>
</strong>
<br />
<!-- npop *** https://forum.ave-cms.ru/viewtopic.php?p=1857#p1857 -->
<img src="{$ABS_PATH}lib/flags/{$item->document_lang}.png" width="16" alt="{$item->document_lang}">
<span class="code">url:</span>&nbsp;
<a class="toprightDir" title="{#DOC_SHOW2_TITLE#}" href="../{if $item->Id!=1}{$item->document_alias}{/if}" target="_blank">
<span class="dgrey doclink">{$item->document_alias}</span>
</a>
&nbsp;|&nbsp;
<span class="dgrey">{#DOC_CLICKS#}: </span> <strong class="code">{$item->document_count_view}</strong>
{/if}
<div class="actions" style="display: none;">
<!-- Копировать -->
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="topDir documentCopy floatleft" title="{#DOC_COPY#}" href="index.php?do=docs&action=copy&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_copy"></span>
</a>
{/if}
{if $smarty.const.ADMIN_EDITMENU}
<!-- Редактировать -->
{if $item->cantEdit==1}
<a class="topDir floatleft" title="{#DOC_EDIT_TITLE#}" href="index.php?do=docs&action=edit&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_edit"></span>
</a>
{/if}
<!-- Копировать -->
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="topDir documentCopy floatleft" title="{#DOC_COPY#}" href="index.php?do=docs&action=copy&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_copy"></span>
</a>
{/if}
<!-- Заметки -->
{if check_permission("remark_view")}
{if $item->ist_remark=='0'}
<a class="topDir floatleft" title="{#DOC_CREATE_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');">
<span class="icon_sprite_doc icon_comment"></span>
</a>
{else}
<a class="topDir floatleft" title="{#DOC_CREATE_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark_reply&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');">
<span class="icon_sprite_doc icon_comment"></span>
</a>
{/if}
{/if}
<!-- Публикация -->
{if $item->document_status==1}
{if $item->canOpenClose==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="topDir floatleft documentPublish {if $item->document_deleted == 1}hidden{/if}" data-id="{$item->Id}" title="{#DOC_DISABLE_TITLE#}" href="index.php?do=docs&action=close&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_public_on"></span>
</a>
{/if}
<!-- Заметки -->
{if check_permission("remark_view")}
{if $item->ist_remark=='0'}
<a class="topDir floatleft" title="{#DOC_CREATE_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');">
<span class="icon_sprite_doc icon_comment"></span>
</a>
{else}
{if $item->canOpenClose==1}
<a class="topDir floatleft public documentPublish {if $item->document_deleted == 1}hidden{/if}" data-id="{$item->Id}" title="{#DOC_ENABLE_TITLE#}" href="index.php?do=docs&action=open&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_public"></span>
</a>
{/if}
<a class="topDir floatleft" title="{#DOC_CREATE_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark_reply&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');">
<span class="icon_sprite_doc icon_comment"></span>
</a>
{/if}
<!-- Корзина -->
{if $item->document_deleted==1}
<a class="topDir floatleft recylce documentRecycle" title="{#DOC_RESTORE_DELETE#}" data-id="{$item->Id}" href="index.php?do=docs&action=redelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_recylce_on "></span>
</a>
{else}
{if $item->canDelete==1}
<a class="topDir floatleft documentRecycle" title="{#DOC_TEMPORARY_DELETE#}" data-id="{$item->Id}" data-rubric-id="{$item->rubric_id}" href="index.php?do=docs&action=delete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_recylce"></span>
</a>
{/if}
{/if}
<!-- Удалить -->
{if $item->canEndDel==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="ConfirmDelete topDir" title="{#DOC_FINAL_DELETE#}" dir="{#DOC_FINAL_DELETE#}" name="{#DOC_FINAL_CONFIRM#}" href="index.php?do=docs&action=enddelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite_doc icon_delete floatleft"></span></a>
{/if}
{/if}
</div>
{else}
<strong>
{if $item->document_breadcrum_title != ""}
{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}
{/if}
</strong>
<br />
<span class="code">url:</span>&nbsp;
<a class="toprightDir" title="{#DOC_SHOW2_TITLE#}" href="../{if $item->Id!=1}{$item->document_alias}{/if}" target="_blank">
<span class="dgrey doclink">{$item->document_alias}</span>
</a>
&nbsp;|&nbsp;
<span class="dgrey">{#DOC_CLICKS#}: </span> <strong class="code">{$item->document_count_view}</strong>
{/if}
</div>
</td>
<td nowrap="nowrap" align="center">
{if $item->cantEdit==1}
{foreach from=$rubrics item=rubric}
{if $item->rubric_id == $rubric->Id}
<a href="javascript:void(0);" title="{#DOC_CHANGE_RUBRIC#}" class="link topDir" onclick="windowOpen('index.php?do=docs&action=change&Id={$item->Id}&rubric_id={$item->rubric_id}&pop=1&cp={$sess}','650','550','1','docs');">
{$rubric->rubric_title|escape}
</a>
<br />
{if $smarty.const.UGROUP == 1}
<strong>{#DOC_AUTHOR#}:</strong> <a class="link topDir" title="{#DOC_CHANGE_AUTOR#}" href="javascript:void(0);" id="doc_id_{$item->Id}" onclick="windowOpen('index.php?do=docs&action=change_user&Id={$item->Id}&pop=1&cp={$sess}','750','500','1','docs');">{$item->document_author|escape}</a>
{else}
<strong>{#DOC_AUTHOR#}:</strong> {$item->document_author|escape}
{/if}
{/if}
{/foreach}
{else}
{foreach from=$rubrics item=rubric}
{if $item->rubric_id == $rubric->Id}
{$rubric->rubric_title|escape}
<br />
<strong>{#DOC_AUTHOR#}:</strong> {$item->document_author|escape}
{/if}
{/foreach}
{/if}
</td>
<td nowrap="nowrap" align="center">
{if $item->cantEdit==1}
<div class="position">
<input type="hidden" name="id" value="{$item->Id}" />
<input class="position_value" type="text" name="document_position" value="{$item->document_position|default:0}" />
</div>
{/if}
</td>
<td align="center">
<div class="docaction">
<div class="doc_message">
{if $item->ist_remark!='0'}
<div class="remarks">
<span title="{#DOC_ICON_COMMENT#}" class="icon_sprite_doc icon_comment topDir"></span>
</div>
{/if}
</div>
<span class="date_text dgrey">
{$item->document_published|date_format:$TIME_FORMAT|pretty_date}
<br />
{$item->document_changed|date_format:$TIME_FORMAT|pretty_date}
</span>
</div>
</td>
{if !$smarty.const.ADMIN_EDITMENU}
<td align="center" nowrap="nowrap" class="actions">
{if check_permission("remarks")}
{if $item->ist_remark=='0'}
<a class="topleftDir floatleft" title="{#DOC_CREATE_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');"><span class="icon_sprite ico_comment"></span></a>
{else}
<a class="topleftDir floatleft" title="{#DOC_REPLY_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark_reply&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');"><span class="icon_sprite ico_comment"></span></a>
{/if}
{else}
{*<span class="topleftDir icon_sprite ico_comment_no floatleft"></span>*}
{/if}
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="topleftDir CopyDocs floatleft" title="{#DOC_COPY#}" href="index.php?do=docs&action=copy&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_copy"></span></a>
{else}
{*<span class="icon_sprite ico_copy_no floatleft"></span>*}
{/if}
{if $item->cantEdit==1}
<a class="topleftDir floatleft" title="{#DOC_EDIT_TITLE#}" href="index.php?do=docs&action=edit&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_edit"></span></a>
{else}
{*<span class="icon_sprite ico_edit_no floatleft"></span>*}
{/if}
{if $item->document_deleted==1}
{*<span class="icon_sprite ico_blank floatleft"></span>*}
{else}
<!-- Публикация -->
{if $item->document_status==1}
{if $item->canOpenClose==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="topleftDir lock floatleft" ajax="index.php?do=docs&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}" title="{#DOC_DISABLE_TITLE#}" href="index.php?do=docs&action=close&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_unlock"></span></a>
{else}
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
{*<span class="icon_sprite ico_unlock_no floatleft"></span>*}
{else}
{*<span class="icon_sprite ico_unlock_no floatleft"></span>*}
{/if}
<a class="topDir floatleft documentPublish {if $item->document_deleted == 1}hidden{/if}" data-id="{$item->Id}" title="{#DOC_DISABLE_TITLE#}" href="index.php?do=docs&action=close&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_public_on"></span>
</a>
{/if}
{else}
{if $item->canOpenClose==1}
<a class="topleftDir floatleft" ajax="index.php?do=docs&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}" title="{#DOC_ENABLE_TITLE#}" href="index.php?do=docs&action=open&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_lock"></span></a>
<a class="topDir floatleft public documentPublish {if $item->document_deleted == 1}hidden{/if}" data-id="{$item->Id}" title="{#DOC_ENABLE_TITLE#}" href="index.php?do=docs&action=open&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_public"></span>
</a>
{/if}
{/if}
<!-- Корзина -->
{if $item->document_deleted==1}
<a class="topDir floatleft recylce documentRecycle" title="{#DOC_RESTORE_DELETE#}" data-id="{$item->Id}" href="index.php?do=docs&action=redelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_recylce_on "></span>
</a>
{else}
{if $item->canDelete==1}
<a class="topDir floatleft documentRecycle" title="{#DOC_TEMPORARY_DELETE#}" data-id="{$item->Id}" data-rubric-id="{$item->rubric_id}" href="index.php?do=docs&action=delete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}">
<span class="icon_sprite_doc icon_recylce"></span>
</a>
{/if}
{/if}
<!-- Удалить -->
{if $item->canEndDel==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="ConfirmDelete topDir" title="{#DOC_FINAL_DELETE#}" dir="{#DOC_FINAL_DELETE#}" name="{#DOC_FINAL_CONFIRM#}" href="index.php?do=docs&action=enddelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite_doc icon_delete floatleft"></span></a>
{/if}
{/if}
</div>
{else}
<strong>
{if $item->document_breadcrum_title != ""}
{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}
{/if}
</strong>
<br />
<span class="code">url:</span>&nbsp;
<a class="toprightDir" title="{#DOC_SHOW2_TITLE#}" href="../{if $item->Id!=1}{$item->document_alias}{/if}" target="_blank">
<span class="dgrey doclink">{$item->document_alias}</span>
</a>
&nbsp;|&nbsp;
<span class="dgrey">{#DOC_CLICKS#}: </span> <strong class="code">{$item->document_count_view}</strong>
{/if}
</div>
</td>
<td nowrap="nowrap" align="center">
{if $item->cantEdit==1}
{foreach from=$rubrics item=rubric}
{if $item->rubric_id == $rubric->Id}
<a href="javascript:void(0);" title="{#DOC_CHANGE_RUBRIC#}" class="link topDir" onclick="windowOpen('index.php?do=docs&action=change&Id={$item->Id}&rubric_id={$item->rubric_id}&pop=1&cp={$sess}','650','550','1','docs');">
{$rubric->rubric_title|escape}
</a>
<br />
{if $smarty.const.UGROUP == 1}
<strong>{#DOC_AUTHOR#}:</strong> <a class="link topDir" title="{#DOC_CHANGE_AUTOR#}" href="javascript:void(0);" id="doc_id_{$item->Id}" onclick="windowOpen('index.php?do=docs&action=change_user&Id={$item->Id}&pop=1&cp={$sess}','750','500','1','docs');">{$item->document_author|escape}</a>
{else}
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
{*<span class="icon_sprite ico_lock_no floatleft"></span>*}
{else}
{*<span class="icon_sprite ico_lock_no floatleft"></span>*}
{/if}
<strong>{#DOC_AUTHOR#}:</strong> {$item->document_author|escape}
{/if}
{/if}
{/foreach}
{else}
{foreach from=$rubrics item=rubric}
{if $item->rubric_id == $rubric->Id}
{$rubric->rubric_title|escape}
<br />
<strong>{#DOC_AUTHOR#}:</strong> {$item->document_author|escape}
{/if}
{/foreach}
{/if}
</td>
<td nowrap="nowrap" align="center">
{if $item->cantEdit==1}
<div class="position">
<input type="hidden" name="id" value="{$item->Id}" />
<input class="position_value" type="text" name="document_position" value="{$item->document_position|default:0}" />
</div>
{/if}
</td>
<td align="center">
<div class="docaction">
<div class="doc_message">
{if $item->ist_remark!='0'}
<div class="remarks">
<span title="{#DOC_ICON_COMMENT#}" class="icon_sprite_doc icon_comment topDir"></span>
</div>
{/if}
</div>
<span class="date_text dgrey">
{* Публикация: Если 0, используем $smarty.now (текущий таймстемп Smarty). *}
{($item->document_published|default:0 == 0 ? $smarty.now : $item->document_published)|date_format:$TIME_FORMAT|pretty_date}
<br />
{* Редактирование: Если 0, используем $smarty.now (текущий таймстемп Smarty). *}
{($item->document_changed|default:0 == 0 ? $smarty.now : $item->document_changed)|date_format:$TIME_FORMAT|pretty_date}
</span>
</div>
</td>
{if !$smarty.const.ADMIN_EDITMENU}
<td align="center" nowrap="nowrap" class="actions">
{if check_permission("remarks")}
{if $item->ist_remark=='0'}
<a class="topleftDir floatleft" title="{#DOC_CREATE_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');"><span class="icon_sprite ico_comment"></span></a>
{else}
<a class="topleftDir floatleft" title="{#DOC_REPLY_NOTICE_TITLE#}" href="javascript:void(0);" onclick="windowOpen('index.php?do=docs&action=remark_reply&Id={$item->Id}&pop=1&cp={$sess}','800','700','1','docs');"><span class="icon_sprite ico_comment"></span></a>
{/if}
{else}
{*<span class="topleftDir icon_sprite ico_comment_no floatleft"></span>*}
{/if}
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="topleftDir CopyDocs floatleft" title="{#DOC_COPY#}" href="index.php?do=docs&action=copy&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_copy"></span></a>
{else}
{*<span class="icon_sprite ico_copy_no floatleft"></span>*}
{/if}
{if $item->cantEdit==1}
<a class="topleftDir floatleft" title="{#DOC_EDIT_TITLE#}" href="index.php?do=docs&action=edit&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_edit"></span></a>
{else}
{*<span class="icon_sprite ico_edit_no floatleft"></span>*}
{/if}
{if $item->document_deleted==1}
{*<span class="icon_sprite ico_blank floatleft"></span>*}
{else}
{if $item->document_status==1}
{if $item->canOpenClose==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="topleftDir lock floatleft" ajax="index.php?do=docs&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}" title="{#DOC_DISABLE_TITLE#}" href="index.php?do=docs&action=close&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_unlock"></span></a>
{else}
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
    {*<span class="icon_sprite ico_unlock_no floatleft"></span>*}
{else}
{*<span class="icon_sprite ico_unlock_no floatleft"></span>*}
{/if}
{/if}
{else}
{if $item->canOpenClose==1}
<a class="topleftDir floatleft" ajax="index.php?do=docs&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}" title="{#DOC_ENABLE_TITLE#}" href="index.php?do=docs&action=open&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_lock"></span></a>
{else}
{if $item->cantEdit==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
{*<span class="icon_sprite ico_lock_no floatleft"></span>*}
{else}
{*<span class="icon_sprite ico_lock_no floatleft"></span>*}
{/if}
{/if}
{/if}
{/if} <!-- ИСПРАВЛЕНО: Этот закрывающий тег был пропущен -->
{if $item->document_deleted==1}
<a class="topleftDir floatleft" title="{#DOC_RESTORE_DELETE#}" href="index.php?do=docs&action=redelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_recylce_on"></span></a>
{if $item->document_deleted==1}
<a class="topleftDir floatleft" title="{#DOC_RESTORE_DELETE#}" href="index.php?do=docs&action=redelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_recylce_on"></span></a>
{else}
{if $item->canDelete==1}
<a class="ConfirmRecycle topleftDir floatleft" title="{#DOC_TEMPORARY_DELETE#}"  href="index.php?do=docs&action=delete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_recylce"></span></a>
{else}
{if $item->canDelete==1}
<a class="ConfirmRecycle topleftDir floatleft" title="{#DOC_TEMPORARY_DELETE#}" href="index.php?do=docs&action=delete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_recylce"></span></a>
{else}
{*<span class="icon_sprite ico_recylce_no floatleft"></span>*}
{/if}
{*<span class="icon_sprite ico_recylce_no floatleft"></span>*}
{/if}
{if $item->canEndDel==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="ConfirmDelete topleftDir floatleft" title="{#DOC_FINAL_DELETE#}" dir="{#DOC_FINAL_DELETE#}" name="{#DOC_FINAL_CONFIRM#}" href="index.php?do=docs&action=enddelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_delete"></span></a>
{else}
{*<span class="icon_sprite ico_delete_no floatleft"></span>*}
{/if}
</td>
{/if}
</tr>
{/foreach}
{else}
<tr>
<td {if $smarty.const.ADMIN_EDITMENU}colspan="7"{else}colspan="14"{/if}>
<ul class="messages">
<li class="highlight yellow">{#DOC_NO_DOCS#}</li>
</ul>
</td>
</tr>
{/if}
{if $docs}
<thead>
<tr>
<td></td>
<td>{#DOC_ID#}</td>
<td nowrap="nowrap">
{#DOC_TITLE#}&nbsp;|&nbsp;{#DOC_URL_RUB#}
{if $item->canEndDel==1 && $item->Id != 1 && $item->Id != $PAGE_NOT_FOUND_ID}
<a class="ConfirmDelete topleftDir floatleft" title="{#DOC_FINAL_DELETE#}" dir="{#DOC_FINAL_DELETE#}" name="{#DOC_FINAL_CONFIRM#}" href="index.php?do=docs&action=enddelete&rubric_id={$item->rubric_id}&Id={$item->Id}&cp={$sess}"><span class="icon_sprite ico_delete"></span></a>
{else}
{*<span class="icon_sprite ico_delete_no floatleft"></span>*}
{/if}
</td>
<td>{#DOC_IN_RUBRIK#}</td>
<td>{#DOC_POSITION#}</td>
<td>{#DOC_CREATED#}&nbsp;|&nbsp;{#DOC_EDIT#}</td>
{if !$smarty.const.ADMIN_EDITMENU}<td colspan="7" align="center">{#DOC_ACTIONS#}</td>{/if}
{/if}
</tr>
</thead>
{/if}
{/foreach}
{else}
<tr>
<td {if $smarty.const.ADMIN_EDITMENU}colspan="7"{else}colspan="14"{/if}>
<ul class="messages">
<li class="highlight yellow">{#DOC_NO_DOCS#}</li>
</ul>
</td>
</tr>
{/if}
{if $docs}
<thead>
<tr>
<td></td>
<td>{#DOC_ID#}</td>
<td nowrap="nowrap">
{#DOC_TITLE#}&nbsp;|&nbsp;{#DOC_URL_RUB#}
</td>
<td>{#DOC_IN_RUBRIK#}</td>
<td>{#DOC_POSITION#}</td>
<td>{#DOC_CREATED#}&nbsp;|&nbsp;{#DOC_EDIT#}</td>
{if !$smarty.const.ADMIN_EDITMENU}<td colspan="7" align="center">{#DOC_ACTIONS#}</td>{/if}
</tr>
</thead>
{/if}
</tbody>
</table>
{if check_permission('alle')}
<div class="rowElem" id="saveBtn">
<div class="saveBtn">
<select name="moderation" class="action-in-moderation">
<option value="none" selected="selected">{#DOC_ACTION_SELECT#}</option>
<option value="1">{#DOC_ACTION_SELECT_ACT#}</option>
<option value="0">{#DOC_ACTION_SELECT_NACT#}</option>
<option value="intrash">{#DOC_ACTION_SELECT_TRASH#}</option>
<option value="outtrash">{#DOC_ACTION_SELECT_OUTTRASH#}</option>
<option value="trash">{#DOC_ACTION_SELECT_DEL#}</option>
</select>
&nbsp;&nbsp;<input type="submit" class="basicBtn" value="{#DOC_ACTION_BUTTON#}" onclick="document.getElementById('nf_save_next').value='save'" />
</div>
<div class="saveBtn">
<select name="moderation" class="action-in-moderation">
<option value="none" selected="selected">{#DOC_ACTION_SELECT#}</option>
<option value="1">{#DOC_ACTION_SELECT_ACT#}</option>
<option value="0">{#DOC_ACTION_SELECT_NACT#}</option>
<option value="intrash">{#DOC_ACTION_SELECT_TRASH#}</option>
<option value="outtrash">{#DOC_ACTION_SELECT_OUTTRASH#}</option>
<option value="trash">{#DOC_ACTION_SELECT_DEL#}</option>
</select>
&nbsp;&nbsp;<input type="submit" class="basicBtn" value="{#DOC_ACTION_BUTTON#}" onclick="document.getElementById('nf_save_next').value='save'" />
</div>
</div>
{/if}
@@ -480,10 +490,10 @@
<script language="Javascript" type="text/javascript">
{literal}
$(document).ready(function() {
AveDocs.init();
AveDocs.list();
AveDocs.search();
});
$(document).ready(function() {
AveDocs.init();
AveDocs.list();
AveDocs.search();
});
{/literal}
</script>

View File

@@ -66,10 +66,11 @@ function insertLinkCK(data) {ldelim}
<col width="75" />
<thead>
<tr>
<td><a href="{$link}&sort=id{if $smarty.request.sort=='id'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_ID#}</a></td>
{* ИСПРАВЛЕНИЕ: Добавлены |default:'' для sort и |default:'1' для page *}
<td><a href="{$link}&sort=id{if $smarty.request.sort|default:''=='id'}_desc{/if}&page={$smarty.request.page|default:'1'|escape}&cp={$sess}">{#DOC_ID#}</a></td>
<td>&nbsp;</td>
<td><a href="{$link}&sort=title{if $smarty.request.sort=='title'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_TITLE#}</a></td>
<td><a href="{$link}&sort=rubric{if $smarty.request.sort=='rubric'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_IN_RUBRIK#}</a></td>
<td><a href="{$link}&sort=title{if $smarty.request.sort|default:''=='title'}_desc{/if}&page={$smarty.request.page|default:'1'|escape}&cp={$sess}">{#DOC_TITLE#}</a></td>
<td><a href="{$link}&sort=rubric{if $smarty.request.sort|default:''=='rubric'}_desc{/if}&page={$smarty.request.page|default:'1'|escape}&cp={$sess}">{#DOC_IN_RUBRIK#}</a></td>
<td>&nbsp;</td>
</tr>
</thead>
@@ -87,20 +88,21 @@ function insertLinkCK(data) {ldelim}
<td><strong>{if $item->document_breadcrum_title != ""}{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}{/if}</strong><br />{$item->document_alias}</td>
<td nowrap="nowrap">{$item->RubName|escape}</td>
<td nowrap="nowrap">
{if $smarty.request.idonly == 1}
<input onclick="insertLink({ldelim}{$smarty.request.target|escape}:'{$item->Id}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.idtitle == 1}
<input onclick="insertIdTitle({ldelim}target:'{$smarty.request.target|escape}',id:'{$item->Id}',target_title:'{$smarty.request.target_title|escape}',title:'{if $item->document_breadcrum_title != ""}{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}{/if}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.selurl == 1}
<input onclick="insertLink({ldelim}{$smarty.request.target|escape}:'index.php?id={$item->Id}&doc={$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.selecturl == 1}
{* ИСПРАВЛЕНИЕ: Добавлены |default:'' к параметрам запроса в JavaScript вызовах *}
{if $smarty.request.idonly|default:'' == 1}
<input onclick="insertLink({ldelim}{$smarty.request.target|default:''|escape}:'{$item->Id}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.idtitle|default:'' == 1}
<input onclick="insertIdTitle({ldelim}target:'{$smarty.request.target|default:''|escape}',id:'{$item->Id}',target_title:'{$smarty.request.target_title|default:''|escape}',title:'{if $item->document_breadcrum_title != ""}{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}{/if}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.selurl|default:'' == 1}
<input onclick="insertLink({ldelim}{$smarty.request.target|default:''|escape}:'index.php?id={$item->Id}&doc={$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.selecturl|default:'' == 1}
<input onclick="insertLinkCK('index.php?id={$item->Id}&doc={$item->document_alias}');" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.alias == 1}
<input onclick="insertLink({ldelim}{$smarty.request.target|escape}:'{$ABS_PATH}{$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.function == 1}
<input onclick="insertFunction('{$smarty.request.target|escape}', '{$item->Id}');" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.alias|default:'' == 1}
<input onclick="insertLink({ldelim}{$smarty.request.target|default:''|escape}:'{$ABS_PATH}{$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.function|default:'' == 1}
<input onclick="insertFunction('{$smarty.request.target|default:''|escape}', '{$item->Id}');" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{else}
<input onclick="insertLink({ldelim}{$smarty.request.target|escape}:'index.php?id={$item->Id}',{$smarty.request.doc|escape}:'{if $item->document_breadcrum_title != ""}{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}{/if}',{$smarty.request.document_alias|escape}:'{$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
<input onclick="insertLink({ldelim}{$smarty.request.target|default:''|escape}:'index.php?id={$item->Id}',{$smarty.request.doc|default:''|escape}:'{if $item->document_breadcrum_title != ""}{$item->document_breadcrum_title|stripslashes}{elseif $item->document_title != ""}{$item->document_title|stripslashes}{else}{#DOC_SHOW3_TITLE#}{/if}',{$smarty.request.document_alias|default:''|escape}:'{$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{/if}
</td>
</tr>

View File

@@ -71,7 +71,7 @@ function openFileWin(target,id) {ldelim}
$(document).ready(function(){ldelim}
{if $smarty.request.feld != ''}
{if isset($smarty.request.feld) && $smarty.request.feld != ''}
$("#feld_{$smarty.request.feld|escape}").css({ldelim}
'border' : '2px solid red',
'font' : '120% verdana,arial',
@@ -88,10 +88,10 @@ $(document).ready(function(){ldelim}
<h5>{#DOC_EDIT_DOCUMENT#} ID: {$smarty.request.Id}</h5>
<div class="lang">
{foreach from=$smarty.session.accept_langs key=lang_id item=lang}
{if $document->lang_pack[$lang_id]>''}
{if isset($document->lang_pack[$lang_id]) && $document->lang_pack[$lang_id] > ''}
<a href="{$ABS_PATH}admin/index.php?do=docs&action=edit&Id={$document->lang_pack[$lang_id].Id}"><img src="{$ABS_PATH}lib/flags/{$lang_id}.png" alt="{$lang_id}" /></a>
{else}
<a class="icon_off" href="{$ABS_PATH}admin/index.php?do=docs&action=new&lang_pack={$document->Id}&rubric_id={$document->rubric_id}&lang={$lang_id}"><img src="{$ABS_PATH}lib/flags/{$lang_id}.png" alt="{$lang_id}" /></a>
<a class="icon_off" href="{$ABS_PATH}admin/index.php?do=docs&action=new&lang_pack={$document->Id}&rubric_id={$document->rubric_id|default:0}&lang={$lang_id}"><img src="{$ABS_PATH}lib/flags/{$lang_id}.png" alt="{$lang_id}" /></a>
{/if}
{/foreach}
</div>
@@ -102,10 +102,11 @@ $(document).ready(function(){ldelim}
<div class="title"><h5>{#DOC_ADD_DOCUMENT#}</h5>
<div class="lang">
{foreach from=$smarty.session.accept_langs key=lang_id item=lang}
{if $document->lang_pack[$lang_id]>''}
{if isset($document->lang_pack[$lang_id]) && $document->lang_pack[$lang_id] > ''}
<a href="{$ABS_PATH}admin/index.php?do=docs&action=edit&Id={$document->lang_pack[$lang_id].Id}"><img src="{$ABS_PATH}lib/flags/{$lang_id}.png" alt="{$lang_id}" /></a>
{else}
<a class="icon_off" href="{$ABS_PATH}admin/index.php?do=docs&action=new&rubric_id={$document->rubric_id}&lang={$lang_id}"><img src="{$ABS_PATH}lib/flags/{$lang_id}.png" alt="{$lang_id}" /></a>
{* ИСПРАВЛЕНИЕ: Добавлен |default:0 для rubric_id *}
<a class="icon_off" href="{$ABS_PATH}admin/index.php?do=docs&action=new&rubric_id={$document->rubric_id|default:0}&lang={$lang_id}"><img src="{$ABS_PATH}lib/flags/{$lang_id}.png" alt="{$lang_id}" /></a>
{/if}
{/foreach}
</div>
@@ -128,20 +129,22 @@ $(document).ready(function(){ldelim}
{else}
<li>{#DOC_ADD_DOCUMENT#}</li>
<li><strong>{#DOC_IN_RUBRIK#}</strong> &gt; {$document->rubric_title|escape}</li>
<li><strong class="code">{if $smarty.request.document_title != ""}{$smarty.request.document_title}{else}{#DOC_IN_NEW#}{/if}</strong></li>
{* ИСПРАВЛЕНИЕ: Добавлена проверка isset() *}
<li><strong class="code">{if isset($smarty.request.document_title) && $smarty.request.document_title != ""}{$smarty.request.document_title}{else}{#DOC_IN_NEW#}{/if}</strong></li>
{/if}
</ul>
</div>
</div>
<form method="post" name="formDocOption" action="{$document->formaction}" enctype="multipart/form-data" data-id="{$document->Id}" data-prefix="{$document->rubric_url_prefix}" class="mainForm" id="formDoc">
<form method="post" name="formDocOption" action="{$document->formaction}" enctype="multipart/form-data" data-id="{$document->Id|default:0}" data-prefix="{$document->rubric_url_prefix}" class="mainForm" id="formDoc">
<input class="mousetrap" name="closeafter" type="hidden" id="closeafter" value="{$smarty.request.closeafter}">
<input class="mousetrap" name="closeafter" type="hidden" id="closeafter" value="{$smarty.request.closeafter|default:''}">
{if ($smarty.request.Id == 1 || $smarty.request.Id == $PAGE_NOT_FOUND_ID) && $smarty.request.action != 'new' && $smarty.request.action != 'copy'}
{assign var=dis value = 'disabled'}
{/if}
{* ИСПРАВЛЕНИЕ: Добавлена проверка isset() для Id, чтобы избежать Undefined array key *}
{if isset($smarty.request.Id) && ($smarty.request.Id == 1 || $smarty.request.Id == $PAGE_NOT_FOUND_ID) && $smarty.request.action != 'new' && $smarty.request.action != 'copy'}
{assign var=dis value = 'disabled'}
{/if}
<div class="widget first">
@@ -163,14 +166,14 @@ $(document).ready(function(){ldelim}
<tr>
<td>{#DOC_NAME#}&nbsp;<a href="javascript:void(0);" style="cursor:help;" class="rightDir link btext" title="{#DOC_META_TITLE#}">[?]</a></td>
<td colspan="3"><div class="pr12"><input class="mousetrap" name="document_title" type="text" id="document_title" size="40" value="{if $smarty.request.action == 'edit'}{$document->document_title|escape|stripslashes}{else}{$smarty.request.document_title|stripslashes}{/if}" /></div></td>
<td colspan="3"><div class="pr12"><input class="mousetrap" name="document_title" type="text" id="document_title" size="40" value="{if $smarty.request.action == 'edit'}{$document->document_title|escape|stripslashes}{else}{if isset($smarty.request.document_title)}{$smarty.request.document_title|stripslashes}{/if}{/if}" /></div></td>
</tr>
<tr>
<td>{#DOC_META_KEYWORDS#}&nbsp;<a href="javascript:void(0);" style="cursor:help;" class="rightDir link btext" title="{#DOC_META_KEYWORDS_INFO#}">[?]</a></td>
<td colspan="3">
<div class="pr12">
<textarea class="mousetrap" style="width:100%; height:40px" name="document_meta_keywords" id="document_meta_keywords">{$document->document_meta_keywords|escape|stripslashes}</textarea>
<textarea class="mousetrap" style="width:100%; height:40px" name="document_meta_keywords" id="document_meta_keywords">{$document->document_meta_keywords|default:''|escape|stripslashes}</textarea>
</div>
</td>
</tr>
@@ -179,7 +182,7 @@ $(document).ready(function(){ldelim}
<td>{#DOC_META_DESCRIPTION#}&nbsp;<a href="javascript:void(0);" style="cursor:help;" class="rightDir link btext" title="{#DOC_META_DESCRIPTION_INFO#}">[?]</a></td>
<td colspan="3">
<div class="pr12">
<textarea class="mousetrap" style="width:100%; height:40px" name="document_meta_description" id="document_meta_description" >{$document->document_meta_description|escape|stripslashes}</textarea>
<textarea class="mousetrap" style="width:100%; height:40px" name="document_meta_description" id="document_meta_description" >{$document->document_meta_description|default:''|escape|stripslashes}</textarea>
</div>
</td>
</tr>
@@ -188,9 +191,9 @@ $(document).ready(function(){ldelim}
<td>{#DOC_INDEX_TYPE#}</td>
<td colspan="3">
<select style="width:300px" name="document_meta_robots" id="document_meta_robots">
<option value="index,follow"{if $document->document_meta_robots=='index,follow'} selected="selected"{/if}>{#DOC_INDEX_FOLLOW#}</option>
<option value="index,nofollow"{if $document->document_meta_robots=='index,nofollow'} selected="selected"{/if}>{#DOC_INDEX_NOFOLLOW#}</option>
<option value="noindex,nofollow"{if $document->document_meta_robots=='noindex,nofollow'} selected="selected"{/if}>{#DOC_NOINDEX_NOFOLLOW#}</option>
<option value="index,follow"{if $document->document_meta_robots|default:''=='index,follow'} selected="selected"{/if}>{#DOC_INDEX_FOLLOW#}</option>
<option value="index,nofollow"{if $document->document_meta_robots|default:''=='index,nofollow'} selected="selected"{/if}>{#DOC_INDEX_NOFOLLOW#}</option>
<option value="noindex,nofollow"{if $document->document_meta_robots|default:''=='noindex,nofollow'} selected="selected"{/if}>{#DOC_NOINDEX_NOFOLLOW#}</option>
</select>
</td>
</tr>
@@ -198,30 +201,32 @@ $(document).ready(function(){ldelim}
<tr>
<td>{#DOC_SITEMAP_FREQ#} <a href="javascript:void(0);" style="cursor:help;" class="rightDir link btext" title="{#DOC_SITEMAP_FREQ_DOC#}">[?]</a></td>
<td>
<select name="document_sitemap_freq" id="document_sitemap_freq" style="width: 250px">
<option value="0"{if $document->document_sitemap_freq=='0'} selected="selected"{/if}>{#DOC_SITEMAP_ALWAYS#}</option>
<option value="1"{if $document->document_sitemap_freq=='1'} selected="selected"{/if}>{#DOC_SITEMAP_HOURLY#}</option>
<option value="2"{if $document->document_sitemap_freq=='2'} selected="selected"{/if}>{#DOC_SITEMAP_DAILY#}</option>
<option value="3"{if $document->document_sitemap_freq=='3' || $document->document_sitemap_freq == ''} selected="selected"{/if}>{#DOC_SITEMAP_WEEKLY#}</option>
<option value="4"{if $document->document_sitemap_freq=='4'} selected="selected"{/if}>{#DOC_SITEMAP_MONTHLY#}</option>
<option value="5"{if $document->document_sitemap_freq=='5'} selected="selected"{/if}>{#DOC_SITEMAP_YEARLY#}</option>
<option value="6"{if $document->document_sitemap_freq=='6'} selected="selected"{/if}>{#DOC_SITEMAP_NEVER#}</option>
<select name="document_sitemap_freq" id="document_sitemap_freq" style="width: 250px">
{* ИСПРАВЛЕНИЕ: Добавлен |default:'' ко всем проверкам свойства *}
<option value="0"{if $document->document_sitemap_freq|default:''=='0'} selected="selected"{/if}>{#DOC_SITEMAP_ALWAYS#}</option>
<option value="1"{if $document->document_sitemap_freq|default:''=='1'} selected="selected"{/if}>{#DOC_SITEMAP_HOURLY#}</option>
<option value="2"{if $document->document_sitemap_freq|default:''=='2'} selected="selected"{/if}>{#DOC_SITEMAP_DAILY#}</option>
<option value="3"{if $document->document_sitemap_freq|default:''=='3' || $document->document_sitemap_freq|default:'' == ''} selected="selected"{/if}>{#DOC_SITEMAP_WEEKLY#}</option>
<option value="4"{if $document->document_sitemap_freq|default:''=='4'} selected="selected"{/if}>{#DOC_SITEMAP_MONTHLY#}</option>
<option value="5"{if $document->document_sitemap_freq|default:''=='5'} selected="selected"{/if}>{#DOC_SITEMAP_YEARLY#}</option>
<option value="6"{if $document->document_sitemap_freq|default:''=='6'} selected="selected"{/if}>{#DOC_SITEMAP_NEVER#}</option>
</select>
</td>
<td>{#DOC_SITEMAP_PRIORITY#} <a href="javascript:void(0);" style="cursor:help;" class="rightDir link btext" title="{#DOC_SITEMAP_PRIORITY_DOC#}">[?]</a></td>
<td>
<select name="document_sitemap_pr" id="document_sitemap_pr" style="width: 250px">
<option value="0"{if $document->document_sitemap_pr=='0'} selected="selected"{/if}>0 {#DOC_SITEMAP_PRIORITY_LOW#}</option>
<option value="0.1"{if $document->document_sitemap_pr=='0.1'} selected="selected"{/if}>0.1</option>
<option value="0.2"{if $document->document_sitemap_pr=='0.2'} selected="selected"{/if}>0.2</option>
<option value="0.3"{if $document->document_sitemap_pr=='0.3'} selected="selected"{/if}>0.3</option>
<option value="0.4"{if $document->document_sitemap_pr=='0.4'} selected="selected"{/if}>0.4</option>
<option value="0.5"{if $document->document_sitemap_pr=='0.5' || $document->document_sitemap_pr==''} selected="selected"{/if}>0.5 {#DOC_SITEMAP_PRIORITY_MID#}</option>
<option value="0.6"{if $document->document_sitemap_pr=='0.6'} selected="selected"{/if}>0.6</option>
<option value="0.7"{if $document->document_sitemap_pr=='0.7'} selected="selected"{/if}>0.7</option>
<option value="0.8"{if $document->document_sitemap_pr=='0.8'} selected="selected"{/if}>0.8</option>
<option value="0.9"{if $document->document_sitemap_pr=='0.9'} selected="selected"{/if}>0.9</option>
<option value="1"{if $document->document_sitemap_pr=='1'} selected="selected"{/if}>1 {#DOC_SITEMAP_PRIORITY_HIG#}</option>
<select name="document_sitemap_pr" id="document_sitemap_pr" style="width: 250px">
{* ИСПРАВЛЕНИЕ: Добавлен |default:'' ко всем проверкам свойства *}
<option value="0"{if $document->document_sitemap_pr|default:''=='0'} selected="selected"{/if}>0 {#DOC_SITEMAP_PRIORITY_LOW#}</option>
<option value="0.1"{if $document->document_sitemap_pr|default:''=='0.1'} selected="selected"{/if}>0.1</option>
<option value="0.2"{if $document->document_sitemap_pr|default:''=='0.2'} selected="selected"{/if}>0.2</option>
<option value="0.3"{if $document->document_sitemap_pr|default:''=='0.3'} selected="selected"{/if}>0.3</option>
<option value="0.4"{if $document->document_sitemap_pr|default:''=='0.4'} selected="selected"{/if}>0.4</option>
<option value="0.5"{if $document->document_sitemap_pr|default:''=='0.5' || $document->document_sitemap_pr|default:''==''} selected="selected"{/if}>0.5 {#DOC_SITEMAP_PRIORITY_MID#}</option>
<option value="0.6"{if $document->document_sitemap_pr|default:''=='0.6'} selected="selected"{/if}>0.6</option>
<option value="0.7"{if $document->document_sitemap_pr|default:''=='0.7'} selected="selected"{/if}>0.7</option>
<option value="0.8"{if $document->document_sitemap_pr|default:''=='0.8'} selected="selected"{/if}>0.8</option>
<option value="0.9"{if $document->document_sitemap_pr|default:''=='0.9'} selected="selected"{/if}>0.9</option>
<option value="1"{if $document->document_sitemap_pr|default:''=='1'} selected="selected"{/if}>1 {#DOC_SITEMAP_PRIORITY_HIG#}</option>
</select>
</td>
</tr>
@@ -239,20 +244,24 @@ $(document).ready(function(){ldelim}
<tr>
<td>{#DOC_CHOOSE_LANG#}</td>
<td colspan="3">
<select style="width: 100px" name="document_lang" id="document_lang">
<option value="">&nbsp;</option>
{foreach from=$smarty.session.accept_langs key=lang_id item=lang}
{if ($smarty.request.lang == $lang_id)}
<option value="{$lang_id}" selected="selected">{$lang}</option>
{elseif ($document->document_lang == $lang_id)}
<option value="{$lang_id}" selected="selected">{$lang}</option>
{elseif (!$smarty.request.lang AND !$document->document_lang AND $document->document_lang == '' AND $smarty.const.DEFAULT_LANGUAGE == $lang_id)}
<option value="{$lang_id}" selected="selected">{$lang}</option>
{else}
<option value="{$lang_id}">{$lang}</option>
{/if}
{/foreach}
</select>
<select style="width: 100px" name="document_lang" id="document_lang">
<option value="">&nbsp;</option>
{foreach from=$smarty.session.accept_langs key=lang_id item=lang}
{if isset($smarty.request.lang) && $smarty.request.lang == $lang_id}
<option value="{$lang_id}" selected="selected">{$lang}</option>
{* ИСПРАВЛЕНИЕ 1: Добавлен |default:'' *}
{elseif ($document->document_lang|default:'' == $lang_id)}
<option value="{$lang_id}" selected="selected">{$lang}</option>
{* ИСПРАВЛЕНИЕ 2: Добавлен |default:'' ко всем проверкам свойства *}
{elseif (!isset($smarty.request.lang) AND !$document->document_lang|default:'' AND $document->document_lang|default:'' == '' AND $smarty.const.DEFAULT_LANGUAGE == $lang_id)}
<option value="{$lang_id}" selected="selected">{$lang}</option>
{else}
<option value="{$lang_id}">{$lang}</option>
{/if}
{/foreach}
</select>
</td>
</tr>
@@ -260,13 +269,13 @@ $(document).ready(function(){ldelim}
<td>{#DOC_URL#}&nbsp;<a href="javascript:void(0);" style="cursor:help;" class="rightDir link btext" title="{#DOC_URL_INFO#}">[?]</a></td>
<td nowrap="nowrap" colspan="3">
<div class="pr12">
<input class="mousetrap" name="prefix" type="hidden" value="{$document->rubric_url_prefix}">
<input class="mousetrap" autocomplete="off" name="document_alias" {$dis} type="text" id="document_alias" size="60" style="float: left; width: 100%;" value="{if $smarty.request.action=='edit' OR $document->document_alias!=''}{$document->document_alias}{else}{$document->rubric_url_prefix}{/if}" />
<input class="mousetrap" name="prefix" type="hidden" value="{$document->rubric_url_prefix|default:''}">
<input class="mousetrap" autocomplete="off" name="document_alias" {$dis} type="text" id="document_alias" size="60" style="float: left; width: 100%;" value="{if $smarty.request.action=='edit' OR $document->document_alias|default:''!=''}{$document->document_alias}{else}{$document->rubric_url_prefix}{/if}" />
<span class="span-form" style="padding-left: 10px;">
{if $smarty.request.Id != 1 && $smarty.request.Id != $PAGE_NOT_FOUND_ID}
{if isset($smarty.request.Id) && $smarty.request.Id != 1 && $smarty.request.Id != $PAGE_NOT_FOUND_ID}
<input type="button" class="basicBtn" id="translit" value="{#DOC_ALIAS_CREATE#}" />
{/if}
{if $smarty.request.Id && $smarty.request.Id != $PAGE_NOT_FOUND_ID}
{if isset($smarty.request.Id) && $smarty.request.Id && $smarty.request.Id != $PAGE_NOT_FOUND_ID}
<a data-dialog="aliases-{$smarty.request.Id}" href="index.php?do=docs&action=aliases_doc&doc_id={$smarty.request.Id}&cp={$sess}&pop=1&onlycontent=1" data-height="650" data-modal="true" data-title="История алисов документа" class="openDialog button greenBtn">История</a>
{/if}
</span>
@@ -278,10 +287,11 @@ $(document).ready(function(){ldelim}
<td>{#DOC_URL_LOG#}&nbsp;<a href="javascript:void(0);" style="cursor:help;" class="rightDir link btext" title="{#DOC_URL_LOG_T#}">[?]</a></td>
<td nowrap="nowrap" colspan="3">
<div class="pr12">
<select style="width: 300px" name="document_alias_history" id="document_alias_history">
<option value="0"{if $document->document_alias_history=='0'} selected="selected"{/if}>{#DOC_URL_LOG_RUBRIC#}</option>
<option value="1"{if $document->document_alias_history=='1'} selected="selected"{/if}>{#DOC_URL_LOG_USE#}</option>
<option value="2"{if $document->document_alias_history=='2'} selected="selected"{/if}>{#DOC_URL_LOG_NOTUSE#}</option>
<select style="width: 300px" name="document_alias_history" id="document_alias_history">
{* ИСПРАВЛЕНИЕ: Добавлен |default:'' ко всем проверкам свойства *}
<option value="0"{if $document->document_alias_history|default:''=='0'} selected="selected"{/if}>{#DOC_URL_LOG_RUBRIC#}</option>
<option value="1"{if $document->document_alias_history|default:''=='1'} selected="selected"{/if}>{#DOC_URL_LOG_USE#}</option>
<option value="2"{if $document->document_alias_history|default:''=='2'} selected="selected"{/if}>{#DOC_URL_LOG_NOTUSE#}</option>
</select>
</div>
</td>
@@ -320,13 +330,15 @@ $(document).ready(function(){ldelim}
<tbody>
<tr>
<td>{#DOC_START_PUBLICATION#}</td>
<td>
<input class="mousetrap" {$dis} id="document_published" name="document_published" type="text" value="{$document->document_published|date_format:"%d.%m.%Y %H:%M"}" style="width: 150px;" />
<td>
<input class="mousetrap" {$dis} id="document_published" name="document_published" type="text"
value="{($document->document_published|default:0 == 0 ? $smarty.now : $document->document_published)|date_format:"%d.%m.%Y %H:%M"}"
style="width: 150px;" />
</td>
<td>{#DOC_END_PUBLICATION#}</td>
<td>
<input class="mousetrap" {$dis} id="document_expire" name="document_expire" type="text" value="{$document->document_expire|date_format:"%d.%m.%Y %H:%M"}" style="width: 150px;" />
<input class="mousetrap" {$dis} id="document_expire" name="document_expire" type="text" value="{($document->document_expire|default:0 == 0 ? $smarty.now : $document->document_expire)|date_format:"%d.%m.%Y %H:%M"}" style="width: 150px;" />
</td>
</tr>
</tbody>
@@ -357,7 +369,7 @@ $(document).ready(function(){ldelim}
<tr>
<td>{#DOC_CAN_SEARCH#}</td>
<td colspan="3">
<input name="document_in_search" type="checkbox" id="document_in_search" value="1" {if $document->document_in_search==1 || $smarty.request.action=='new'}checked{/if} /><label> </label>
<input name="document_in_search" type="checkbox" id="document_in_search" value="1" {if $document->document_in_search|default:0==1 || $smarty.request.action=='new'}checked{/if} /><label> </label>
</td>
</tr>
@@ -403,9 +415,9 @@ $(document).ready(function(){ldelim}
<tr>
<td>{#DOC_USE_BREADCRUMB#}</td>
<td colspan="3">
<input class="mousetrap" name="document_parent" type="text" id="document_parent" value="{$document->document_parent}" size="4" maxlength="10" style="width: 50px;" />&nbsp;
<input class="mousetrap" name="document_parent" type="text" id="document_parent" value="{$document->document_parent|default:0}" size="4" maxlength="10" style="width: 50px;" />&nbsp;
<span class="button basicBtn" onClick="openLinkWinId('document_parent','document_parent');">{#DOC_BREADCRUMB_BTN#}</span>
&nbsp;{if $document->parent}{#DOC_BREADCRUMB_WITH#} « <a href="{$ABS_PATH}{$document->parent->document_alias}" target="_blank">{$document->parent->document_title|stripslashes}</a> »{/if}
&nbsp;{if isset($document->parent)}{#DOC_BREADCRUMB_WITH#} « <a href="{$ABS_PATH}{$document->parent->document_alias}" target="_blank">{$document->parent->document_title|stripslashes}</a> »{/if}
</td>
</tr>
@@ -414,7 +426,7 @@ $(document).ready(function(){ldelim}
<td colspan="3">
<a id="show_lang" class="button basicBtn" href="#">{#DOC_SHOW_LANG#}</a>
<div id="lang_block">
<input name="document_lang_group" class="mousetrap" type="text" id="document_lang_group" value="{if $smarty.request.lang_pack}{$smarty.request.lang_pack}{else}{$document->document_lang_group}{/if}" size="4" maxlength="10" style="width: 50px;" />
<input name="document_lang_group" class="mousetrap" type="text" id="document_lang_group" value="{if isset($smarty.request.lang_pack) && $smarty.request.lang_pack}{$smarty.request.lang_pack}{else}{$document->document_lang_group|default:0}{/if}" size="4" maxlength="10" style="width: 50px;" />
</div>
</td>
</tr>
@@ -423,7 +435,7 @@ $(document).ready(function(){ldelim}
<td>{#DOCUMENT_POSITION#}</td>
<td colspan="3">
<div class="position nosubmit">
<input type="hidden" name="id" value="{$document->Id}" />
<input type="hidden" name="id" value="{$document->Id|default:0}" />
<input class="position_value mousetrap" type="text" name="document_position" value="{$document->document_position|default:0}" />
</div>
</td>
@@ -432,7 +444,7 @@ $(document).ready(function(){ldelim}
<tr>
<td>{#DOC_PROPERTY#}</td>
<td colspan="3">
<input class="mousetrap" {$dis} id="document_property" name="document_property" type="text" value="{$document->document_property|escape}" readonly style="width: 100%;" />
<input class="mousetrap" {$dis} id="document_property" name="document_property" type="text" value="{$document->document_property|default:''|escape}" readonly style="width: 100%;" />
</td>
</tr>
</tbody>
@@ -466,7 +478,7 @@ $(document).ready(function(){ldelim}
{foreach from=$document_field_group.fields item=field}
<tr class="field_row_{$field.Id} field_row" id="field_row_{$field.Id}">
<td align="center">
<span class="code topDir"{if $field.rubric_field_alias}title="{$field.rubric_field_alias}"{/if}>{$field.Id}</span>
<span class="code topDir"{if isset($field.rubric_field_alias) && $field.rubric_field_alias} title="{$field.rubric_field_alias}"{/if}>{$field.Id}</span>
</td>
<td>
<strong>{$field.rubric_field_title|escape}</strong>
@@ -523,13 +535,13 @@ $(document).ready(function(){ldelim}
<div class="head">
<h5>{#DOC_REVISSION#}</h5>
<div class="num">
<a class="basicNum deleteRevisions" href="index.php?do=docs&action=revisions_delete&id={$document->Id}&rubric_id={$document->rubric_id}&cp={$sess}" data-title="{#DOC_REVISSIONS_DELETE#}" data-confirm="{#DOC_REVISSIONS_DELETE_T#}">{#DOC_REVISSIONS_DELETE#}</a>
<a class="basicNum deleteRevisions" href="index.php?do=docs&action=revisions_delete&id={$document->Id|default:0}&rubric_id={$document->rubric_id|default:0}&cp={$sess}" data-title="{#DOC_REVISSIONS_DELETE#}" data-confirm="{#DOC_REVISSIONS_DELETE_T#}">{#DOC_REVISSIONS_DELETE#}</a>
</div>
</div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic" id="tableRevisions">
<col>
<col>
{if $document->canDelRev == 1}
{if $document->canDelRev|default:0 == 1}
<col width="20">
<col width="20">
<col width="20">
@@ -547,7 +559,7 @@ $(document).ready(function(){ldelim}
<tbody>
{if $document_rev}
{foreach from=$document_rev item=doc_rev}
{foreach from=$document_rev item=doc_rev}
<tr id="{$doc_rev->doc_revision}">
<td align="center">
<span class="date_text dgrey">{$doc_rev->doc_revision|date_format:$TIME_FORMAT|pretty_date}</span>
@@ -558,12 +570,14 @@ $(document).ready(function(){ldelim}
<td align="center">
<a class="topleftDir icon_sprite ico_look" title="{#DOC_REVISSION_VIEW#}" href="../?id={$doc_rev->doc_id}&revission={$doc_rev->doc_revision}" target="_blank"></a>
</td>
{if $document->canDelRev == 1}
{if $document->canDelRev|default:0 == 1}
<td>
<a class="topleftDir recoverRevision icon_sprite ico_copy" title="{#DOC_REVISSION_RECOVER#}" data-title="{#DOC_REVISSION_RECOVER#}" data-confirm="{#DOC_REVISSION_RECOVER_T#}" href="index.php?do=docs&action=revision_recover&doc_id={$doc_rev->doc_id}&revission={$doc_rev->doc_revision}&rubric_id={$smarty.request.rubric_id}&cp={$sess}"></a>
{* ИСПРАВЛЕНИЕ 1: Добавлен |default:0 *}
<a class="topleftDir recoverRevision icon_sprite ico_copy" title="{#DOC_REVISSION_RECOVER#}" data-title="{#DOC_REVISSION_RECOVER#}" data-confirm="{#DOC_REVISSION_RECOVER_T#}" href="index.php?do=docs&action=revision_recover&doc_id={$doc_rev->doc_id}&revission={$doc_rev->doc_revision}&rubric_id={$smarty.request.rubric_id|default:0}&cp={$sess}"></a>
</td>
<td>
<a class="topleftDir deleteRevision icon_sprite ico_delete" title="{#DOC_REVISSION_DELETE#}" data-title="{#DOC_REVISSION_DELETE#}" data-confirm="{#DOC_REVISSION_DELETE_T#}" data-rev="{$doc_rev->doc_revision}" href="index.php?do=docs&action=revision_delete&doc_id={$doc_rev->doc_id}&revission={$doc_rev->doc_revision}&rubric_id={$smarty.request.rubric_id}&cp={$sess}"></a>
{* ИСПРАВЛЕНИЕ 2: Добавлен |default:0 *}
<a class="topleftDir deleteRevision icon_sprite ico_delete" title="{#DOC_REVISSION_DELETE#}" data-title="{#DOC_REVISSION_DELETE#}" data-confirm="{#DOC_REVISSION_DELETE_T#}" data-rev="{$doc_rev->doc_revision}" href="index.php?do=docs&action=revision_delete&doc_id={$doc_rev->doc_id}&revission={$doc_rev->doc_revision}&rubric_id={$smarty.request.rubric_id|default:0}&cp={$sess}"></a>
</td>
{/if}
</tr>

View File

@@ -1,15 +1,16 @@
<li>
<a {if $smarty.request.do=='docs'}class="active"{/if}href="index.php?do=docs&cp={$sess}"><span>{#MAIN_NAVI_DOCUMENTS#}</span></a>
{if $smarty.request.do=='docs'}
<ul class="sub" style="display: block; ">
{foreach from=$rubrics item=rubric}
{if $rubric->Show==1 && $rubric->rubric_docs_active==1}
<li {if $smarty.request.do=='docs' && $rubric->Id==$smarty.request.rubric_id}class="active"{/if}>
<a href="index.php?do=docs&rubric_id={$rubric->Id}&cp={$sess}">{$rubric->rubric_title|escape}</a>
<a class="numberRight rightDir" href="index.php?&do=docs&action=new&rubric_id={$rubric->Id}&cp={$sess}" title="{#DOC_BUTTON_ADD_DOCUMENT#}"><img src="{$tpl_dir}/images/icons/add2.png" alt="" /></a>
</li>
{/if}
{/foreach}
</ul>
{/if}
<a {if $smarty.request.do=='docs'}class="active"{/if}href="index.php?do=docs&cp={$sess}"><span>{#MAIN_NAVI_DOCUMENTS#}</span></a>
{if $smarty.request.do=='docs'}
<ul class="sub" style="display: block; ">
{foreach from=$rubrics item=rubric}
{if $rubric->Show==1 && $rubric->rubric_docs_active==1}
{* ИСПРАВЛЕНО: Добавлен |default:'' к rubric_id, чтобы избежать PHP Warning, если ключ отсутствует в $_REQUEST. *}
<li {if $smarty.request.do=='docs' && $rubric->Id==$smarty.request.rubric_id|default:''}class="active"{/if}>
<a href="index.php?do=docs&rubric_id={$rubric->Id}&cp={$sess}">{$rubric->rubric_title|escape}</a>
<a class="numberRight rightDir" href="index.php?&do=docs&action=new&rubric_id={$rubric->Id}&cp={$sess}" title="{#DOC_BUTTON_ADD_DOCUMENT#}"><img src="{$tpl_dir}/images/icons/add2.png" alt="" /></a>
</li>
{/if}
{/foreach}
</ul>
{/if}
</li>

View File

@@ -21,9 +21,9 @@
</tr>
<tr>
<td colspan="2">
<td colspan="2">
<input type="submit" class="basicBtn" value="{#DOC_BUTTON_ADD_NOTICE#}" />
<a href="index.php?do=docs&action=remark_del&Id={$smarty.request.Id|escape}&CId={$answer.Id}&remark_first={$answer.remark_first}&pop=1&cp={$sess}" class="btn redBtn floatright">{#DOC_NOTICE_DELETE_ALL#}</a>
<a href="index.php?do=docs&action=remark_del&Id={$smarty.request.Id|escape}&CId={$answer.Id|default:''}&remark_first={$answer.remark_first|default:''}&pop=1&cp={$sess}" class="btn redBtn floatright">{#DOC_NOTICE_DELETE_ALL#}</a>
</td>
</tr>
</table>

View File

@@ -72,10 +72,13 @@
{/if}
<tbody id="perms_list">
{foreach from=$g_all_permissions item=perm}
{assign var="header" value="_"|explode:$perm}
{if $header.0!="$headers"}
{assign var="headers" value=$header.0}
{* ИСПРАВЛЕНИЕ: Используем regex_replace для извлечения префикса (например, "user" из "user_view").
Это обходит проблему с устаревшим explode и ошибкой "unknown modifier strpos". *}
{assign var="header_prefix" value=$perm|regex_replace:'/_(.*)$/':'':1}
{if $header_prefix!=$headers}
{assign var="headers" value=$header_prefix}
<tr class="header">
<td colspan="2">{$smarty.config.$headers}</td>
</tr>
@@ -94,7 +97,6 @@
</tbody>
</tbody>
</table>
<div class="rowElem" id="saveBtn">
<div class="saveBtn">
<input type="submit" class="basicBtn" value="{#UGROUP_BUTTON_SAVE#}" />&nbsp;{#UGROUP_OR#}&nbsp;<input type="submit" class="button blackBtn SaveSettings" value="{#UGROUP_BUTTON_SAVE_AJAX#}" />

View File

@@ -66,7 +66,7 @@
<div class="loginRow">
<label for="user_login">{#MAIN_LOGIN_NAME#}</label>
<div class="loginInput">
<input type="text" name="user_login" value="{$smarty.request.user_login|escape}" class="loginEmail">
<input type="text" name="user_login" value="{$smarty.request.user_login|default:''|escape}" class="loginEmail">
</div>
<div class="fix">
</div>

View File

@@ -176,8 +176,8 @@
<body>
<div id="leftNav_show">
<a href="javascript:void(0);" id="toggle-LeftMenu"><span class="rightDir {if $smarty.cookies.LeftMenu != "hidden"}close{/if}" title="{#MAIN_SHOWHIDE#}"></span></a>
<div id="leftNav_show">
<a href="javascript:void(0);" id="toggle-LeftMenu"><span class="rightDir {if $smarty.cookies.LeftMenu|default:'visible' != "hidden"}close{/if}" title="{#MAIN_SHOWHIDE#}"></span></a>
</div>
<!-- Top Menu -->
@@ -209,7 +209,7 @@
</li>
{/if}
<li class="dropdown dd_page" {if $smarty.cookies.LeftMenu == "visible"}style="display: none;"{/if}>
<li class="dropdown dd_page" {if $smarty.cookies.LeftMenu|default:"visible" == "visible"}style="display: none;"{/if}>
<a title=""><img src="{$tpl_dir}/images/icons/tasks.png" alt="" /><span>{#MAIN_BRANCHES#}</span></a>
<ul class="menu_page">
{$navi_top}
@@ -270,7 +270,7 @@
<div class="wrapper">
<!-- Left navigation -->
<div class="leftNav {if $smarty.cookies.LeftMenu == "hidden"}hidden{/if}">
<div class="leftNav {if $smarty.cookies.LeftMenu|default:"" == "hidden"}hidden{/if}">
<ul id="menu">
<li><a href="index.php" {if $smarty.request.do == ''}class="active collapse-close"{/if}><span>{#MAIN_LINK_HOME#}</span></a></li>
{$navi}

View File

@@ -105,9 +105,9 @@ $(document).ready(function(){ldelim}
{if $module.template}
{assign var=module_id value=$module.id}
{if $module.ModuleStatus && $module.permission}
{html_options name=Template[$module_id] options=$all_templates selected=$module.template style="width: 200px"}
{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"}
{html_options name='Template[$module_id]' options=$all_templates selected=$module.template style="width: 200px" disabled="disabled"}
{/if}
{else}
&nbsp;

View File

@@ -125,7 +125,7 @@
<tr>
<td colspan="2">
<div class="pr12">
<input name="css_style" type="text" id="css_style" value="{$item->css_style|escape}" autocomplete="off" />
<input name="css_style" type="text" id="css_style" value="{if isset($item)}{$item->css_style|escape}{/if}" autocomplete="off" />
</div>
</td>
</tr>

View File

@@ -64,8 +64,8 @@
</td>
<td colspan="3">
<div class="pr12">
<input type="text" name="alias" id="alias" value="{if $smarty.request.navigation_id != ''}{$navigation->alias}{else}{$smarty.request.alias}{/if}" class="mousetrap" data-accept="{#NAVI_ACCEPT#}" data-error-syn="{#NAVI_ER_SYN#}" data-error-exists="{#NAVI_ER_EXISTS#}" placeholder="{#NAVI_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="alias_tag" value="[tag:navigation:{if $smarty.request.navigation_id != ''}{if $navigation->alias != ''}{$navigation->alias}{else}{$navigation->navigation_id}{/if}{else}{$smarty.request.alias}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<input type="text" name="alias" id="alias" value="{if $smarty.request.navigation_id|default:'' != ''}{$navigation->alias}{else}{$smarty.request.alias|default:''}{/if}" class="mousetrap" data-accept="{#NAVI_ACCEPT#}" data-error-syn="{#NAVI_ER_SYN#}" data-error-exists="{#NAVI_ER_EXISTS#}" placeholder="{#NAVI_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="alias_tag" value="[tag:navigation:{if $smarty.request.navigation_id|default:'' != ''}{if $navigation->alias != ''}{$navigation->alias}{else}{$navigation->navigation_id}{/if}{else}{$smarty.request.alias|default:''}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<a style="text-align: center; padding: 5px 3px 4px 3px;" class="whiteBtn copyBtn" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#alias_tag">
<img style="margin-top: -3px; position: relative; top: 4px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13">
</a>
@@ -76,9 +76,9 @@
<td width="200"><strong>{#NAVI_PRINT_TYPE#}</strong></td>
<td>
<select name="expand_ext">
<option value="1"{if $navigation->expand_ext == 1} selected{/if}/>{#NAVI_EXPAND_ALL#}</option>
<option value="0"{if $navigation->expand_ext == 0} selected{/if}/>{#NAVI_EXPAND_WAY#}</option>
<option value="2"{if $navigation->expand_ext == 2} selected{/if}/>{#NAVI_EXPAND_LEVEL#}</option>
<option value="1"{if isset($navigation) && $navigation->expand_ext == '1'} selected{/if}/>{#NAVI_EXPAND_ALL#}</option>
<option value="0"{if isset($navigation) && $navigation->expand_ext == '0'} selected{/if}/>{#NAVI_EXPAND_WAY#}</option>
<option value="2"{if isset($navigation) && $navigation->expand_ext == '2'} selected{/if}/>{#NAVI_EXPAND_LEVEL#}</option>
</select>
</td>
</tr>
@@ -121,7 +121,7 @@
</td>
<td>
<div class="pr12">
<textarea style="width:100%" name="level1_begin" rows="12" id="level1_tpl">{$navigation->level1_begin|escape}</textarea>
<textarea style="width:100%" name="level1_begin" rows="12" id="level1_tpl">{if isset($navigation)}{$navigation->level1_begin|escape}{/if}</textarea>
</div>
</td>
</tr>
@@ -169,7 +169,7 @@
</td>
<td>
<div class="pr12">
<textarea style="width:100%" name="level1" rows="12" id="level1">{$navigation->level1|escape}</textarea>
<textarea style="width:100%" name="level1" rows="12" id="level1">{if isset($navigation)}{$navigation->level1|escape}{/if}</textarea>
</div>
</td>
</tr>
@@ -239,7 +239,7 @@
<strong><a class="rightDir" style="cursor: pointer;" title="CSS Class" onclick="textSelection_1_3('[tag:css_class]','');">[tag:css_class]</a></strong><br />
<strong><a class="rightDir" style="cursor: pointer;" title="{#NAVI_PLACE_INSERT#}" onclick="textSelection_1_3('[tag:level:2]','');">[tag:level:2]</a></strong>
</td>
<td><div class="pr12"><textarea style="width:100%" name="level1_active" rows="12" id="level1_active">{$navigation->level1_active|escape}</textarea></div></td>
<td><div class="pr12"><textarea style="width:100%" name="level1_active" rows="12" id="level1_active">{if isset($navigation)}{$navigation->level1_active|escape}{/if}</textarea></div></td>
</tr>
<tr>
@@ -296,7 +296,7 @@
<div class="widget first">
<div class="head{if $navigation->level2_begin == ''} closed{/if}">
<div class="head{if isset($navigation) && $navigation->level2_begin == ''} closed{/if}">
<h5 class="iFrames">{#NAVI_LEVEL2#}</h5>
</div>
@@ -309,7 +309,7 @@
</td>
<td>
<div class="pr12">
<textarea style="width:100%" name="level2_begin" rows="12" id="level2_tpl">{$navigation->level2_begin|escape}</textarea>
<textarea style="width:100%" name="level2_begin" rows="12" id="level2_tpl">{if isset($navigation)}{$navigation->level2_begin|escape}{/if}</textarea>
</div>
</td>
</tr>
@@ -355,7 +355,7 @@
<strong><a class="rightDir" style="cursor: pointer;" title="{#NAVI_PLACE_INSERT#}" onclick="textSelection_2_2('[tag:level:3]','');">[tag:level:3]</a></strong>
</td>
<td>
<div class="pr12"><textarea style="width:100%" name="level2" rows="12" id="level2">{$navigation->level2|escape}</textarea></div>
<div class="pr12"><textarea style="width:100%" name="level2" rows="12" id="level2">{if isset($navigation)}{$navigation->level2|escape}{/if}</textarea></div>
</td>
</tr>
<tr>
@@ -422,7 +422,7 @@
<strong><a class="rightDir" style="cursor: pointer;" title="CSS Class" onclick="textSelection_2_3('[tag:css_class]','');">[tag:css_class]</a></strong><br />
<strong><a class="rightDir" style="cursor: pointer;" title="{#NAVI_PLACE_INSERT#}" onclick="textSelection_2_3('[tag:level:3]','');">[tag:level:3]</a></strong>
</td>
<td><div class="pr12"><textarea style="width:100%" name="level2_active" rows="12" id="level2_active">{$navigation->level2_active|escape}</textarea></div></td>
<td><div class="pr12"><textarea style="width:100%" name="level2_active" rows="12" id="level2_active">{if isset($navigation)}{$navigation->level2_active|escape}{/if}</textarea></div></td>
</tr>
<tr>
<td>HTML Tags</td>
@@ -478,7 +478,7 @@
<div class="widget first">
<div class="head{if $navigation->level3_begin == ''} closed{/if}">
<div class="head{if isset($navigation) && $navigation->level3_begin == ''} closed{/if}">
<h5 class="iFrames">{#NAVI_LEVEL3#}</h5>
</div>
@@ -490,7 +490,7 @@
</td>
<td>
<div class="pr12">
<textarea style="width:100%" name="level3_begin" rows="12" id="level3_tpl">{$navigation->level3_begin|escape}</textarea>
<textarea style="width:100%" name="level3_begin" rows="12" id="level3_tpl">{if isset($navigation)}{$navigation->level3_begin|escape}{/if}</textarea>
</div>
</td>
</tr>
@@ -534,7 +534,7 @@
<strong><a class="rightDir" style="cursor: pointer;" title="CSS ID" onclick="textSelection_3_2('[tag:css_id]','');">[tag:css_id]</a></strong><br />
<strong><a class="rightDir" style="cursor: pointer;" title="CSS Class" onclick="textSelection_3_2('[tag:css_class]','');">[tag:css_class]</a></strong>
</td>
<td><div class="pr12"><textarea style="width:100%" name="level3" rows="12" id="level3">{$navigation->level3|escape}</textarea></div></td>
<td><div class="pr12"><textarea style="width:100%" name="level3" rows="12" id="level3">{if isset($navigation)}{$navigation->level3|escape}{/if}</textarea></div></td>
</tr>
<tr>
<td>HTML Tags</td>
@@ -595,7 +595,7 @@
<strong><a class="rightDir" style="cursor: pointer;" title="CSS ID" onclick="textSelection_3_3('[tag:css_id]','');">[tag:css_id]</a></strong><br />
<strong><a class="rightDir" style="cursor: pointer;" title="CSS Class" onclick="textSelection_3_3('[tag:css_class]','');">[tag:css_class]</a></strong>
</td>
<td><div class="pr12"><textarea style="width:100%" name="level3_active" rows="12" id="level3_active">{$navigation->level3_active|escape}</textarea></div></td>
<td><div class="pr12"><<textarea style="width:100%" name="level3_active" rows="12" id="level3_active">{if isset($navigation)}{$navigation->level3_active|escape}{/if}</textarea></div></td>
</tr>
<tr>
<td>HTML Tags</td>

View File

@@ -1,5 +1,5 @@
{if $document->document_linked_navi_id}
{assign var="navigation_item_selected" value=$document->document_linked_navi_id scope="global"}
{if $document->document_linked_navi_id|default:0}
{assign var="navigation_item_selected" value=$document->document_linked_navi_id|default:0 scope="global"}
{/if}
<select name="document_linked_navi_id" id="document_linked_navi_id">

View File

@@ -80,18 +80,18 @@
</table>
{if $conditions}
<div class="rowElem"<div class="rowElem"{if !$smarty.request.pop} id="saveBtn"{/if}>
<div{if !$smarty.request.pop} class="saveBtn"{/if}>
<input type="submit" value="{#REQUEST_BUTTON_SAVE#}" class="basicBtn" />
{#REQUEST_OR#}
<input type="submit" value="{#REQUEST_BUTTON_SAVE_NEXT#}" class="button blackBtn SaveEditCond" />&nbsp;
{if $smarty.request.pop}
<input onclick="javascript:void(0);" type="button" class="redBtn Close" value="{#REQUEST_BUTTON_CLOSE#}" />
{/if}
</div>
</div>
{/if}
{if $conditions}
<div class="rowElem"{if !$smarty.request.pop|default:''} id="saveBtn"{/if}>
<div {if !$smarty.request.pop|default:''} class="saveBtn"{/if}>
<input type="submit" value="{#REQUEST_BUTTON_SAVE#}" class="basicBtn" />
{#REQUEST_OR#}
<input type="submit" value="{#REQUEST_BUTTON_SAVE_NEXT#}" class="button blackBtn SaveEditCond" />&nbsp;
{if $smarty.request.pop|default:''}
<input onclick="javascript:void(0);" type="button" class="redBtn Close" value="{#REQUEST_BUTTON_CLOSE#}" />
{/if}
</div>
</div>
{/if}
</div>
{if $conditions}

View File

@@ -2,7 +2,7 @@
var sess = '{$sess}';
</script>
<div class="title {if $smarty.request.pop}first{/if}">
<div class="title {if $smarty.request.pop|default:''}first{/if}">
<h5>{#REQUEST_CONDITIONS#}</h5>
</div>
@@ -83,10 +83,10 @@
</td>
<td style="width:60px; max-height: 100px;">
<select style="width:60px" name="oper_new" id="oper_new">
<option value="AND" {if $condition->condition_join=='AND'}selected{/if}>{#REQUEST_CONR_AND#}</option>
<option value="OR" {if $condition->condition_join=='OR'}selected{/if}>{#REQUEST_CONR_OR#}</option>
</select>
<select style="width:60px" name="oper_new" id="oper_new">
<option value="AND" {if isset($condition) && $condition->condition_join=='AND'}selected{/if}>{#REQUEST_CONR_AND#}</option>
<option value="OR" {if isset($condition) && $condition->condition_join=='OR'}selected{/if}>{#REQUEST_CONR_OR#}</option>
</select>
</td>
<td>
<div class="pr12"><input name="new_value" type="text" id="new_value" value="" /></div>
@@ -107,7 +107,7 @@
<form class="mainForm" action="index.php?do=request&action=conditions&sub=save&rubric_id={$smarty.request.rubric_id|escape}&Id={$smarty.request.Id|escape}&cp={$sess}" method="post" id="CondList">
<div class="widget first">
<div class="head"><h5 class="iFrames">{#REQUEST_CONDITION#}</h5>
{if !$smarty.request.pop}
{if !$smarty.request.pop|default:''}
<div class="num">
<a class="basicNum" href="index.php?do=request&action=edit&Id={$smarty.request.Id|escape}&rubric_id={$smarty.request.rubric_id|escape}&cp={$sess}">{#REQUEST_EDIT#}</a>
</div>
@@ -196,18 +196,18 @@
{/if}
</table>
{if $conditions}
<div class="rowElem"{if !$smarty.request.pop} id="saveBtn"{/if}>
<div {if !$smarty.request.pop} class="saveBtn"{/if}>
<input type="submit" value="{#REQUEST_BUTTON_SAVE#}" class="basicBtn" />
{#REQUEST_OR#}
<input type="submit" value="{#REQUEST_BUTTON_SAVE_NEXT#}" class="button blackBtn SaveEditCond" />&nbsp;
{if $smarty.request.pop}
<input onclick="javascript:void(0);" type="button" class="redBtn Close" value="{#REQUEST_BUTTON_CLOSE#}" />
{/if}
</div>
</div>
{/if}
{if $conditions}
<div class="rowElem"{if !$smarty.request.pop|default:''} id="saveBtn"{/if}>
<div {if !$smarty.request.pop|default:''} class="saveBtn"{/if}>
<input type="submit" value="{#REQUEST_BUTTON_SAVE#}" class="basicBtn" />
{#REQUEST_OR#}
<input type="submit" value="{#REQUEST_BUTTON_SAVE_NEXT#}" class="button blackBtn SaveEditCond" />&nbsp;
{if $smarty.request.pop|default:''}
<input onclick="javascript:void(0);" type="button" class="redBtn Close" value="{#REQUEST_BUTTON_CLOSE#}" />
{/if}
</div>
</div>
{/if}
</div>
@@ -221,7 +221,7 @@ $(document).ready(function(){ldelim}
{if check_permission('request_edit')}
{if $smarty.request.onlycontent}
{if $smarty.request.onlycontent|default:''}
AveAdmin.ajax();
{/if}
@@ -235,7 +235,7 @@ $(document).ready(function(){ldelim}
Mousetrap.bind(['ctrl+s', 'command+s'], function(event) {ldelim}
event.preventDefault();
$("#CondList").ajaxSubmit({ldelim}
url: 'index.php?do=request&action=conditions&sub=save&rubric_id={$smarty.request.rubric_id|escape}&Id={$smarty.request.Id|escape}&cp={$sess}&ajax=1{if $smarty.request.pop}&pop=1{/if}',
url: 'index.php?do=request&action=conditions&sub=save&rubric_id={$smarty.request.rubric_id|default:''|escape}&Id={$smarty.request.Id|default:''|escape}&cp={$sess}&ajax=1{if $smarty.request.pop|default:''}&pop=1{/if}',
dataType: 'json',
beforeSubmit: function(){ldelim}
$.alerts._overlay('show');
@@ -254,7 +254,7 @@ $(document).ready(function(){ldelim}
$(".AddNewCond").on('click', function(event){ldelim}
event.preventDefault();
$("#NewCond").ajaxSubmit({ldelim}
url: 'index.php?do=request&action=conditions&sub=new&rubric_id={$smarty.request.rubric_id|escape}&Id={$smarty.request.Id|escape}&cp={$sess}&ajax=1{if $smarty.request.pop}&pop=1{/if}',
url: 'index.php?do=request&action=conditions&sub=new&rubric_id={$smarty.request.rubric_id|default:''|escape}&Id={$smarty.request.Id|default:''|escape}&cp={$sess}&ajax=1{if $smarty.request.pop|default:''}&pop=1{/if}',
dataType: 'json',
beforeSubmit: function(){ldelim}
$.alerts._overlay('show');
@@ -279,7 +279,7 @@ $(document).ready(function(){ldelim}
function ajaxConditions(){ldelim}
$.ajax({ldelim}
url: 'index.php?do=request&action=conditions&rubric_id={$smarty.request.rubric_id|escape}&Id={$smarty.request.Id|escape}&cp={$sess}&ajax=1&onlycontent=1{if $smarty.request.pop}&pop=1{/if}',
url: 'index.php?do=request&action=conditions&rubric_id={$smarty.request.rubric_id|default:''|escape}&Id={$smarty.request.Id|default:''|escape}&cp={$sess}&ajax=1&onlycontent=1{if $smarty.request.pop|default:''}&pop=1{/if}',
type: 'POST',
beforeSend: function () {ldelim}
{rdelim},
@@ -294,7 +294,7 @@ $(document).ready(function(){ldelim}
$(".SaveEditCond").on('click', function(event){ldelim}
event.preventDefault();
$("#CondList").ajaxSubmit({ldelim}
url: 'index.php?do=request&action=conditions&sub=save&rubric_id={$smarty.request.rubric_id|escape}&Id={$smarty.request.Id|escape}&cp={$sess}&ajax=1{if $smarty.request.pop}&pop=1{/if}',
url: 'index.php?do=request&action=conditions&sub=save&rubric_id={$smarty.request.rubric_id|default:''|escape}&Id={$smarty.request.Id|default:''|escape}&cp={$sess}&ajax=1{if $smarty.request.pop|default:''}&pop=1{/if}',
dataType: 'json',
beforeSubmit: function(){ldelim}
$.alerts._overlay('show');

View File

@@ -54,7 +54,7 @@ function changeRub(select) {ldelim}
{else}
<li>{#REQUEST_NEW#}</li>
{/if}
<li><strong class="code">{$smarty.request.request_title_new|stripslashes|default:$row->request_title|escape}</strong></li>
<li><strong class="code">{$smarty.request.request_title_new|default:''|stripslashes|default:$row->request_title|escape}</strong></li>
</ul>
</div>
</div>
@@ -78,8 +78,8 @@ function changeRub(select) {ldelim}
</ul>
{/if}
{if $smarty.request.Id == ''}
{assign var=iframe value='no'}
{if $smarty.request.Id|default:'' == ''}
{assign var=iframe value='no'}
{/if}
{if $smarty.request.action == 'new' && $smarty.request.rubric_id == ''}
@@ -131,7 +131,7 @@ function changeRub(select) {ldelim}
<tr>
<td>{#REQUEST_NAME2#}</td>
<td colspan="3"><input {$dis} class="mousetrap" style="width: 100%" name="request_title" type="text" id="l_Titel" value="{$smarty.request.request_title_new|stripslashes|default:$row->request_title|escape}"></td>
<td colspan="3"><input {$dis} class="mousetrap" style="width: 100%" name="request_title" type="text" id="l_Titel" value="{$smarty.request.request_title_new|default:''|stripslashes|default:$row->request_title|escape}"></td>
</tr>
@@ -143,8 +143,8 @@ function changeRub(select) {ldelim}
</td>
<td colspan="3">
<div class="pr12">
<input type="text" name="request_alias" value="{if $smarty.request.Id != ''}{$row->request_alias}{else}{$smarty.request.request_alias}{/if}" id="request_alias" value="" class="mousetrap" data-accept="{#REQUEST_ACCEPT#}" data-error-syn="{#REQUEST_ER_SYN#}" data-error-exists="{#REQUEST_ER_EXISTS#}" placeholder="{#REQUEST_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="request_alias_tag" value="[tag:request:{if $smarty.request.Id != ''}{if $row->request_alias != ''}{$row->request_alias}{else}{$smarty.request.Id}{/if}{else}{$smarty.request.request_alias}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<input type="text" name="request_alias" value="{if $smarty.request.Id|default:'' != ''}{$row->request_alias}{else}{$smarty.request.request_alias|default:''}{/if}" id="request_alias" value="" class="mousetrap" data-accept="{#REQUEST_ACCEPT#}" data-error-syn="{#REQUEST_ER_SYN#}" data-error-exists="{#REQUEST_ER_EXISTS#}" placeholder="{#REQUEST_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="request_alias_tag" value="[tag:request:{if $smarty.request.Id|default:'' != ''}{if $row->request_alias != ''}{$row->request_alias}{else}{$smarty.request.Id|default:''}{/if}{else}{$smarty.request.request_alias|default:''}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<a style="text-align: center; padding: 5px 3px 4px 3px;" class="whiteBtn copyBtn" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#request_alias_tag">
<img style="margin-top: -3px; position: relative; top: 4px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13">
</a>
@@ -154,9 +154,9 @@ function changeRub(select) {ldelim}
<tr>
<td>{#REQUEST_CACHE#}</td>
<td><input {$dis} class="mousetrap" style="width:100px" name="request_cache_lifetime" type="text" id="request_cache_lifetime" value="{$smarty.request.request_cache_lifetime|stripslashes|default:$row->request_cache_lifetime|escape}"></td>
<td><input {$dis} class="mousetrap" style="width:100px" name="request_cache_lifetime" type="text" id="request_cache_lifetime" value="{$smarty.request.request_cache_lifetime|default:''|stripslashes|default:$row->request_cache_lifetime|escape}"></td>
<td>{#REQUEST_CACHE_ELEMENTS#}</td>
<td><input class="mousetrap float" name="request_cache_elements" type="checkbox" value="1" {if $row->request_cache_elements}checked="checked"{/if}/><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_cache_elements" type="checkbox" value="1" {if isset($row) && $row->request_cache_elements}checked="checked"{/if}/><label>&nbsp;</label></td>
</tr>
@@ -178,7 +178,7 @@ function changeRub(select) {ldelim}
<tr>
<td>{#REQUEST_DESCRIPTION#}<br /><small>{#REQUEST_INTERNAL_INFO#}</small></td>
<td colspan="3"><textarea class="mousetrap" {$dis} style="width:350px; height:60px" name="request_description" id="request_description">{if $smarty.request.action=='new' && $smarty.request.request_description !=''}{$smarty.request.request_description|escape}{else}{$row->request_description|escape}{/if}</textarea></td>
<td colspan="3"><textarea class="mousetrap" {$dis} style="width:350px; height:60px" name="request_description" id="request_description">{if $smarty.request.action|default:''=='new' && $smarty.request.request_description|default:'' !=''}{$smarty.request.request_description|default:''|escape}{else}{if isset($row)}{$row->request_description|escape}{/if}{/if}</textarea></td>
</tr>
<tr class="grey">
@@ -207,10 +207,10 @@ function changeRub(select) {ldelim}
<tbody>
<tr>
<td>{#REQUEST_HIDE_CURRENT#}</td>
<td><input class="mousetrap float" name="request_hide_current" type="checkbox" value="1" {if $row->request_hide_current}checked="checked"{/if}/><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_hide_current" type="checkbox" value="1" {if isset($row) && $row->request_hide_current}checked="checked"{/if}/><label>&nbsp;</label></td>
<td>{#REQUEST_ONLY_OWNER#}</td>
<td><input class="mousetrap float" name="request_only_owner" type="checkbox" value="1" {if $row->request_only_owner}checked="checked"{/if}/><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_only_owner" type="checkbox" value="1" {if isset($row) && $row->request_only_owner}checked="checked"{/if}/><label>&nbsp;</label></td>
</tr>
<tr>
<td class="first">
@@ -219,14 +219,14 @@ function changeRub(select) {ldelim}
</div>
</td>
<td class="second">
<select {$dis} style="width:250px" name="request_order_by" id="request_order_by" class="mousetrap">
<option value="document_published"{if $row->request_order_by=='document_published'} selected="selected"{/if}>{#REQUEST_BY_DATE#}</option>
<option value="document_title"{if $row->request_order_by=='document_title'} selected="selected"{/if}>{#REQUEST_BY_NAME#}</option>
<option value="document_author_id"{if $row->request_order_by=='document_author_id'} selected="selected"{/if}>{#REQUEST_BY_EDIT#}</option>
<option value="document_count_print"{if $row->request_order_by=='document_count_print'} selected="selected"{/if}>{#REQUEST_BY_PRINTED#}</option>
<option value="document_count_view"{if $row->request_order_by=='document_count_view'} selected="selected"{/if}>{#REQUEST_BY_VIEWS#}</option>
<option value="RAND()"{if $row->request_order_by=='RAND()'} selected="selected"{/if}>{#REQUEST_BY_RAND#}</option>
</select>
<select {$dis} style="width:250px" name="request_order_by" id="request_order_by" class="mousetrap">
<option value="document_published"{if isset($row) && $row->request_order_by=='document_published'} selected="selected"{/if}>{#REQUEST_BY_DATE#}</option>
<option value="document_title"{if isset($row) && $row->request_order_by=='document_title'} selected="selected"{/if}>{#REQUEST_BY_NAME#}</option>
<option value="document_author_id"{if isset($row) && $row->request_order_by=='document_author_id'} selected="selected"{/if}>{#REQUEST_BY_EDIT#}</option>
<option value="document_count_print"{if isset($row) && $row->request_order_by=='document_count_print'} selected="selected"{/if}>{#REQUEST_BY_PRINTED#}</option>
<option value="document_count_view"{if isset($row) && $row->request_order_by=='document_count_view'} selected="selected"{/if}>{#REQUEST_BY_VIEWS#}</option>
<option value="RAND()"{if isset($row) && $row->request_order_by=='RAND()'} selected="selected"{/if}>{#REQUEST_BY_RAND#}</option>
</select>
</td>
<td>
<div class="nowrap">
@@ -243,7 +243,7 @@ function changeRub(select) {ldelim}
{/if}
{foreach from=$field_group.fields item=field}
<option value="{$field.Id|escape}" {if $row->request_order_by_nat == $field.Id}selected{/if}>{$field.rubric_field_title|escape}</option>
<option value="{$field.Id|escape}" {if isset($row) && $row->request_order_by_nat == $field.Id}selected{/if}>{$field.rubric_field_title|escape}</option>
{/foreach}
{if $groups_count > 1}
@@ -259,16 +259,16 @@ function changeRub(select) {ldelim}
<tr>
<td class="first">{#REQUEST_ASC_DESC#}</td>
<td class="second">
<select {$dis} style="width:100px" name="request_asc_desc" id="request_asc_desc" class="mousetrap">
<option value="DESC"{if $row->request_asc_desc=='DESC'} selected="selected"{/if}>{#REQUEST_DESC#}</option>
<option value="ASC"{if $row->request_asc_desc=='ASC'} selected="selected"{/if}>{#REQUEST_ASC#}</option>
</select>
<select {$dis} style="width:100px" name="request_asc_desc" id="request_asc_desc" class="mousetrap">
<option value="DESC"{if isset($row) && $row->request_asc_desc=='DESC'} selected="selected"{/if}>{#REQUEST_DESC#}</option>
<option value="ASC"{if isset($row) && $row->request_asc_desc=='ASC'} selected="selected"{/if}>{#REQUEST_ASC#}</option>
</select>
</td>
<td class="first">{#REQUEST_DOC_PER_PAGE#}</td>
<td>
<select {$dis} style="width:150px" name="request_items_per_page" id="request_items_per_page" class="mousetrap">
{section name=items loop=300 step=1 start=0}
<option value="{$smarty.section.items.index+1}"{if $row->request_items_per_page==$smarty.section.items.index+1} selected="selected"{/if}>{$smarty.section.items.index+1}</option>
<option value="{$smarty.section.items.index+1}"{if isset($row) && $row->request_items_per_page==$smarty.section.items.index+1} selected="selected"{/if}>{$smarty.section.items.index+1}</option>
{/section}
</select>
</td>
@@ -282,7 +282,7 @@ function changeRub(select) {ldelim}
<tbody>
<tr>
<td>{#REQUEST_SHOW_NAVI#}</td>
<td><input class="mousetrap float" name="request_show_pagination" type="checkbox" id="request_show_pagination" value="1"{if $row->request_show_pagination=='1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_show_pagination" type="checkbox" id="request_show_pagination" value="1"{if isset($row) && $row->request_show_pagination=='1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td>{#REQUEST_NAVI_TPL#}</td>
<td>
@@ -295,9 +295,9 @@ function changeRub(select) {ldelim}
</tr>
<tr>
<td>{#REQUEST_COUNT_ITEMS#}</td>
<td><input class="mousetrap float" name="request_count_items" type="checkbox" id="request_count_items" value="1"{if $row->request_count_items == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_count_items" type="checkbox" id="request_count_items" value="1"{if isset($row) && $row->request_count_items == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td>{#REQUEST_USE_QUERY#}</td>
<td><input class="mousetrap float" name="request_use_query" type="checkbox" id="request_use_query" value="1"{if $row->request_use_query == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_use_query" type="checkbox" id="request_use_query" value="1"{if isset($row) && $row->request_use_query == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
</tr>
</tbody>
<thead>
@@ -308,13 +308,13 @@ function changeRub(select) {ldelim}
<tbody>
<tr>
<td>{#REQUEST_USE_LANG#}</td>
<td colspan="3"><input class="mousetrap float" name="request_lang" type="checkbox" id="request_lang" value="1"{if $row->request_lang == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td colspan="3"><input class="mousetrap float" name="request_lang" type="checkbox" id="request_lang" value="1"{if isset($row) && $row->request_lang == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
</tr>
<tr>
<td>{#REQUEST_SHOW_STAT#}</td>
<td><input class="mousetrap float" name="request_show_statistic" type="checkbox" id="request_show_statistic" value="1"{if $row->request_show_statistic == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_show_statistic" type="checkbox" id="request_show_statistic" value="1"{if isset($row) && $row->request_show_statistic == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td>{#REQUEST_SHOW_SQL#}</td>
<td><input class="mousetrap float" name="request_show_sql" type="checkbox" id="request_show_sql" value="1"{if $row->request_show_sql == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_show_sql" type="checkbox" id="request_show_sql" value="1"{if isset($row) && $row->request_show_sql == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
</tr>
</tbody>
<thead>
@@ -329,12 +329,12 @@ function changeRub(select) {ldelim}
<strong><a class="toprightDir" title="{#REQUEST_LINK_I#}">[?]</a></strong> {#REQUEST_EXTERNAL#}
</div>
</td>
<td><input class="mousetrap float" name="request_external" type="checkbox" id="request_external" value="1"{if $row->request_external == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_external" type="checkbox" id="request_external" value="1"{if isset($row) && $row->request_external == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td>{#REQUEST_ONLY_AJAX#}</td>
<td><input class="mousetrap float" name="request_ajax" type="checkbox" id="request_ajax" value="1"{if $row->request_ajax == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
<td><input class="mousetrap float" name="request_ajax" type="checkbox" id="request_ajax" value="1"{if isset($row) && $row->request_ajax == '1'} checked="checked"{/if} /><label>&nbsp;</label></td>
</tr>
</tbody>
{if $row->request_external == '1'}
{if isset($row) && $row->request_external == '1'}
<tr>
<td colspan="4">
<ul class="messages">
@@ -364,7 +364,7 @@ function changeRub(select) {ldelim}
</td>
{/if}
<td rowspan="19">
<textarea {$dis} name="request_template_main" id="request_template_main" wrap="off" style="width:100%; height:500px">{$row->request_template_main|escape|default:''}</textarea>
<textarea {$dis} name="request_template_main" id="request_template_main" wrap="off" style="width:100%; height:500px">{if isset($row)}{$row->request_template_main|escape}{/if}</textarea>
<ul class="messages" style="margin-top: 10px;">
<li class="highlight grey">
{#MAIN_CODEMIRROR_HELP#}
@@ -502,7 +502,7 @@ function changeRub(select) {ldelim}
&nbsp;|
</li>
</ul>
<textarea {$dis} name="request_template_item" id="request_template_item" wrap="off" style="width:100%; height:340px">{$row->request_template_item|escape|default:''}</textarea>
<textarea {$dis} name="request_template_item" id="request_template_item" wrap="off" style="width:100%; height:340px">{if isset($row)}{$row->request_template_item|escape}{/if}</textarea>
<ul class="messages" style="margin-top: 10px;">
<li class="highlight grey">
{#MAIN_CODEMIRROR_HELP#}

View File

@@ -125,7 +125,7 @@
<td width="1%" align="center">
{if check_permission('request_edit')}
<a title="{#REQUEST_EDIT#}" href="index.php?do=request&amp;action=edit&amp;Id={$item->Id}&amp;cp={$sess}&amp;rubric_id={$item->rubric_id}}" class="topleftDir icon_sprite ico_edit"></a>
<a title="{#REQUEST_EDIT#}" href="index.php?do=request&amp;action=edit&amp;Id={$item->Id}&amp;cp={$sess}&amp;rubric_id={$item->rubric_id}" class="topleftDir icon_sprite ico_edit"></a>
{else}
<span class="icon_sprite ico_edit_no"></span>
{/if}

View File

@@ -22,7 +22,11 @@
</div>
<form name="alias_check" id="alias_check" method="post" action="?do=rubs&action=alias_check&target={$smarty.request.target|escape}&field_id={$smarty.request.field_id|escape}&rubric_id={$smarty.request.rubric_id|escape}&pop=1&onlycontent=1&cp={$sess}" class="mainForm">
<form name="alias_check" id="alias_check" method="post"
{* ИСПРАВЛЕНИЕ 1: Защита всех ключей Smarty.request в URL с помощью |default:'' *}
action="?do=rubs&action=alias_check&target={$smarty.request.target|default:''|escape}&field_id={$smarty.request.field_id|default:0|escape}&rubric_id={$smarty.request.rubric_id|default:0|escape}&pop=1&onlycontent=1&cp={$sess}"
class="mainForm">
<div class="widget first">
<div class="head">
<h5 class="iFrames">{#RUBRIK_ALIAS_ALIAS#}</h5>
@@ -37,7 +41,12 @@
<td>{#RUBRIK_ALIAS_NAME#}</td>
<td>
<div class="pr12">
<input type="text" name="rubric_field_alias" value="{if $smarty.request.rubric_field_alias == ""}{$rubric_field_alias|escape|stripslashes}{else}{$smarty.request.rubric_field_alias}{/if}">
<input
type="text"
name="rubric_field_alias"
{* ИСПРАВЛЕНИЕ 2: Защита обоих источников значения с помощью |default:'' *}
value="{if $smarty.request.rubric_field_alias|default:'' == ""}{$rubric_field_alias|default:''|escape|stripslashes}{else}{$smarty.request.rubric_field_alias|default:''|escape}{/if}"
>
</div>
</td>
</tr>
@@ -83,10 +92,10 @@
if (success)
{ldelim}
$('#alias_' + {$smarty.request.field_id|escape}).val("{$smarty.request.rubric_field_alias|escape}");
$('#ajax-dialog-rft-alias-' + {$smarty.request.field_id|escape}).dialog('destroy').remove();
{* ИСПРАВЛЕНИЕ 3: Защита ключей Smarty.request в JavaScript *}
$('#alias_' + {$smarty.request.field_id|default:0|escape}).val("{$smarty.request.rubric_field_alias|default:''|escape}");
$('#ajax-dialog-rft-alias-' + {$smarty.request.field_id|default:0|escape}).dialog('destroy').remove();
{rdelim}
</script>
</div>
</div>

View File

@@ -76,7 +76,7 @@ $(function() {ldelim}
<strong>%d-%m-%Y</strong> - {#RUBRIK_FORMAT_TIME#}<br />
<strong>%id</strong> - {#RUBRIK_FORMAT_ID#}
</div>
<form class="mainForm" id="quickSave" method="post" action="index.php?do=rubs&cp={$sess}&sub=quicksave{if $smarty.request.page!=''}&page={$smarty.request.page|escape}{/if}">
<form class="mainForm" id="quickSave" method="post" action="index.php?do=rubs&cp={$sess}&sub=quicksave{if isset($smarty.request.page) && $smarty.request.page!=''}&page={$smarty.request.page|escape}{/if}">
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<col width="20">
<col width="20">

View File

@@ -30,13 +30,13 @@
<col>
<tr class="noborder">
<td>{#RUBRIK_NAME#}</td>
<td><div class="pr12"><input type="text" name="rubric_title" value="{$smarty.request.rubric_title|escape|stripslashes}"></div></td>
<td><div class="pr12"><input type="text" name="rubric_title" value="{$smarty.request.rubric_title|default:''|escape|stripslashes}"></div></td>
</tr>
<tr>
<td>{#RUBRIK_URL_PREFIX#}</td>
<td><div class="pr12"><input type="text" name="rubric_alias" value="{$smarty.request.rubric_alias|escape|stripslashes}"></div></td>
<td><div class="pr12"><input type="text" name="rubric_alias" value="{$smarty.request.rubric_alias|default:''|escape|stripslashes}"></div></td>
</tr>
<tr>

View File

@@ -33,7 +33,7 @@
<tr>
<td><strong>{#RUBRIK_URL_PREFIX2#}</strong></td>
<td><input style="width:250px" type="text" name="rubric_alias" value="{$smarty.request.rubric_alias|escape|stripslashes}"></td>
<td><input style="width:250px" type="text" name="rubric_alias" value="{$smarty.request.rubric_alias|default:''|escape|stripslashes}"></td>
</tr>
<tr>

View File

@@ -17,7 +17,7 @@
<ul>
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
<li><strong class="code">{$pagination->pagination_name}</strong></li>
<li><strong class="code">{$pagination->pagination_name|default:''}</strong></li>
</ul>
</div>
</div>

View File

@@ -72,23 +72,21 @@
{if $def.TYPE=="dropdown"}
<select class="mousetrap" name="GLOB[{$type}][{$_var}]">
{foreach from=$def.VARIANT item=elem}
<option value="{$elem}"
{php}
echo (constant($this->_tpl_vars['_var']) == $this->_tpl_vars['elem'] ? 'selected' :'' );
{/php}>{$elem}
</option>
<option value="{$elem}"
{($elem == $_var|constant) ? 'selected="selected"' : ''}>{$elem}
</option>
{/foreach}
</select>
{/if}
{if $def.TYPE=="string"}
<input class="mousetrap" name="GLOB[{$type}][{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant($this->_tpl_vars['_var']));{/php}" size="100" autocomplete="off" />
<input class="mousetrap" name="GLOB[{$type}][{$_var}]" type="text" id="{$_var}" style="width:550px" value="{$_var|constant}" size="100" autocomplete="off" />
{/if}
{if $def.TYPE=="integer"}
<input class="mousetrap" name="GLOB[{$type}][{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant($this->_tpl_vars['_var']));{/php}" size="100" autocomplete="off" />
<input class="mousetrap" name="GLOB[{$type}][{$_var}]" type="text" id="{$_var}" style="width:550px" value="{$_var|constant}" size="100" autocomplete="off" />
{/if}
{if $def.TYPE=="bool"}
<input type="radio" name="GLOB[{$type}][{$_var}]" value="1" {php} echo(constant($this->_tpl_vars['_var']) ? 'checked' : "");{/php} /><label style="cursor: pointer;">{#SETTINGS_YES#}</label>
<input type="radio" name="GLOB[{$type}][{$_var}]" value="0" {php} echo(constant($this->_tpl_vars['_var']) ? '' : "checked");{/php} /><label style="cursor: pointer;">{#SETTINGS_NO#}</label>
<input type="radio" name="GLOB[{$type}][{$_var}]" value="1" {$_var|constant ? 'checked="checked"' : ''} /><label style="cursor: pointer;">{#SETTINGS_YES#}</label>
<input type="radio" name="GLOB[{$type}][{$_var}]" value="0" {$_var|constant ? '' : 'checked="checked"'} /><label style="cursor: pointer;">{#SETTINGS_NO#}</label>
{/if}
</td>
</tr>

View File

@@ -3,21 +3,21 @@
<div class="title"><h5>{#SETTINGS_LANG_EDIT#}</h5></div>
<div class="widget" style="margin-top: 0px;">
<div class="body">
<div class="body">
{#SETTINGS_LANG_TITLE#}
</div>
</div>
</div>
<div class="breadCrumbHolder module">
<div class="breadCrumb module">
<ul>
<li class="firstB"><a href="index.php?pop=1" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li>{#SETTINGS_LANG_EDIT#}</li>
</ul>
<ul>
<li class="firstB"><a href="index.php?pop=1" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li>{#SETTINGS_LANG_EDIT#}</li>
</ul>
</div>
</div>
<form method="post" class="mainForm" action="index.php?do=settings&sub=language&func=save&cp={$sess}">
<form method="post" class="mainForm" enctype="multipart/form-data" action="index.php?do=settings&sub=language&func=save&cp={$sess}">
<div class="widget first">
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
@@ -32,14 +32,36 @@
</tr>
</thead>
<tr>
<td><div class="pr12"><input {if $smarty.request.Id!=''}readonly{/if} type="text" name="lang_key" id="lang_key" value="{$items->lang_key}" /></div></td>
<td><div class="pr12"><input type="text" name="lang_alias_pref" id="lang_alias_pref" value="{$items->lang_alias_pref}" /></div></td>
<td><div class="pr12"><input type="text" name="lang_name" id="lang_name" value="{$items->lang_name}" /></div></td>
<td><div class="pr12"><input {if ($smarty.request.Id|default:'')!=''}readonly{/if} type="text" name="lang_key" id="lang_key" value="{$items->lang_key|default:''}" /></div></td>
<td><div class="pr12"><input type="text" name="lang_alias_pref" id="lang_alias_pref" value="{$items->lang_alias_pref|default:''}" /></div></td>
<td><div class="pr12"><input type="text" name="lang_name" id="lang_name" value="{$items->lang_name|default:''}" /></div></td>
</tr>
<tr>
<td>
{#SETTINGS_LANG_FLAG#}:
{* Если это режим редактирования, показываем текущий флаг *}
{if !empty($items->lang_key)}
<span style="margin-left: 5px;">
<img src="/lib/flags/{$items->lang_key}.png" alt="{$items->lang_name|default:''}" style="width: 16px; height: 11px; vertical-align: middle;" />
</span>
{/if}
</td>
<td>
<div class="pr12">
<input type="file" name="lang_flag" id="lang_flag" class="greyishBtn"/>
</div>
</td>
<td>
</td>
</tr>
<tr>
<td colspan="3">
<input type="hidden" name="Id" value="{$smarty.request.Id}" />
{if $smarty.request.Id==''}
<input type="hidden" name="Id" value="{$smarty.request.Id|default:''}" />
{if ($smarty.request.Id|default:'')==''}
<input type="submit" value="{#SETTINGS_LANG_ADD#}" class="basicBtn" />
{else}
<input type="submit" value="{#SETTINGS_LANG_SAVE#}" class="basicBtn" />

View File

@@ -99,7 +99,12 @@
<strong>{#MAIN_START_DOC_AUTOR#}:</strong> {$item->document_author|escape}
{/if}
</td>
<td align="center"><span class="date_text dgrey">{$item->document_published|date_format:$TIME_FORMAT|pretty_date}</span></td>
<td align="center">
<span class="date_text dgrey">
{* Публикация: Если 0, используем $smarty.now (текущий таймстемп Smarty). *}
{($item->document_published|default:0 == 0 ? $smarty.now : $item->document_published)|date_format:$TIME_FORMAT|pretty_date}
</span>
</td>
</tr>
{/foreach}
</table>
@@ -180,7 +185,7 @@
</tr>
<tr>
<td>{#MAIN_STAT_MODULES#}</td>
<td align="right"><span class="cmsStats">{$cnts.modules_0+$cnts.modules_1}</span></td>
<td align="right"><span class="cmsStats">{$cnts.modules_0|default:0 + $cnts.modules_1|default:0}</span></td>
</tr>
{if $cnts.modules_0}
<tr>
@@ -190,7 +195,7 @@
{/if}
<tr>
<td>{#MAIN_STAT_USERS#}</td>
<td align="right"><span class="cmsStats">{$cnts.users_0+$cnts.users_1}</span></td>
<td align="right"><span class="cmsStats">{$cnts.users_0|default:0+$cnts.users_1|default:0}</span></td>
</tr>
{if $cnts.users_0}
<tr>

View File

@@ -22,8 +22,8 @@
<li>
<a href="index.php?do=sysblocks&cp={$sess}" title="">{#SYSBLOCK_LIST_LINK#}</a>
</li>
<li>{if $smarty.request.id != ''}{#SYSBLOCK_EDIT_H#}{else}{#SYSBLOCK_INSERT_H#}{/if}</li>
<li><strong class="code">{if $smarty.request.id != ''}{$sysblock_name|escape|default:'New'}{else}{$smarty.request.sysblock_name|default:'New'}{/if}</strong></li>
<li>{if isset($smarty.request.id) && $smarty.request.id != ''}{#SYSBLOCK_EDIT_H#}{else}{#SYSBLOCK_INSERT_H#}{/if}</li>
<li><strong class="code">{if isset($smarty.request.id) && $smarty.request.id != ''}{$sysblock_name|escape|default:'New'}{else}{$smarty.request.sysblock_name|default:'New'}{/if}</strong></li>
</ul>
</div>
</div>
@@ -55,7 +55,7 @@
<form id="sysblock" action="index.php?do=sysblocks&action=save&cp={$sess}" method="post" class="mainForm">
<div class="widget first">
<div class="head">
<h5 class="iFrames">{if $smarty.request.id != ''}{#SYSBLOCK_EDIT_H#}{else}{#SYSBLOCK_INSERT_H#}{/if}</h5>
<h5 class="iFrames">{if isset($smarty.request.id) && $smarty.request.id != ''}{#SYSBLOCK_EDIT_H#}{else}{#SYSBLOCK_INSERT_H#}{/if}</h5>
</div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<col width="350">
@@ -68,14 +68,14 @@
</td>
<td colspan="4">
<div class="pr12">
<input name="sysblock_name" class="mousetrap" type="text" value="{if $smarty.request.id != ''}{$sysblock_name|escape}{else}{$smarty.request.sysblock_name}{/if}" />
<input name="sysblock_name" class="mousetrap" type="text" value="{if isset($smarty.request.id) && $smarty.request.id != ''}{$sysblock_name|escape}{else}{if isset($smarty.request.sysblock_name)}{$smarty.request.sysblock_name}{/if}{/if}" />
</div>
</td>
</tr>
<tr>
<td>{#SYSBLOCK_DESCRIPTION#}</td>
<td colspan="4">
<input class="mousetrap" name="sysblock_description" type="text" id="sysblock_description" value="{if $smarty.request.id != ''}{$sysblock_description|escape}{else}{$smarty.request.sysblock_description}{/if}" placeholder="{#SYSBLOCK_DESCRIPTION#}">
<input class="mousetrap" name="sysblock_description" type="text" id="sysblock_description" value="{if isset($smarty.request.id) && $smarty.request.id != ''} {$sysblock_description|escape}{else}{if isset($smarty.request.sysblock_description)}{$smarty.request.sysblock_description}{/if}{/if}" placeholder="{#SYSBLOCK_DESCRIPTION#}">
</td>
</tr>
<tr>
@@ -86,8 +86,8 @@
</td>
<td colspan="4">
<div class="pr12">
<input type="text" name="sysblock_alias" id="sysblock_alias" value="{if $smarty.request.id != ''}{$sysblock_alias}{else}{$smarty.request.sysblock_alias}{/if}" class="mousetrap" data-accept="{#SYSBLOCK_ACCEPT#}" data-error-syn="{#SYSBLOCK_ER_SYN#}" data-error-exists="{#SYSBLOCK_ER_EXISTS#}" placeholder="{#SYSBLOCK_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="sysblock_alias_tag" value="[tag:sysblock:{if $smarty.request.id != ''}{if $sysblock_alias != ''}{$sysblock_alias}{else}{$smarty.request.id}{/if}{else}{$smarty.request.sysblock_alias}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<input type="text" name="sysblock_alias" id="sysblock_alias" value="{if isset($smarty.request.id) && $smarty.request.id != ''}{$sysblock_alias}{else}{if isset($smarty.request.sysblock_alias)}{$smarty.request.sysblock_alias}{/if}{/if}" class="mousetrap" data-accept="{#SYSBLOCK_ACCEPT#}" data-error-syn="{#SYSBLOCK_ER_SYN#}" data-error-exists="{#SYSBLOCK_ER_EXISTS#}" placeholder="{#SYSBLOCK_ALIAS#}" maxlength="20" style="width: 200px;" autocomplete="off" />&nbsp;
<input type="text" id="sysblock_alias_tag" value="[tag:sysblock:{if isset($smarty.request.id) && $smarty.request.id != ''}{if $sysblock_alias !=''}{$sysblock_alias}{else}{$smarty.request.id}{/if}{else}{if isset($smarty.request.sysblock_alias)}{$smarty.request.sysblock_alias}{/if}{/if}]" readonly size="40" class="mousetrap" style="width: 200px;" />
<a style="text-align: center; padding: 5px 3px 4px 3px;" class="whiteBtn copyBtn" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#sysblock_alias_tag">
<img style="margin-top: -3px; position: relative; top: 4px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13">
</a>
@@ -103,7 +103,7 @@
<td colspan="4">
<div class="pr12">
<select style="width:350px" name="sysblock_group_id" id="group_id" class="mousetrap">
<option value="" {if $smarty.request.action == 'new' && $smarty.request.id == ''}selected{/if}>{#SYS_GROUP_PLEASE_SELECT#}</option>
<option value="" {if $smarty.request.action == 'new' && (!isset($smarty.request.id) || $smarty.request.id == '')}selected{/if}>{#SYS_GROUP_PLEASE_SELECT#}</option>
{foreach from=$groups item=group}
<option value="{$group->id}"{if $sysblock_group_id == $group->id} selected="selected"{/if}>{$group->title|escape}</option>
{/foreach}
@@ -227,7 +227,7 @@
<div class="rowElem" id="saveBtn">
<div class="saveBtn">
{if $smarty.request.id != ''}
{if isset($smarty.request.id) && $smarty.request.id != ''}
<input type="hidden" name="id" value="{$sid}">
<input name="submit" type="submit" class="basicBtn" value="{#SYSBLOCK_SAVEDIT#}" />
{else}

View File

@@ -51,7 +51,7 @@
{foreach from=$groups item=group}
{assign var="group_id" value=$group.id}
{assign var="group_id" value=$group.id|default:0}
{if $group_id == null}
{assign var="group_id" value='0'}
@@ -59,12 +59,12 @@
<div class="widget first">
<div class="head closed active">
<h5 class="iFrames">{if $group.title}{$group.title}{else}{#SYS_GROUP_NO_TITLE#}{/if} ({$group.count})</h5>
<h5 class="iFrames">{if isset($group.title) && $group.title}{$group.title}{else}{#SYS_GROUP_NO_TITLE#}{/if} ({$group.count})</h5>
</div>
<div style="display: block;">
<div class="body">
{if $group.description}{$group.description}{else}{#SYS_GROUP_NO_DESCRIPTION#}{/if}
{if isset($group.description) && $group.description}{$group.description}{else}{#SYS_GROUP_NO_DESCRIPTION#}{/if}
</div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic mainForm">
@@ -97,7 +97,7 @@
</thead>
<tbody>
{foreach from=$sysblocks.$group_id item=sysblock}
{foreach from=$sysblocks.$group_id|default:[] item=sysblock}
<tr id="tr{$sysblock.id}">
<td align="center">
{$sysblock.id}

View File

@@ -11,7 +11,7 @@
<ul>
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li><a href="index.php?do=templates&cp={$sess}" title="">{#TEMPLATES_SUB_TITLE#}</a></li>
<li><strong class="code">{if $smarty.request.template_title}{$smarty.request.template_title|escape:html}{else}{$row->template_title|escape:html}{/if}</strong></li>
<li><strong class="code">{if $smarty.request.template_title|default:''}{$smarty.request.template_title|escape:html}{else}{$row->template_title|escape:html}{/if}</strong></li>
</ul>
</div>
</div>
@@ -43,7 +43,7 @@
<div class="rowElem noborder">
<label>{#TEMPLATES_NAME#}</label>
<div class="formRight">
<input name="template_title" type="text" value="{if $smarty.request.template_title}{$smarty.request.template_title|escape:html}{else}{$row->template_title|escape:html}{/if}" maxlength="50" style="width: 250px;" class="mousetrap" />
<input name="template_title" type="text" value="{if $smarty.request.template_title|default:''}{$smarty.request.template_title|escape:html}{else}{$row->template_title|escape:html}{/if}" maxlength="50" style="width: 250px;" class="mousetrap" />
</div>
<div class="fix"></div>
</div>

View File

@@ -74,7 +74,7 @@ function mail_status(){
<form method="post" action="{$formaction}" enctype="multipart/form-data" class="mainForm">
{if $smarty.request.action=='edit'}
<input name="Email_Old" type="hidden" value="{$smarty.request.email|stripslashes|default:$row->email|escape}" />
<input name="Email_Old" type="hidden" value="{$smarty.request.email|default:''|stripslashes|default:$row->email|escape}" />
{/if}
<fieldset>
@@ -87,22 +87,22 @@ function mail_status(){
<tr class="noborder">
<td width="250">{#USER_LOGIN#}</td>
<td><div class="pr12"><input name="user_name" type="text" id="user_name" size="40" style="width:250px;" value="{$smarty.request.user_name|stripslashes|default:$row->user_name|escape}" /></div></td>
<td><div class="pr12"><input name="user_name" type="text" id="user_name" size="40" style="width:250px;" value="{$smarty.request.user_name|default:''|stripslashes|default:$row->user_name|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_FIRSTNAME#}</td>
<td><div class="pr12"><input name="firstname" type="text" id="firstname" size="40" style="width:250px;" value="{$smarty.request.firstname|stripslashes|default:$row->firstname|escape}" /></div></td>
<td><div class="pr12"><input name="firstname" type="text" id="firstname" size="40" style="width:250px;" value="{$smarty.request.firstname|default:''|stripslashes|default:$row->firstname|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_LASTNAME#}</td>
<td><div class="pr12"><input name="lastname" type="text" id="lastname" size="40" style="width:250px;" value="{$smarty.request.lastname|stripslashes|default:$row->lastname|escape}" /></div></td>
<td><div class="pr12"><input name="lastname" type="text" id="lastname" size="40" style="width:250px;" value="{$smarty.request.lastname|default:''|stripslashes|default:$row->lastname|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_EMAIL#}</td>
<td><div class="pr12"><input name="email" type="text" id="email" size="40" style="width:250px;" value="{$smarty.request.email|stripslashes|default:$row->email|escape}" /></div></td>
<td><div class="pr12"><input name="email" type="text" id="email" size="40" style="width:250px;" value="{$smarty.request.email|default:''|stripslashes|default:$row->email|escape}" /></div></td>
</tr>
<tr>
@@ -138,7 +138,7 @@ function mail_status(){
<tr>
<td>{#USER_AVATAR#}</td>
<td><div class="pr12">
{if $row->avatar}<img src="{$row->avatar}">{/if}
{if $row && $row->avatar}<img src="{$row->avatar}">{/if}
<div class="fix"></div>
<input type="file" name="avatar" class="nicefileinput nice input_file" />
</div></td>
@@ -156,37 +156,37 @@ function mail_status(){
<tr>
<td>{#USER_COMPANY#}</td>
<td><div class="pr12"><input name="company" type="text" size="40" style="width:250px;" value="{$smarty.request.company|stripslashes|default:$row->company|escape}" /></div></td>
<td><div class="pr12"><input name="company" type="text" size="40" style="width:250px;" value="{$smarty.request.company|default:''|stripslashes|default:$row->company|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_HOUSE_STREET#}</td>
<td><div class="pr12">
<input name="street" type="text" id="street" size="25" style="width:180px;" value="{$smarty.request.street|stripslashes|default:$row->street|escape}" />&nbsp;
<input name="street_nr" type="text" id="street_nr" size="7" style="width:60px;" maxlength="10" value="{$smarty.request.street_nr|stripslashes|default:$row->street_nr|escape}" />
<input name="street" type="text" id="street" size="25" style="width:180px;" value="{$smarty.request.street|default:''|stripslashes|default:$row->street|escape}" />&nbsp;
<input name="street_nr" type="text" id="street_nr" size="7" style="width:60px;" maxlength="10" value="{$smarty.request.street_nr|default:''|stripslashes|default:$row->street_nr|escape}" />
</div></td>
</tr>
<tr>
<td>{#USER_ZIP_CODE#}</td>
<td><div class="pr12"><input name="zipcode" type="text" id="zipcode" size="40" style="width:250px;" maxlength="20" value="{$smarty.request.zipcode|stripslashes|default:$row->zipcode|escape}" /></div></td>
<td><div class="pr12"><input name="zipcode" type="text" id="zipcode" size="40" style="width:250px;" maxlength="20" value="{$smarty.request.zipcode|default:''|stripslashes|default:$row->zipcode|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_CITY#}</td>
<td><div class="pr12"><input name="city" type="text" id="city" size="40" style="width:250px;" value="{$smarty.request.city|stripslashes|default:$row->city|escape}" /></div></td>
<td><div class="pr12"><input name="city" type="text" id="city" size="40" style="width:250px;" value="{$smarty.request.city|default:''|stripslashes|default:$row->city|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_COUNTRY#}</td>
<td><div class="pr12">
<select name="country" style="width:250px;">
<select name="country" style="width:250px;">
{if $smarty.request.action=='new'}
{assign var=sL value=$smarty.request.country|default:$smarty.session.user_language|lower|escape|stripslashes}
{else}
{assign var=sL value=$row->country|lower|escape|stripslashes}
{* Используем тернарный оператор Smarty для безопасного доступа к свойству $row->country *}
{assign var=sL value=($row && $row->country) ? $row->country : ''|lower|escape|stripslashes}
{/if}
{assign var=sL value=$row->country|escape|stripslashes}
{foreach from=$available_countries item=land}
<option value="{$land->country_code}"{if $sL == $land->country_code} selected="selected"{/if}>{$land->country_name|escape}</option>
@@ -197,67 +197,74 @@ function mail_status(){
<tr>
<td>{#USER_PHONE#}</td>
<td><div class="pr12"><input name="phone" type="text" id="phone" size="40" style="width:250px;" value="{$smarty.request.phone|stripslashes|default:$row->phone|escape}" /></div></td>
<td><div class="pr12"><input name="phone" type="text" id="phone" size="40" style="width:250px;" value="{$smarty.request.phone|default:''|stripslashes|default:$row->phone|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_FAX#}</td>
<td><div class="pr12"><input name="telefax" type="text" id="telefax" size="40" style="width:250px;" value="{$smarty.request.telefax|stripslashes|default:$row->telefax|escape}" /></div></td>
<td><div class="pr12"><input name="telefax" type="text" id="telefax" size="40" style="width:250px;" value="{$smarty.request.telefax|default:''|stripslashes|default:$row->telefax|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_BIRTHDAY#} <small>{#USER_BIRTHDAY_FORMAT#}</small></td>
<td><div class="pr12"><input name="birthday" type="text" id="birthday" size="25" style="width:250px;" maxlength="10" value="{$smarty.request.birthday|stripslashes|default:$row->birthday|escape}" /></div></td>
<td><div class="pr12"><input name="birthday" type="text" id="birthday" size="25" style="width:250px;" maxlength="10" value="{$smarty.request.birthday|default:''|stripslashes|default:$row->birthday|escape}" /></div></td>
</tr>
<tr>
<td>{#USER_NOTICE#}</td>
<td><div class="pr12"><textarea name="description" style="width:400px; height:100px" id="description">{$smarty.request.description|stripslashes|default:$row->description|escape}</textarea></div></td>
<td><div class="pr12"><textarea name="description" style="width:400px; height:100px" id="description">{$smarty.request.description|default:''|stripslashes|default:$row->description|escape}</textarea></div></td>
</tr>
{assign var=u_group value=$row->user_group|lower|escape|stripslashes}
{assign var=u_group value=($row && $row->user_group) ? $row->user_group : ''|lower|escape|stripslashes}
<tr>
<td>{#USER_MAIN_GROUP#}</td>
<td>
<div class="pr12">
{if check_permission('user_perms')}
{if ($smarty.session.user_id == $row->Id) && $row->user_group != 1}
<select name="user_group" disabled="disabled">
{foreach from=$ugroups item=groups}
{if $groups->user_group!=2}
<option value="{$groups->user_group}"{if $groups->user_group==$row->user_group} selected="selected"{/if}>{$groups->user_group_name}</option>
{/if}
{/foreach}
</select>
{else}
<select name="user_group" {if $row->Id==1 && $groups->user_group!=1} disabled="disabled"{/if}>
{foreach from=$ugroups item=groups}
{if $smarty.session.user_group != 1}
{if $row->user_group == 1 && $groups->user_group != 1}
<option value="{$groups->user_group}" disabled="disabled">{$groups->user_group_name|escape} {$row->user_group}</option>
{else}
{if $smarty.session.user_group != $groups->user_group}
<option value="{$groups->user_group}"{if $groups->user_group == $row->user_group} selected="selected"{/if}{if $row->user_group != 1 && $groups->user_group == 1} disabled="disabled"{/if}>{$groups->user_group_name|escape}</option>
{else}
<option value="{$groups->user_group}" disabled="disabled">{$groups->user_group_name|escape}</option>
{/if}
{/if}
{else}
<option value="{$groups->user_group}" {if $groups->user_group==$row->user_group}selected{/if}>{$groups->user_group_name|escape}</option>
{/if}
{/foreach}
</select>
{/if}
{else}
<select name="user_group" disabled="disabled">
{foreach from=$ugroups item=groups}
{if $groups->user_group!=2}
<option value="{$groups->user_group}"{if $groups->user_group==$row->user_group} selected="selected"{/if}>{$groups->user_group_name}</option>
{/if}
{/foreach}
</select>
{/if}
</div>
<div class="pr12">
{if check_permission('user_perms')}
{* Блок 1: Пользователь редактирует себя (не админ) *}
{if $row && ($smarty.session.user_id == $row->Id) && $row->user_group != 1}
<select name="user_group" disabled="disabled">
{foreach from=$ugroups item=groups}
{if $groups->user_group!=2}
<option value="{$groups->user_group}"{if $groups->user_group==$row->user_group} selected="selected"{/if}>{$groups->user_group_name}</option>
{/if}
{/foreach}
</select>
{else}
{* Блок 2: Все остальные (включая Админа и Новый Пользователь) *}
<select name="user_group" {if $row && $row->Id==1 && $groups && $groups->user_group!=1} disabled="disabled"{/if}>
{foreach from=$ugroups item=groups}
{* Безопасное получение user_group для сравнения, если $row == null, берем 0 *}
{assign var=u_group_id value=($row && $row->user_group) ? $row->user_group : 0}
{if $smarty.session.user_group != 1}
{if $u_group_id == 1 && $groups->user_group != 1}
<option value="{$groups->user_group}" disabled="disabled">{$groups->user_group_name|escape} {$row->user_group}</option>
{else}
{if $smarty.session.user_group != $groups->user_group}
<option value="{$groups->user_group}"{if $groups->user_group == $u_group_id} selected="selected"{/if}{if $u_group_id != 1 && $groups->user_group == 1} disabled="disabled"{/if}>{$groups->user_group_name|escape}</option>
{else}
<option value="{$groups->user_group}" disabled="disabled">{$groups->user_group_name|escape}</option>
{/if}
{/if}
{else}
{* Если пользователь - главный Админ, ему доступны все опции *}
<option value="{$groups->user_group}" {if $groups->user_group==$u_group_id}selected{/if}>{$groups->user_group_name|escape}</option>
{/if}
{/foreach}
</select>
{/if}
{else}
{* Блок 3: Нет прав user_perms *}
<select name="user_group" disabled="disabled">
{foreach from=$ugroups item=groups}
{if $groups->user_group!=2}
<option value="{$groups->user_group}"{if $groups->user_group==$row->user_group} selected="selected"{/if}>{$groups->user_group_name}</option>
{/if}
{/foreach}
</select>
{/if}
</div>
</td>
</tr>
@@ -267,10 +274,10 @@ function mail_status(){
<div class="pr12">
{if check_permission('user_perms')}
{foreach from=$ugroups item=groups}
<input type="checkbox" name="user_group_extra[]" class="float" value="{$groups->user_group}"
{if $groups->user_group == $row->user_group} disabled="disabled"{/if}
{if $us_groups|@is_array && in_array($groups->user_group, $us_groups)} checked="checked"{/if}
>
<input type="checkbox" name="user_group_extra[]" class="float" value="{$groups->user_group}"
{if $groups->user_group == (($row && $row->user_group) ? $row->user_group : 0)} disabled="disabled"{/if}
{if $us_groups|@is_array && in_array($groups->user_group, $us_groups)} checked="checked"{/if}
>
<label>{$groups->user_group_name|escape}</label>
<div class="clear"></div>
{/foreach}
@@ -283,10 +290,10 @@ function mail_status(){
<td>{#USER_STATUS#}</td>
<td>
<div class="pr12">
<select name="status" id="status" onchange="mail_status();">
<option id="free" value="1"{if $row->status==1 || $smarty.request.action=='new'} selected="selected"{/if}>{#USER_ACTIVE#}</option>
<option id="notfree" value="0"{if $row->Id==1 && $g->user_group!=1} disabled="disabled"{else}{if $row->status==0 && $smarty.request.action!='new'} selected="selected"{/if}{if $ItsGroup=='1' && $smarty.session.user_group=='1'} disabled="disabled"{/if}{/if}>{#USER_INACTIVE#}</option>
</select>
<select name="status" id="status" onchange="mail_status();">
<option id="free" value="1"{if ($row && $row->status==1) || $smarty.request.action=='new'} selected="selected"{/if}>{#USER_ACTIVE#}</option>
<option id="notfree" value="0"{if $row && $row->Id==1 && $g && $g->user_group!=1} disabled="disabled"{else}{if $row && $row->status==0 && $smarty.request.action!='new'} selected="selected"{/if}{if $ItsGroup=='1' && $smarty.session.user_group=='1'} disabled="disabled"{/if}{/if}>{#USER_INACTIVE#}</option>
</select>
</div>
{if $smarty.request.action=='edit'}
<div class="pr12" id="mail_status" style="display:none;clear:left;">
@@ -299,12 +306,12 @@ function mail_status(){
{if $smarty.request.action=='edit'}
<tr>
<td>{#USER_MESSAGE_SUBJECT#}</td>
<td><div class="pr12"><input name="SubjectMessage" type="text" id="SubjectMessage" value="{$smarty.request.SubjectMessage|stripslashes|escape}" size="40" style="width:400px;" /></div></td>
<td><div class="pr12"><input name="SubjectMessage" type="text" id="SubjectMessage" value="{$smarty.request.SubjectMessage|default:''|stripslashes|escape}" size="40" style="width:400px;" /></div></td>
</tr>
<tr>
<td>{#USER_MESSAGE_TEXT#}</td>
<td><div class="pr12"><textarea style="width:400px; height:100px" name="SimpleMessage" id="SimpleMessage">{$smarty.request.SimpleMessage|stripslashes|escape}</textarea></div></td>
<td><div class="pr12"><textarea style="width:400px; height:100px" name="SimpleMessage" id="SimpleMessage">{$smarty.request.SimpleMessage|default:''|stripslashes|escape}</textarea></div></td>
</tr>
{/if}

View File

@@ -51,20 +51,20 @@ $(document).ready(function(){ldelim}
</thead>
<tbody>
<tr>
<td><div class="pr12"><input name="query" type="text" value="{$smarty.request.query|escape|stripslashes}" /></div></td>
<td><div class="pr12"><input name="query" type="text" value="{$smarty.request.query|default:''|escape|stripslashes}" /></div></td>
<td>
<select name="user_group">
<option value="0">{#MAIN_ALL_USER_GROUP#}</option>
{foreach from=$ugroups item=g}
<option value="{$g->user_group}"{if $g->user_group==$smarty.request.user_group} selected="selected"{/if}>{$g->user_group_name|escape}</option>
<option value="{$g->user_group}"{if $g->user_group==$smarty.request.user_group|default:0} selected="selected"{/if}>{$g->user_group_name|escape}</option>
{/foreach}
</select>
</td>
<td>
<select name="status">
<option value="all"{if $smarty.request.status=='all'} selected="selected"{/if}>{#MAIN_USER_STATUS_ALL#}</option>
<option value="1"{if $smarty.request.status=='1'} selected="selected"{/if}>{#MAIN_USER_STATUS_ACTIVE#}</option>
<option value="0"{if $smarty.request.status=='0'} selected="selected"{/if}>{#MAIN_USER_STATUS_INACTIVE#}</option>
<option value="all"{if $smarty.request.status|default:'all' == 'all'} selected="selected"{/if}>{#MAIN_USER_STATUS_ALL#}</option>
<option value="1"{if $smarty.request.status|default:'' == '1'} selected="selected"{/if}>{#MAIN_USER_STATUS_ACTIVE#}</option>
<option value="0"{if $smarty.request.status|default:'' == '0'} selected="selected"{/if}>{#MAIN_USER_STATUS_INACTIVE#}</option>
</select>
</td>
</tr>

View File

@@ -94,7 +94,7 @@
id = '" . $block_id . "'
");
if ($sql->_result === false)
if (is_object($sql) && $sql->_result === false)
{
$message = $AVE_Template->get_config_vars('BLOCK_SAVED_ERR');
$header = $AVE_Template->get_config_vars('BLOCK_ERROR');

View File

@@ -1179,10 +1179,17 @@
$cacheCompile = false;
/* // Определяем рубрику
define('RUB_ID', ! empty ($rub_id)
? $rub_id
: $this->curentdoc->rubric_id);*/
// Определяем рубрику
define('RUB_ID', ! empty ($rub_id)
? $rub_id
: $this->curentdoc->rubric_id);
// ИСПРАВЛЕНИЕ: Проверяем, что $this->curentdoc является объектом
: (is_object($this->curentdoc) ? $this->curentdoc->rubric_id : 0)
);
$main_content = '';
@@ -2025,13 +2032,13 @@
$GLOBALS['block_generate']['DOCUMENT']['URL_PARSE'] = Debug::endTime('URL_PARSE');
//-- Перенаправление на адреса с суффиксом
//-- Перенаправление на адреса с суффиксом
if (
$check_url !== $get_url . URL_SUFF
&& ! $pages && $check_url
&& ! $_REQUEST['print']
&& ! $_REQUEST['module']
&& ! $_REQUEST['tag']
&& ! ($_REQUEST['print'] ?? '')
&& ! ($_REQUEST['module'] ?? '')
&& ! ($_REQUEST['tag'] ?? '')
&& REWRITE_MODE
)
{
@@ -2045,7 +2052,7 @@
}
}
// Иначе ищем URL в редиректах
else
/* else
{
$sql = "
SELECT
@@ -2076,7 +2083,46 @@
if (! (! empty($_REQUEST['sysblock']) || ! empty($_REQUEST['module']) || ! empty($_REQUEST['request'])))
$_GET['id'] = $_REQUEST['id'] = PAGE_NOT_FOUND_ID;
}
}*/
// Иначе ищем URL в редиректах
else
{
$sql = "
SELECT
# REDIRECT = $get_url
a.document_alias,
h.document_alias_header
FROM
".PREFIX."_document_alias_history AS h,
".PREFIX."_documents AS a
WHERE
h.document_id = a.Id
AND
h.document_alias = '" . $get_url . "'
";
$redirect_alias = $AVE_DB->Query($sql)->FetchRow();
$GLOBALS['block_generate']['DOCUMENT']['URL_PARSE'] = Debug::endTime('URL_PARSE');
// ИСПРАВЛЕНИЕ: Используем оператор Nullsafe (?->)
if ($redirect_alias?->document_alias)
{
$redirect_alias = ABS_PATH . $redirect_alias->document_alias . URL_SUFF;
$redirect_alias = str_replace('//', '/', $redirect_alias);
// ДОПОЛНИТЕЛЬНОЕ ИСПРАВЛЕНИЕ: Безопасный доступ к document_alias_header
// Это может быть причиной другой ошибки, если $redirect_alias->document_alias_header не существует
$header_code = $redirect_alias->document_alias_header ?? 301;
header('Location:' . $redirect_alias, true, $header_code);
exit;
}
if (! (! empty($_REQUEST['sysblock']) || ! empty($_REQUEST['module']) || ! empty($_REQUEST['request'])))
$_GET['id'] = $_REQUEST['id'] = PAGE_NOT_FOUND_ID;
}
unset ($sql, $query);
}

View File

@@ -139,10 +139,15 @@
return false;
}
if ($this->NumRows())
if ($this->NumRows())
{
$a = mysqli_fetch_row($this->_result);
return $a[0];
// Проверяем, что $a является массивом перед доступом к индексу 0
if (is_array($a)) {
return $a[0];
}
// Если $a не является массивом (т.е., null/false), падаем на return false ниже.
}
return false;

View File

@@ -870,7 +870,9 @@
{
global $AVE_DB;
define ('START_MEMORY', memory_get_usage());
if (!defined('START_MEMORY')) {
define('START_MEMORY', memory_get_usage());
}
$stat = null;
@@ -973,7 +975,9 @@
else if ($type == 'globals')
var_dump($GLOBALS);
else if ($type == 'blocks')
var_dump($GLOBALS['block_generate']);
if (isset($GLOBALS['block_generate'])) {
var_dump($GLOBALS['block_generate']);
}
$stat = ob_get_contents();
$stat = preg_replace('/=>(\s+|\s$)/', ' => ', $stat);
$stat = htmlspecialchars($stat);
@@ -986,7 +990,7 @@
}
public static function getDocumentInfo ()
public static function getDocumentInfo ()
{
global $AVE_Template;
@@ -999,21 +1003,31 @@
'NAVIAGTIONS' => '/admin/index.php?do=navigation&action=templates&navigation_id='
];
$doc = get_document($_REQUEST['id']);
// ИСПРАВЛЕНИЕ : Безопасно получаем 'id' из $_REQUEST
$doc = get_document($_REQUEST['id'] ?? '');
$_edit = [];
$_edit['DOC'][$doc['Id']] = $_arr['DOC'] . $doc['Id'];
$_edit['RUBRIC'][$doc['rubric_id']] = $_arr['RUBRIC'] . $doc['rubric_id'];
// ИСПРАВЛЕНИЕ : Проверяем, что $doc содержит данные и нужные ключи
if (!empty($doc) && isset($doc['Id'], $doc['rubric_id'])) {
$_edit['DOC'][$doc['Id']] = $_arr['DOC'] . $doc['Id'];
$_edit['RUBRIC'][$doc['rubric_id']] = $_arr['RUBRIC'] . $doc['rubric_id'];
}
// ИСПРАВЛЕНИЕ : Проверяем, что $GLOBALS['block_generate'] существует и является массивом/объектом
if (isset($GLOBALS['block_generate']) && (is_array($GLOBALS['block_generate']) || $GLOBALS['block_generate'] instanceof Traversable)) {
foreach ($GLOBALS['block_generate'] AS $k => $v)
{
if (! in_array($k, array_keys($_arr))) {
continue;
}
foreach ($GLOBALS['block_generate'] AS $k => $v)
{
if (! in_array($k, array_keys($_arr))) {
continue;
}
foreach ($v as $key => $value) {
$_edit[$k][$key] = $_arr[$k] . $key;
// Защита внутреннего цикла
if (is_array($v) || $v instanceof Traversable) {
foreach ($v as $key => $value) {
$_edit[$k][$key] = $_arr[$k] . $key;
}
}
}
}

View File

@@ -1024,7 +1024,7 @@
}
}
/**
/**
* Метод, предназначенный для сохранения ревизии документа в БД
*
*/
@@ -1049,6 +1049,11 @@
$rows = array();
// Проверка на случай, если запрос не вернул результат
if (!is_object($sql)) {
return $rows;
}
while ($row = $sql->FetchAssocArray())
{
$row['field_value'] = (string)$row['field_value'] . (string)$row['more'];
@@ -1057,17 +1062,28 @@
$dtime = $AVE_DB->Query('SELECT document_changed FROM ' . PREFIX . '_documents WHERE Id = ' . $document_id)->GetCell();
$last_rev = @unserialize($AVE_DB->Query("SELECT doc_data FROM " . PREFIX . "_document_rev WHERE doc_id=" . $document_id . " ORDER BY doc_revision DESC LIMIT 1")->GetCell());
// это я долго пытался понять почему всегда старая ревизия не равна новой даже если просто нажали лишний раз сохранить
// оказывается редактор подсовывет alt="" если альта в имге нету и сносит его если он есть там пустой ))))))))))
// но пусть проверка будет - может редакторы сменятся/апдейтятся а может кто просто хардкором будет код править)))
// Получаем последнюю ревизию и безопасно десериализуем. Если ревизий нет, $last_rev будет не массивом.
$last_rev_data = $AVE_DB->Query("SELECT doc_data FROM " . PREFIX . "_document_rev WHERE doc_id=" . $document_id . " ORDER BY doc_revision DESC LIMIT 1")->GetCell();
$last_rev = @unserialize($last_rev_data);
// Начинаем с предположения, что ревизия не нужна
$dorev = false;
foreach ($rows as $k => $v)
{
if ($rows[$k] <> $last_rev[$k])
// ИСПРАВЛЕНИЕ: Если $last_rev не массив (т.е. ревизия первая), форсируем запись.
if (!is_array($last_rev)) {
$dorev = true;
}
// Если ревизия еще не помечена к записи (т.е. она не первая), проверяем изменения.
if (!$dorev) {
foreach ($rows as $k => $v)
{
$dorev = true;
// Безопасно проверяем, существует ли ключ в старой ревизии и изменилось ли его значение.
if (isset($last_rev[$k]) && $rows[$k] <> $last_rev[$k])
{
$dorev = true;
break; // Изменение найдено, можно прервать цикл
}
}
}
@@ -2002,7 +2018,7 @@
$iid = $this->documentSave($rubric_id, null, $_POST, true);
if ($_REQUEST['doc_after'])
if ($_REQUEST['doc_after'] ?? false)
header('Location:index.php?do=docs&action=after&document_id=' . $iid . '&rubric_id=' . $rubric_id . '&cp=' . SESSION . $innavi);
else
header('Location:index.php?do=docs&action=edit&Id=' . $iid . '&rubric_id=' . $rubric_id . '&cp=' . SESSION);
@@ -2111,7 +2127,16 @@
$document->lang_pack=$lang_pack;
$document->fields = $fields_list;
$document->rubric_title = $AVE_Rubric->rubricNameByIdGet($rubric_id)->rubric_title;
$document->rubric_url_prefix = strftime(str_ireplace("%id", $maxId+1, $AVE_Rubric->rubricNameByIdGet($rubric_id)->rubric_alias));
//Устарело в PHP - 8.4
//$document->rubric_url_prefix = strftime(str_ireplace("%id", $maxId+1, $AVE_Rubric->rubricNameByIdGet($rubric_id)->rubric_alias));
// ИСПРАВЛЕНИЕ: Замена устаревшей strftime() на безопасные date() и str_ireplace()
$alias_template = $AVE_Rubric->rubricNameByIdGet($rubric_id)->rubric_alias;
$alias_template = str_ireplace(
array('%Y', '%y', '%m', '%d'), // Шаблоны strftime
array(date('Y'), date('y'), date('m'), date('d')), // Эквиваленты date()
$alias_template
);
$document->rubric_url_prefix = str_ireplace("%id", $maxId+1, $alias_template);
$document->formaction = 'index.php?do=docs&action=new&sub=save&rubric_id=' . $rubric_id . ((isset($_REQUEST['pop']) && $_REQUEST['pop']==1) ? 'pop=1' : '') . '&cp=' . SESSION;
$document->count_groups = count($fields_list);
$document->document_published = time();
@@ -2737,7 +2762,8 @@
$fields_list[$group_id]['group_position'] = ($field->group_position) ? $field->group_position : 100;
$fields_list[$group_id]['group_title'] = $field->group_title;
$fields_list[$group_id]['fields'][$field->Id]['Id'] = $field->Id;
$fields_list[$group_id]['fields'][$field->Id]['rubric_id'] = $row->rubric_id;
//$fields_list[$group_id]['fields'][$field->Id]['rubric_id'] = $row->rubric_id;
$fields_list[$group_id]['fields'][$field->Id]['rubric_id'] = (int)($row->rubric_id ?? 0);
$fields_list[$group_id]['fields'][$field->Id]['rubric_field_title'] = $field->rubric_field_title;
$fields_list[$group_id]['fields'][$field->Id]['rubric_field_description'] = $field->rubric_field_description;
$fields_list[$group_id]['fields'][$field->Id]['result'] = $field->field;
@@ -2753,7 +2779,16 @@
$document->count_groups = count($fields_list);
$document->document_alias = '';
$document->rubric_title = $AVE_Rubric->rubricNameByIdGet($_REQUEST['rubric_id'])->rubric_title;
$document->rubric_url_prefix = strftime(str_ireplace("%id", $maxId+1, $AVE_Rubric->rubricNameByIdGet($_REQUEST['rubric_id'])->rubric_alias));
//Устарело в PHP - 8.4
//$document->rubric_url_prefix = strftime(str_ireplace("%id", $maxId+1, $AVE_Rubric->rubricNameByIdGet($_REQUEST['rubric_id'])->rubric_alias));
// ИСПРАВЛЕНИЕ: Замена устаревшей strftime() на безопасные date() и str_ireplace()
$alias_template = $AVE_Rubric->rubricNameByIdGet($_REQUEST['rubric_id'])->rubric_alias;
$alias_template = str_ireplace(
array('%Y', '%y', '%m', '%d'), // Шаблоны strftime
array(date('Y'), date('y'), date('m'), date('d')), // Эквиваленты date()
$alias_template
);
$document->rubric_url_prefix = str_ireplace("%id", $maxId+1, $alias_template);
$document->formaction = 'index.php?do=docs&action=copy&sub=save&rubric_id=' . $_REQUEST['rubric_id'] . ((isset($_REQUEST['pop']) && $_REQUEST['pop']==1) ? 'pop=1' : '') . '&cp=' . SESSION;
$document->document_published = time();
$document->document_expire = mktime(date("H"), date("i"), 0, date("m"), date("d"), date("Y") + 10);
@@ -3906,7 +3941,7 @@
TRUNCATE TABLE " . PREFIX . "_document_rev
");
if ($sql->_result === false)
if (is_object($sql) && $sql->_result === false)
{
$message = $AVE_Template->get_config_vars('SETTINGS_REV_DELETED_ERR');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
@@ -3953,7 +3988,7 @@
" . PREFIX . "_view_count
");
if ($sql->_result === false)
if (is_object($sql) && $sql->_result === false)
{
$message = $AVE_Template->get_config_vars('SETTINGS_COUNT_DELETED_ERR');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');

View File

@@ -8,14 +8,14 @@
* This source file is part of the AVE.cms. More information,
* documentation and tutorials can be found at http://www.ave-cms.ru
*
* @package AVE.cms
* @file system/helpers/hooks.php
* @author @
* @copyright 2007-2016 (c) AVE.cms
* @link http://www.ave-cms.ru
* @version 4.0
* @since $date$
* @license license GPL v.2 http://www.ave-cms.ru/license.txt
* @package AVE.cms
* @file system/helpers/hooks.php
* @author @
* @copyright 2007-2016 (c) AVE.cms
* @link http://www.ave-cms.ru
* @version 4.0
* @since $date$
* @license license GPL v.2 http://www.ave-cms.ru/license.txt
*/
class Hooks
@@ -74,20 +74,20 @@
/**
* Do Hook
*/
public static function trigger ($name, $arguments = "")
public static function trigger ($hook_name, $arguments = "")
{
// Oh, no you didn't. Are you trying to run an action hook that doesn't exist?
if (! isset(self::$hooks[$name]))
if (! isset(self::$hooks[$hook_name]))
{
return $arguments;
}
// Set the current running hook to this
self::$current_hook = $name;
self::$current_hook = $hook_name;
// Key sort our action hooks
ksort(self::$hooks[$name]);
foreach (self::$hooks[$name] AS $priority => $names)
ksort(self::$hooks[$hook_name]);
foreach (self::$hooks[$hook_name] AS $priority => $names)
{
if (is_array($names))
{
@@ -102,7 +102,9 @@
$arguments = $return;
}
self::$run_hooks[$name][$priority];
// ИСПРАВЛЕНИЕ: Устранение Fatal Error и Warning.
// Используем $hook_name (строка) в качестве ключа.
self::$run_hooks[$hook_name][$priority] = (self::$run_hooks[$hook_name][$priority] ?? 0) + 1;
}
}
}

View File

@@ -37,7 +37,7 @@
* Внешние методы класса
*/
/**
/**
* Метод, предназначенный для отображения всех записей Журнала событий
*
*/
@@ -60,21 +60,22 @@
while (!feof($fp))
{
$event = fgetcsv($fp, $_slice);
// ИСПРАВЛЕНИЕ: Добавляем обязательные параметры: разделитель (','), ограничитель ('"'), экранирование ('\\')
$event = fgetcsv($fp, $_slice, ',', '"', '\\');
if (empty($event[0]) || count($event) < 3) {
continue;
}
$_lines[] = [
'log_time' => $event['0'],
'log_ip' => $event['1'],
'log_url' => $event['2'],
'log_user_id' => $event['3'],
'log_user_name' => $event['4'],
'log_text' => $event['5'],
'log_type' => $event['6'],
'log_rubric' => $event['7']
$_lines[] = [
'log_time' => $event['0'] ?? '',
'log_ip' => $event['1'] ?? '',
'log_url' => $event['2'] ?? '',
'log_user_id' => $event['3'] ?? '',
'log_user_name' => $event['4'] ?? '',
'log_text' => $event['5'] ?? '',
'log_type' => $event['6'] ?? '',
'log_rubric' => $event['7'] ?? ''
];
}
@@ -109,7 +110,7 @@
while (!feof($fp))
{
$event = fgetcsv($fp, $_slice);
$event = fgetcsv($fp, $_slice, ',', '"', '\\');
if (empty($event[0]) || count($event) < 3) {
continue;

View File

@@ -217,28 +217,28 @@
// Если пользователь нажал на кнопку Сохранить изменения
case 'save':
// Выполняем запрос к БД и обновляем информацию в таблице для данного меню
// Выполняем запрос к БД и обновляем информацию в таблице для данного меню
$sql = $AVE_DB->Query("
UPDATE " . PREFIX . "_navigation
SET
title = '" . $_REQUEST['title'] . "',
alias = '" . $_REQUEST['alias'] . "',
level1 = '" . $_REQUEST['level1'] . "',
level1_active = '" . $_REQUEST['level1_active'] . "',
level2 = '" . $_REQUEST['level2'] . "',
level2_active = '" . $_REQUEST['level2_active'] . "',
level3 = '" . $_REQUEST['level3'] . "',
level3_active = '" . $_REQUEST['level3_active'] . "',
level1_begin = '" . $_REQUEST['level1_begin'] . "',
level2_begin = '" . $_REQUEST['level2_begin'] . "',
level3_begin = '" . $_REQUEST['level3_begin'] . "',
level1_end = '" . $_REQUEST['level1_end'] . "',
level2_end = '" . $_REQUEST['level2_end'] . "',
level3_end = '" . $_REQUEST['level3_end'] . "',
begin = '" . $_REQUEST['begin'] . "',
end = '" . $_REQUEST['end'] . "',
title = '" . (isset($_REQUEST['title']) ? $_REQUEST['title'] : '') . "',
alias = '" . (isset($_REQUEST['alias']) ? $_REQUEST['alias'] : '') . "',
level1 = '" . (isset($_REQUEST['level1']) ? $_REQUEST['level1'] : '') . "',
level1_active = '" . (isset($_REQUEST['level1_active']) ? $_REQUEST['level1_active'] : '') . "',
level2 = '" . (isset($_REQUEST['level2']) ? $_REQUEST['level2'] : '') . "',
level2_active = '" . (isset($_REQUEST['level2_active']) ? $_REQUEST['level2_active'] : '') . "',
level3 = '" . (isset($_REQUEST['level3']) ? $_REQUEST['level3'] : '') . "',
level3_active = '" . (isset($_REQUEST['level3_active']) ? $_REQUEST['level3_active'] : '') . "',
level1_begin = '" . (isset($_REQUEST['level1_begin']) ? $_REQUEST['level1_begin'] : '') . "',
level2_begin = '" . (isset($_REQUEST['level2_begin']) ? $_REQUEST['level2_begin'] : '') . "',
level3_begin = '" . (isset($_REQUEST['level3_begin']) ? $_REQUEST['level3_begin'] : '') . "',
level1_end = '" . (isset($_REQUEST['level1_end']) ? $_REQUEST['level1_end'] : '') . "',
level2_end = '" . (isset($_REQUEST['level2_end']) ? $_REQUEST['level2_end'] : '') . "',
level3_end = '" . (isset($_REQUEST['level3_end']) ? $_REQUEST['level3_end'] : '') . "',
begin = '" . (isset($_REQUEST['begin']) ? $_REQUEST['begin'] : '') . "',
end = '" . (isset($_REQUEST['end']) ? $_REQUEST['end'] : '') . "',
user_group = '" . (empty($_REQUEST['user_group']) ? '' : implode(',', $_REQUEST['user_group'])) . "',
expand_ext = '" . $_REQUEST['expand_ext'] . "'
expand_ext = '" . (isset($_REQUEST['expand_ext']) ? $_REQUEST['expand_ext'] : '') . "'
WHERE
navigation_id = '" . $navigation_id . "'
");
@@ -643,7 +643,7 @@
$AVE_Template->assign('content', $AVE_Template->fetch('navigation/item_new.tpl'));
break;
case 'edit':
case 'edit':
$item = $AVE_DB->Query("
SELECT
@@ -656,15 +656,17 @@
$item->css_style = stripslashes($item->css_style);
// <<< КЛЮЧЕВОЕ ИСПРАВЛЕНИЕ: ИНИЦИАЛИЗАЦИЯ >>>
$doc_info = array();
if ($item->document_id)
$doc_info = get_document((int)$item->document_id);
$item->document_title = (($doc_info['document_breadcrum_title'])
$item->document_title = ((isset($doc_info['document_breadcrum_title']) && $doc_info['document_breadcrum_title'])
? $doc_info['document_breadcrum_title']
: $doc_info['document_title']);
$item->document_alias = $doc_info['document_alias'];
: ($doc_info['document_title'] ?? ''));
$item->document_alias = $doc_info['document_alias'] ?? '';
$AVE_Template->assign('item', $item);
$AVE_Template->assign('content', $AVE_Template->fetch('navigation/item_edit.tpl'));
break;
@@ -720,11 +722,11 @@
")->GetCell();
//-- Стираем кеш навигации
$this->clearCache($_REQUEST['navigation_id'], $alias);
$this->clearCache((isset($_REQUEST['navigation_id']) ? $_REQUEST['navigation_id'] : ''), $alias);
}
else
{
if ($_REQUEST['after'])
if (isset($_REQUEST['after']) && $_REQUEST['after'])
$after = $AVE_DB->Query("SELECT * FROM ".PREFIX."_navigation_items WHERE navigation_item_id = '" . $_REQUEST['after'] . "' ")->FetchArray();
else
$after = array('parent_id' => 0, 'level' => 1, 'position' => 0);
@@ -774,7 +776,7 @@
'message' => $message,
'header' => $header,
'theme' => $theme,
'after' => $_REQUEST['after'],
'after' => (isset($_REQUEST['after']) ? $_REQUEST['after'] : null),
'item_id' => $navigation_item_id)
);
exit;
@@ -1081,6 +1083,7 @@
return;
// Выполняем запрос к БД и получаем id пункта меню, который соответствует идентификатору документа в ссылке
$item = $AVE_DB->Query("
SELECT
*
@@ -1090,14 +1093,19 @@
navigation_item_id = '" . $navigation_item_id . "'
")->FetchAssocArray();
// ИНИЦИАЛИЗАЦИЯ: Убеждаемся, что $doc_info всегда существует
$doc_info = array(); // <--- КЛЮЧЕВОЕ ИСПРАВЛЕНИЕ
if ($item['document_id'])
$doc_info = get_document((int)$item['document_id']);
$item['document_title'] = (($doc_info['document_breadcrum_title'])
// Теперь все последующие обращения безопасны:
$item['document_title'] = ((isset($doc_info['document_breadcrum_title']) && $doc_info['document_breadcrum_title'])
? $doc_info['document_breadcrum_title']
: $doc_info['document_title']);
: ($doc_info['document_title'] ?? '')); // Безопасный доступ
$item['document_alias'] = $doc_info['document_alias'];
$item['document_alias'] = $doc_info['document_alias'] ?? ''; // Безопасный доступ
$nav = $AVE_DB->Query("
SELECT
@@ -1142,7 +1150,7 @@
navigation_id = " . $navigation_id . "
");
if (is_array($item['children']))
if (isset($item['children']) && is_array($item['children']))
{
$this->navigationSortNested($item['children'], $item['id'], $level, $navigation_id);
}
@@ -1199,7 +1207,7 @@
navigation_id = " . $navigation_id . "
");
if (is_array($value['children']))
if (isset($value['children']) && is_array($value['children']))
{
$this->navigationSortNested($value['children'], $value['id'], $level, $navigation_id);
}
@@ -1284,8 +1292,11 @@
function clearCacheNav($id, $alias)
{
//$cache_id = explode('_', $id);
//$cache_id = 'navigations/' . $cache_id[1];
$cache_id = explode('_', $id);
$cache_id = 'navigations/' . $cache_id[1];
$cache_id = 'navigations/' . (isset($cache_id[1]) ? $cache_id[1] : $id); // Используем $id, если нет второй части
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'
@@ -1293,8 +1304,11 @@
rrmdir($cache_dir);
//$cache_id = explode('_', $alias);
//$cache_id = 'navigations/' . $cache_id[1];
$cache_id = explode('_', $alias);
$cache_id = 'navigations/' . $cache_id[1];
$cache_id = 'navigations/' . (isset($cache_id[1]) ? $cache_id[1] : $alias); // Используем $alias, если нет второй части
$cache_dir = BASE_DIR . '/tmp/cache/sql/' . (trim($cache_id) > ''
? trim($cache_id) . '/'

View File

@@ -133,13 +133,13 @@
}
private function __sleep ()
public function __sleep () // ИСПРАВЛЕНО
{
self::$_storage = serialize (self::$_storage);
}
private function __wakeup ()
public function __wakeup () // ИСПРАВЛЕНО
{
self::$_storage = unserialize (self::$_storage);
}

View File

@@ -742,7 +742,7 @@ class AVE_Request
condition_field_id = '" . $val['condition_field_id'] . "',
condition_value = '" . (! empty($val['condition_value']) ? $val['condition_value'] : '') . "',
condition_join = '" . $val['condition_join'] . "',
condition_status = '" . ((! empty($val['condition_value'])) ? (($val['condition_status'] == '1') ? '1' : '0') : ''). "'
condition_status = '" . ((! empty($val['condition_value'])) ? ((isset($val['condition_status']) && $val['condition_status'] == '1') ? '1' : '0') : ''). "'
WHERE
Id = '" . $condition_id . "'
");
@@ -825,6 +825,7 @@ class AVE_Request
// Если пользователь добавил новое условие
case 'new':
$message = '';
if ($_POST['new_value'] !== '')
{
// Выполняем запрос к БД на добавление нового условия
@@ -839,7 +840,7 @@ class AVE_Request
condition_join = '" . $_POST['oper_new'] . "'
");
if ($sql->_result === false)
if (is_object($sql) && $sql->_result === false)
{
$message = $AVE_Template->get_config_vars('REQUEST_COND_NEW_ERR');
$header = $AVE_Template->get_config_vars('REQUEST_ERROR');

View File

@@ -546,7 +546,7 @@
*
* @param int $rubric_id идентификатор рубрики
*/
function rubricFieldShow($rubric_id = 0, $ajax)
function rubricFieldShow($rubric_id = 0, $ajax = null)
{
global $AVE_DB, $AVE_Template;
@@ -796,12 +796,12 @@
}
}
/**
/**
* Создание нового поля рубрики
*
* @param int $rubric_id идентификатор рубрики
*/
function rubricFieldNew($rubric_id = 0, $ajax)
function rubricFieldNew($rubric_id = 0, $ajax= null)
{
global $AVE_DB, $AVE_Template;
@@ -818,27 +818,28 @@
if ($_POST['rub_type_new'] == 'dropdown')
{
$rubric_field_default = trim($_POST['default_value']);
$rubric_field_default = trim($_POST['default_value'] ?? '');
$rubric_field_default = preg_split('/\s*,\s*/', $rubric_field_default);
$rubric_field_default = implode(',', $rubric_field_default);
}
else
{
$rubric_field_default = $_POST['default_value'];
// ИСПРАВЛЕНО (строка 827): Защита от отсутствия ключа 'default_value'
$rubric_field_default = $_POST['default_value'] ?? '';
}
$AVE_DB->Query("
INSERT
" . PREFIX . "_rubric_fields
SET
rubric_id = '" . $rubric_id . "',
rubric_field_group = '" . (($_POST['group_new'] != '') ? (int)$_POST['group_new'] : '0') . "',
rubric_field_title = '" . $_POST['title_new'] . "',
rubric_field_type = '" . $_POST['rub_type_new'] . "',
rubric_id = '" . $rubric_id . "',
rubric_field_group = '" . (($_POST['group_new'] ?? '') != '' ? (int)($_POST['group_new'] ?? 0) : '0') . "',
rubric_field_title = '" . $_POST['title_new'] . "',
rubric_field_type = '" . $_POST['rub_type_new'] . "',
rubric_field_position = '" . $position . "',
rubric_field_default = '" . $rubric_field_default . "',
rubric_field_numeric = '" . (($_POST['rubric_field_numeric'] == 1) ? $_POST['rubric_field_numeric'] : '0') . "',
rubric_field_search = '" . (($_POST['rubric_field_search'] == 1) ? $_POST['rubric_field_search'] : '0') . "'
rubric_field_default = '" . $rubric_field_default . "',
rubric_field_numeric = '" . ((($_POST['rubric_field_numeric'] ?? 0) == 1) ? 1 : 0) . "',
rubric_field_search = '" . ((($_POST['rubric_field_search'] ?? 0) == 1) ? 1 : 0) . "'
");
$UpdateRubricField = $AVE_DB->InsertId();
@@ -1076,7 +1077,8 @@
}
}
foreach ($_POST['del'] as $id => $Del)
// ИСПРАВЛЕНИЕ: Используем оператор объединения с null (??) для защиты от отсутствия ключа 'del'
foreach ($_POST['del'] ?? [] as $id => $Del)
{
if (! empty($Del))
{
@@ -2400,7 +2402,7 @@
}
function EditFieldTpl($id = '', $fld, $type)
function EditFieldTpl($id = '', $fld = null, $type = null)
{
global $AVE_DB, $AVE_Template, $_fm_dir;
@@ -2465,7 +2467,7 @@
* Сохранение шаблона
*
*/
function SaveFieldTpl($id = '', $fld, $type, $func)
function SaveFieldTpl($id = '', $fld = null, $type = null, $func = null)
{
global $AVE_DB;
@@ -2573,10 +2575,14 @@
}
function clearChanges()
function clearChanges()
{
$cache_file = BASE_DIR . '/tmp/cache/sql/rubrics/all/rubrics.cahnges';
unlink($cache_file);
// ИСПРАВЛЕНИЕ: Проверяем существование файла перед удалением
if (file_exists($cache_file)) {
unlink($cache_file);
}
}
}
?>

View File

@@ -487,7 +487,7 @@ function settingsSave()
Id = 1
");
if ($sql->_result === false)
if (is_object($sql) && $sql->_result === false)
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_ERR');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
@@ -600,68 +600,111 @@ function settingsSave()
}
/**
* Метод Редактирования параметров языков
*
*/
function settingsLanguageEdit()
{
global $AVE_DB, $AVE_Template;
/**
* Метод Редактирования параметров языков
*
*/
function settingsLanguageEdit()
{
global $AVE_DB, $AVE_Template;
if (isset($_REQUEST["Id"]))
{
$items = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_settings_lang
WHERE
Id = '" . $_REQUEST["Id"] . "'
")->FetchRow();
// Инициализируем $items как null, чтобы шаблон работал при добавлении
$items = null;
// Безопасно получаем ID (используем 'id' или 'Id', если что-то передано)
$lang_id = (int)($_REQUEST['id'] ?? $_REQUEST['Id'] ?? 0);
$AVE_Template->assign('items', $items);
}
if ($lang_id > 0)
{
$result = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_settings_lang
WHERE
Id = '" . $lang_id . "'
");
// Безопасное получение данных
if (is_object($result)) {
$items = $result->FetchRow();
}
}
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_lang_edit.tpl'));
}
// Передаем $items (либо объект, либо null) в шаблон
$AVE_Template->assign('items', $items);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_lang_edit.tpl'));
}
function settingsLanguageEditSave()
{
global $AVE_DB, $AVE_Template;
function settingsLanguageEditSave()
{
global $AVE_DB, $AVE_Template;
// 1. Сохранение/Обновление данных языка в БД (Ваш оригинальный код)
if (! empty($_REQUEST["Id"]))
{
$AVE_DB->Query("
UPDATE
" . PREFIX . "_settings_lang
SET
lang_key = '" .$_REQUEST['lang_key']. "',
lang_alias_pref = '" .$_REQUEST['lang_alias_pref']. "',
lang_name = '" .$_REQUEST['lang_name']. "'
WHERE
Id = '" . $_REQUEST["Id"] . "'
");
}
else
{
$AVE_DB->Query("
INSERT INTO
" . PREFIX . "_settings_lang
SET
lang_key = '" .$_REQUEST['lang_key']. "',
lang_name = '" .$_REQUEST['lang_name']. "',
lang_alias_pref = '" .$_REQUEST['lang_alias_pref']. "',
lang_default = '0',
lang_status = '0'
");
if (! empty($_REQUEST["Id"]))
{
$AVE_DB->Query("
UPDATE
" . PREFIX . "_settings_lang
SET
lang_key = '" .$_REQUEST['lang_key']. "',
lang_alias_pref = '" .$_REQUEST['lang_alias_pref']. "',
lang_name = '" .$_REQUEST['lang_name']. "'
WHERE
Id = '" . $_REQUEST["Id"] . "'
");
}
else
{
$AVE_DB->Query("
INSERT INTO
" . PREFIX . "_settings_lang
SET
lang_key = '" .$_REQUEST['lang_key']. "',
lang_name = '" .$_REQUEST['lang_name']. "',
lang_alias_pref = '" .$_REQUEST['lang_alias_pref']. "',
lang_default = '0',
lang_status = '0'
");
}
}
$AVE_DB->clearCache('langs');
// 2. Логика сохранения загруженного флага (ДОБАВЛЕНО)
echo "<script>window.opener.location.reload(); window.close();</script>";
}
$lang_key = $_REQUEST['lang_key'] ?? '';
if (!empty($lang_key) && isset($_FILES['lang_flag']) && $_FILES['lang_flag']['error'] === UPLOAD_ERR_OK) {
$file = $_FILES['lang_flag'];
// ПУТЬ: BASE_DIR/lib/flags/
$upload_dir = BASE_DIR . '/lib/flags/';
// Проверяем и создаем папку, если нужно
if (!is_dir($upload_dir)) {
@mkdir($upload_dir, 0777, true);
}
// Ожидаем PNG-файл
if ($file['type'] === 'image/png') {
$target_file = $upload_dir . $lang_key . '.png';
// Сохраняем файл
if (move_uploaded_file($file['tmp_name'], $target_file)) {
// Успех
} else {
// Ошибка: проверить права доступа к /lib/flags/
}
}
}
// 3. Очистка кэша и закрытие окна
$AVE_DB->clearCache('langs');
echo "<script>window.opener.location.reload(); window.close();</script>";
}
function settingsPaginationsList()

View File

@@ -417,7 +417,7 @@
}
/*
/*
|--------------------------------------------------------------------------------------
| editBlock
|--------------------------------------------------------------------------------------
@@ -429,39 +429,39 @@
{
global $AVE_DB, $AVE_Template;
$sysblock_id = $_REQUEST['id']
$sysblock_id = ($_REQUEST['id'] ?? null)
? (int)$_REQUEST['id']
: null;
if (is_numeric($sysblock_id))
{
$_REQUEST['sysblock_external'] = (isset($_REQUEST['sysblock_external'])) ? $_REQUEST['sysblock_external'] : 0;
$_REQUEST['sysblock_ajax'] = (isset($_REQUEST['sysblock_ajax'])) ? $_REQUEST['sysblock_ajax'] : 0;
$_REQUEST['sysblock_eval'] = (isset($_REQUEST['sysblock_eval'])) ? $_REQUEST['sysblock_eval'] : 0;
$_REQUEST['sysblock_visual'] = (isset($_REQUEST['sysblock_visual'])) ? $_REQUEST['sysblock_visual'] : 0;
$_REQUEST['sysblock_alias'] = isset($_REQUEST['sysblock_alias']) ? $_REQUEST['sysblock_alias'] : '';
// ❌ Удалены избыточные строки инициализации:
// $_REQUEST['sysblock_external'] = (isset($_REQUEST['sysblock_external'])) ? $_REQUEST['sysblock_external'] : 0;
// $_REQUEST['sysblock_ajax'] = (isset($_REQUEST['sysblock_ajax'])) ? $_REQUEST['sysblock_ajax'] : 0;
// $_REQUEST['sysblock_eval'] = (isset($_REQUEST['sysblock_eval'])) ? $_REQUEST['sysblock_eval'] : 0;
// $_REQUEST['sysblock_visual'] = (isset($_REQUEST['sysblock_visual'])) ? $_REQUEST['sysblock_visual'] : 0;
// $_REQUEST['sysblock_alias'] = isset($_REQUEST['sysblock_alias']) ? $_REQUEST['sysblock_alias'] : '';
$sql = "
UPDATE
" . PREFIX . "_sysblocks
SET
sysblock_group_id = '" . (int)$_REQUEST['sysblock_group_id'] . "',
sysblock_name = '" . $_REQUEST['sysblock_name'] . "',
sysblock_description = '" . addslashes($_REQUEST['sysblock_description']) . "',
sysblock_alias = '" . $_REQUEST['sysblock_alias'] . "',
sysblock_text = '" . $_REQUEST['sysblock_text'] . "',
sysblock_eval = '" . (int)$_REQUEST['sysblock_eval'] . "',
sysblock_external = '" . (int)$_REQUEST['sysblock_external'] . "',
sysblock_ajax = '" . (int)$_REQUEST['sysblock_ajax'] . "',
sysblock_visual = '" . (int)$_REQUEST['sysblock_visual'] . "'
sysblock_group_id = '" . (int)($_REQUEST['sysblock_group_id'] ?? 0) . "',
sysblock_name = '" . ($_REQUEST['sysblock_name'] ?? '') . "',
sysblock_description = '" . addslashes($_REQUEST['sysblock_description'] ?? '') . "',
sysblock_alias = '" . ($_REQUEST['sysblock_alias'] ?? '') . "',
sysblock_text = '" . ($_REQUEST['sysblock_text'] ?? '') . "',
sysblock_eval = '" . (int)($_REQUEST['sysblock_eval'] ?? 0) . "',
sysblock_external = '" . (int)($_REQUEST['sysblock_external'] ?? 0) . "',
sysblock_ajax = '" . (int)($_REQUEST['sysblock_ajax'] ?? 0) . "',
sysblock_visual = '" . (int)($_REQUEST['sysblock_visual'] ?? 0) . "'
WHERE
id = '" . $sysblock_id . "'
";
$query = $AVE_DB->Query($sql);
if ($query->_result === false)
if (is_object($query) && $query->_result === false)
{
$message = $AVE_Template->get_config_vars('SYSBLOCK_SAVED_ERR');
$header = $AVE_Template->get_config_vars('SYSBLOCK_ERROR');
@@ -474,10 +474,10 @@
$theme = 'accept';
//-- Стираем кеш сисблока
self::clearCache($sysblock_id, $_REQUEST['sysblock_alias']);
self::clearCache($sysblock_id, $_REQUEST['sysblock_alias'] ?? ''); // Также используем ?? для безопасности
//-- Сохраняем системное сообщение в журнал
reportLog($AVE_Template->get_config_vars('SYSBLOCK_SQLUPDATE') . " (" . stripslashes($_REQUEST['sysblock_name']) . ") (id: $sysblock_id)");
reportLog($AVE_Template->get_config_vars('SYSBLOCK_SQLUPDATE') . " (" . stripslashes($_REQUEST['sysblock_name'] ?? '') . ") (id: $sysblock_id)");
}
if (isAjax())
@@ -498,16 +498,16 @@
INSERT INTO
" . PREFIX . "_sysblocks
SET
sysblock_group_id = '" . (int)$_REQUEST['sysblock_group_id'] . "',
sysblock_name = '" . $_REQUEST['sysblock_name'] . "',
sysblock_description = '" . addslashes($_REQUEST['sysblock_description']) . "',
sysblock_alias = '" . $_REQUEST['sysblock_alias'] . "',
sysblock_text = '" . $_REQUEST['sysblock_text'] . "',
sysblock_author_id = '" . (int)$_SESSION['user_id'] . "',
sysblock_eval = '" . (int)$_REQUEST['sysblock_eval'] . "',
sysblock_external = '" . (int)$_REQUEST['sysblock_external'] . "',
sysblock_ajax = '" . (int)$_REQUEST['sysblock_ajax'] . "',
sysblock_visual = '" . (int)$_REQUEST['sysblock_visual'] . "',
sysblock_group_id = '" . (int)($_REQUEST['sysblock_group_id'] ?? 0) . "',
sysblock_name = '" . ($_REQUEST['sysblock_name'] ?? '') . "',
sysblock_description = '" . addslashes($_REQUEST['sysblock_description'] ?? '') . "',
sysblock_alias = '" . ($_REQUEST['sysblock_alias'] ?? '') . "',
sysblock_text = '" . ($_REQUEST['sysblock_text'] ?? '') . "',
sysblock_author_id = '" . (int)($_SESSION['user_id'] ?? 0) . "',
sysblock_eval = '" . (int)($_REQUEST['sysblock_eval'] ?? 0) . "',
sysblock_external = '" . (int)($_REQUEST['sysblock_external'] ?? 0) . "',
sysblock_ajax = '" . (int)($_REQUEST['sysblock_ajax'] ?? 0) . "',
sysblock_visual = '" . (int)($_REQUEST['sysblock_visual'] ?? 0) . "',
sysblock_created = '" . time() . "'
";
@@ -516,7 +516,7 @@
$sysblock_id = $AVE_DB->InsertId();
//-- Сохраняем системное сообщение в журнал
reportLog($AVE_Template->get_config_vars('SYSBLOCK_SQLNEW') . " (" . stripslashes($_REQUEST['sysblock_name']) . ") (id: $sysblock_id)");
reportLog($AVE_Template->get_config_vars('SYSBLOCK_SQLNEW') . " (" . stripslashes($_REQUEST['sysblock_name'] ?? '') . ") (id: $sysblock_id)");
}
if (! isset($_REQUEST['next_edit']))

View File

@@ -1,34 +1,39 @@
<?php
/**
* AVE.cms
*
* @package AVE.cms
* @version 4.x
* @version 4.x (АДАПТИРОВАНО ДЛЯ SMARTY 5 С NAMESPACE)
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
* @copyright © 2007-2025 AVE.cms, https://ave.gitget.ru
*
*/
/**
* Подключаем файл шаблонизатора Smarty
* Подключаем файл шаблонизатора Smarty (пользовательская установка)
*/
require(BASE_DIR . '/lib/Smarty/Smarty.class.php');
$smarty_path = BASE_DIR . '/lib/Smarty/libs/Smarty.class.php';
require($smarty_path);
// Импортируем класс Smarty 5 для удобства
use Smarty\Smarty;
/**
* Расширение класса шаблонизатора Smarty
*
* Теперь наследуемся от Smarty 5 через его namespace
*/
class AVE_Template extends Smarty
{
/**
* СВОЙСТВА
*/
// Явное объявление свойств для устранения Deprecated в PHP 8.2+
public string $cache_dir_root;
public string $module_cache_dir;
public string $session_dir;
public string $sql_cache_dir;
// Вернули свойства без явных типов
public $cache_dir_root;
public $module_cache_dir;
public $session_dir;
public $sql_cache_dir;
public $compile_dir;
/**
* Конструктор
@@ -38,6 +43,9 @@
*/
function __construct($template_dir)
{
// Вызов конструктора родителя Smarty
parent::__construct();
/**
* Путь к директории шаблонов по умолчанию.
* Если вы не передадите тип ресурса во время подключения файлов, они будут искаться здесь.
@@ -95,20 +103,73 @@
/**
* Регистрация плагинов-функций Smarty.
* Передается наименование функции шаблона и имя функции, реализующей ее.
* АДАПТАЦИЯ: register_function заменен на registerPlugin('function', ...) для Smarty 5.
* Добавлены проверки function_exists для предотвращения ошибки "not callable".
*/
$this->register_function('check_permission', 'check_permission');
$this->register_function('get_home_link', 'get_home_link');
$this->register_function('num_format', 'num_format');
$this->register_function('thumb', 'make_thumbnail');
if (function_exists('check_permission')) {
$this->registerPlugin('function', 'check_permission', 'check_permission');
}
if (function_exists('get_home_link')) {
$this->registerPlugin('function', 'get_home_link', 'get_home_link');
}
if (function_exists('num_format')) {
$this->registerPlugin('function', 'num_format', 'num_format');
}
// Исправленная строка: Проверяем make_thumbnail перед регистрацией 'thumb'
if (function_exists('make_thumbnail')) {
$this->registerPlugin('function', 'thumb', 'make_thumbnail');
}
/**
* Регистрация плагинов-модификаторов Smarty.
* Передается имя модификатора и имя функции, реализующей его.
* АДАПТАЦИЯ: register_modifier заменен на registerPlugin('modifier', ...) для Smarty 5.
*/
$this->register_modifier('pretty_date', 'pretty_date');
$this->register_modifier('translate_date', 'translate_date');
$this->register_modifier('utf8', 'utf8');
if (function_exists('pretty_date')) {
$this->registerPlugin('modifier', 'pretty_date', 'pretty_date');
}
if (function_exists('translate_date')) {
$this->registerPlugin('modifier', 'translate_date', 'translate_date');
}
if (function_exists('utf8')) {
$this->registerPlugin('modifier', 'utf8', 'utf8');
}
if (function_exists('check_permission')) {
// Регистрируем как модификатор, если функция существует
$this->registerPlugin('modifier', 'check_permission', 'check_permission');
}
// stripslashes - это нативная PHP-функция, проверка не нужна
$this->registerPlugin('modifier', 'stripslashes', 'stripslashes');
if (function_exists('htmlspecialchars')) {
// Регистрируем как модификатор, если функция существует
$this->registerPlugin('modifier', 'htmlspecialchars', 'htmlspecialchars');
}
if (function_exists('trim')) {
// Регистрируем как модификатор, если функция существует
$this->registerPlugin('modifier', 'trim', 'trim');
}
if (function_exists('format_size')) {
// Регистрируем как модификатор, если функция существует
$this->registerPlugin('modifier', 'format_size', 'format_size');
}
if (function_exists('urldecode')) {
// Регистрируем как модификатор, если функция существует
$this->registerPlugin('modifier', 'urldecode', 'urldecode');
}
if (function_exists('strtolower')) {
// Регистрируем как модификатор, если функция существует
$this->registerPlugin('modifier', 'strtolower', 'strtolower');
}
if (function_exists('constant')) {
// Регистрируем как модификатор, если функция существует
$this->registerPlugin('modifier', 'constant', 'constant');
}
// плагин позволяющий поставить метки шаблонов
// для быстрого поиска шаблона отвечающего за вывод
@@ -120,10 +181,10 @@
* Можно явно передавать пары имя/значение,
* или ассоциативные массивы, содержащие пары имя/значение.
*/
$assign['BASE_DIR'] = BASE_DIR;
$assign['ABS_PATH'] = ABS_PATH;
$assign['DATE_FORMAT'] = DATE_FORMAT;
$assign['TIME_FORMAT'] = TIME_FORMAT;
$assign['BASE_DIR'] = BASE_DIR;
$assign['ABS_PATH'] = ABS_PATH;
$assign['DATE_FORMAT'] = DATE_FORMAT;
$assign['TIME_FORMAT'] = TIME_FORMAT;
$assign['PAGE_NOT_FOUND_ID'] = PAGE_NOT_FOUND_ID;
$this->assign($assign);
@@ -153,59 +214,82 @@
* ВНЕШНИЕ МЕТОДЫ
*/
/**
* АДАПТАЦИЯ PHP 8 / SMARTY 5:
* Smarty 5 перешел на camelCase (getConfigVars), но старый код использует snake_case (get_config_vars).
* Создаем алиас для обратной совместимости.
*/
function get_config_vars($variable = null, $section = null)
{
return parent::getConfigVars($variable, $section);
}
/**
* Переопределение одноименного метода Smarty
* для конфигурационных файлов созданных в теме дизайна.
*
* ИСПРАВЛЕНИЕ: Добавлен default = null к $file для совместимости с PHP 8/Smarty 5
*
* @param string $file
* @param string $section
* @param string $scope
*/
function config_load($file, $section = null, $scope = 'global')
function config_load($file = null, $section = null, $scope = 'global')
{
Smarty::config_load($this->_redefine_template($file), $section, $scope);
// Используем parent::configLoad
parent::configLoad($this->_redefine_template($file), $section, $scope);
}
/**
* Переопределение одноименного метода Smarty
* для пользовательских шаблонов созданных в теме дизайна.
*
* ИСПРАВЛЕНИЕ: Добавлен default = null к $tpl_file для совместимости с PHP 8/Smarty 5
*
* @param string $tpl_file name of template file
* @param string $cache_id
* @param string $compile_id
* @return string|false results of {@link _read_cache_file()}
*/
function is_cached($tpl_file, $cache_id = null, $compile_id = null)
function is_cached($tpl_file = null, $cache_id = null, $compile_id = null)
{
return Smarty::is_cached($this->_redefine_template($tpl_file), $cache_id, $compile_id);
// Используем parent::isCached
return parent::isCached($this->_redefine_template($tpl_file), $cache_id, $compile_id);
}
/**
* Переопределение одноименного метода Smarty
* для пользовательских шаблонов созданных в теме дизайна.
*
* ИСПРАВЛЕНИЕ: Добавлен default = null к $resource_name для совместимости с PHP 8/Smarty 5
*
* @param string $resource_name
* @param string $cache_id
* @param string $compile_id
* @param boolean $display
* @return string
*/
function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)
function fetch($resource_name = null, $cache_id = null, $compile_id = null)
{
return Smarty::fetch($this->_redefine_template($resource_name), $cache_id, $compile_id, $display);
// Вызываем родительский fetch
return parent::fetch($this->_redefine_template($resource_name), $cache_id, $compile_id);
}
/**
* Переопределение одноименного метода Smarty
* для пользовательских шаблонов созданных в теме дизайна.
*
* ИСПРАВЛЕНИЕ: Добавлен default = null к $resource_name для совместимости с PHP 8/Smarty 5
*
* @param string $resource_name
* @param string $cache_id
*
* @param string $compile_id
*/
function display($resource_name, $cache_id = null, $compile_id = null)
function display($resource_name = null, $cache_id = null, $compile_id = null)
{
$this->fetch($resource_name, $cache_id, $compile_id, true);
// Вызываем родительский display
parent::display($this->_redefine_template($resource_name), $cache_id, $compile_id);
}
@@ -225,7 +309,7 @@
unlink($file->getRealPath());
}
rmdir($dir);
@rmdir($dir);
}
@@ -243,7 +327,7 @@
if (isset($_REQUEST['templateCache']) && $_REQUEST['templateCache'] == '1')
{
// Smarty clear cache
$this->clear_all_cache();
$this->clearAllCache();
foreach (glob($this->cache_dir_root . "/cache_*") as $filename)
@unlink($filename);
@@ -253,11 +337,13 @@
// Memcached
if (defined('MEMCACHED_SERVER') && defined('MEMCACHED_PORT') && MEMCACHED_SERVER && MEMCACHED_PORT)
{
$m = new Memcached();
$m = new \Memcached();
$m->addServer(MEMCACHED_SERVER, MEMCACHED_PORT);
$m->flush();
}
// Здесь используется getConfigVars, но вызывается через старый get_config_vars,
// что теперь будет работать благодаря алиасу
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS');
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS_LOG'));
@@ -278,7 +364,7 @@
if (isset($_REQUEST['templateCompiledTemplate']) && $_REQUEST['templateCompiledTemplate'] == '1')
{
// Smarty compiled cache
$this->clear_compiled_tpl();
$this->clearCompiledTemplate();
write_htaccess_deny($this->compile_dir . '/');
@@ -295,8 +381,8 @@
if (is_dir($this->module_cache_dir)) {
$this->recursivDelete($this->module_cache_dir);
}
mkdir($this->module_cache_dir, 0777, true);
@mkdir($this->module_cache_dir, 0777, true);
write_htaccess_deny($this->module_cache_dir . '/');
@@ -312,7 +398,7 @@
$this->recursivDelete($this->session_dir);
}
mkdir($this->session_dir, 0777, true);
@mkdir($this->session_dir, 0777, true);
write_htaccess_deny($this->session_dir . '/');
@@ -328,7 +414,7 @@
$this->recursivDelete($this->sql_cache_dir);
}
mkdir($this->sql_cache_dir, 0777, true);
@mkdir($this->sql_cache_dir, 0777, true);
write_htaccess_deny($this->sql_cache_dir . '/');
@@ -340,7 +426,7 @@
}
/**
/**
* Метод очистки миниатюр
*
*/
@@ -367,11 +453,15 @@
}
$hid_cat = (glob("$dirname/{.tmb}*", GLOB_ONLYDIR|GLOB_BRACE));
// ИСПРАВЛЕНИЕ: Проверяем, существует ли элемент [0]
if (!empty($hid_cat))
{
$hid_tmb = $hid_cat[0];
$hid_tmb = $hid_cat[0];
foreach (glob("$hid_cat[0]/*.png", GLOB_NOSORT) AS $filename)
unlink("$filename");
foreach (glob("$hid_cat[0]/*.png", GLOB_NOSORT) AS $filename)
unlink("$filename");
}
rrmdir(BASE_DIR . '/' . UPLOAD_DIR . '/' . THUMBNAIL_DIR);
}

View File

@@ -351,14 +351,14 @@
}
else
{
$sql = $AVE_DB->Query("
$sql = $AVE_DB->Query("
INSERT
INTO
" . PREFIX . "_templates
SET
Id = '',
template_title = '" . $_REQUEST['template_title'] . "',
template_text = '" . addslashes(pretty_chars($_REQUEST['template_text'])) . "',
Id = '',
template_title = '" . $_REQUEST['template_title'] . "',
template_text = '" . addslashes(pretty_chars($_REQUEST['template_text'])) . "',
template_author_id = '" . $_SESSION['user_id'] . "',
template_created = '" . time() . "'
");
@@ -368,12 +368,14 @@
// Сохраняем шаблон в файле
self::setTemplate($template_id);
reportLog($AVE_Template->get_config_vars('TEMPLATES_REPORT_NEW') . '(' . stripslashes(htmlspecialchars($_REQUEST['template_text'], ENT_QUOTES)) . ') (Id:' . (int)$iid . ')');
// ИСПРАВЛЕНО: $iid заменено на $template_id
reportLog($AVE_Template->get_config_vars('TEMPLATES_REPORT_NEW') . '(' . stripslashes(htmlspecialchars($_REQUEST['template_text'], ENT_QUOTES)) . ') (Id:' . (int)$template_id . ')');
if (! $_REQUEST['next_edit'])
header('Location:index.php?do=templates&cp=' . SESSION);
else
header('Location:index.php?do=templates&action=edit&Id=' . (int)$template_new . '&cp=' . SESSION);
// ИСПРАВЛЕНО: $template_new заменено на $template_id
header('Location:index.php?do=templates&action=edit&Id=' . (int)$template_id . '&cp=' . SESSION);
exit;
}

View File

@@ -61,6 +61,12 @@
*/
public $_error_prefix = 'Image: ';
protected $_gd_version_string;
protected $_gd_version_number;
protected $_gd_version;
protected $_gd_ttf;
protected $_gd_ps;
/**
* Defines imagetypes and how they are supported by the server

View File

@@ -363,7 +363,7 @@ if (is_numeric($user_group_id)) {
");
}
if ($sql->_result === false) {
if (is_object($sql) && $sql->_result === false) {
$message = $AVE_Template->get_config_vars('UGROUP_SAVED_ERR');
$header = $AVE_Template->get_config_vars('UGROUP_ERROR');
$theme = 'error';

View File

@@ -29,10 +29,12 @@
switch ($action)
{
case 'edit':
case 'edit':
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$AVE_Template->assign('doc_id', (int)$_REQUEST['Id']);
$AVE_Template->assign('doc_id', $doc_id);
$AVE_Template->assign('rubric_id', $rubric_id);
$AVE_Template->assign('f_id', $field_id . '_' . $doc_id);

View File

@@ -32,7 +32,7 @@
case 'edit':
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$AVE_Template->assign('doc_id', (int)$_REQUEST['Id']);
$AVE_Template->assign('doc_id', $doc_id);
$AVE_Template->assign('rubric_id', $rubric_id);
$AVE_Template->assign('f_id', $field_id . '_' . $doc_id);

Some files were not shown because too many files have changed in this diff Show More