инициализация для новых документов

This commit is contained in:
2025-12-03 18:10:42 +05:00
parent c8a4d4ef13
commit f77db6da4c

View File

@@ -260,10 +260,6 @@
}
/**
* Метод, предназначенный для получения списка документов в Панели управления
*
*/
/**
* Метод, предназначенный для получения списка документов в Панели управления
*
@@ -2177,7 +2173,7 @@
}
}
/**
/**
* Метод, предназначенный для редактирования документа
*
* @param int $document_id идентификатор Документа
@@ -2186,12 +2182,55 @@
{
global $AVE_DB, $AVE_Rubric, $AVE_Template;
// --- ИНИЦИАЛИЗАЦИЯ ДЛЯ НОВЫХ ДОКУМЕНТОВ (Id=0) ---
// определение $rubric_id из входящего запроса.
$rubric_id = isset($_REQUEST['rubric_id']) ? (int)$_REQUEST['rubric_id'] : 0;
// 2. Выполняем запрос к БД на получение данных о документе
$document = $AVE_DB->Query("
SELECT *
FROM
" . PREFIX . "_documents
WHERE
Id = '" . $document_id . "'
")->FetchRow();
// ПОЛНАЯ ИНИЦИАЛИЗАЦИЯ $document, если он не найден (для нового документа).
if ($document === null) {
$document = new stdClass();
// Обязательные свойства для логики и сохранения:
$document->Id = 0;
$document->document_author_id = $_SESSION['user_id'];
$document->rubric_id = $rubric_id;
$document->document_status = 0;
$document->document_level = 0;
$document->document_template = 0;
$document->document_tpl_name = '';
$document->document_alias = '';
$document->document_parent = 0;
$document->document_published = 0;
$document->document_expire = 0;
$document->document_lang_group = 0;
$document->document_title = "";
$document->document_meta_keywords = "";
$document->document_meta_description = "";
$document->document_breadcrum_title = "";
$document->group_id = 0;
$document->group_position = 0;
$document->group_title = "";
}
// -------------------------------------------------------------
// Определяем действие, выбранное пользователем
switch ($_REQUEST['sub'])
{
// Если была нажата кнопка Сохранить изменения
case 'save':
$row = $AVE_DB->Query("
SELECT
rubric_id,
@@ -2201,8 +2240,12 @@
WHERE
Id = '" . $document_id . "'
")->FetchRow();
// Гарантируем, что используем корректный rubric_id для сохранения,
// в случае нового документа - тот, что мы инициализировали из REQUEST.
$current_rubric_id = ($row && isset($row->rubric_id)) ? $row->rubric_id : $document->rubric_id;
$this->documentSave($row->rubric_id, $document_id, $_POST, true);
$this->documentSave($current_rubric_id, $document_id, $_POST, true);
if (isset($_REQUEST['closeafter']) && $_REQUEST['closeafter'] == 1)
{
@@ -2224,7 +2267,7 @@
if (! isAjax())
{
header('Location:index.php?do=docs&action=after&document_id=' . $document_id . '&rubric_id=' . $row->rubric_id . '&cp=' . SESSION);
header('Location:index.php?do=docs&action=after&document_id=' . $document_id . '&rubric_id=' . $current_rubric_id . '&cp=' . SESSION);
}
else
{
@@ -2237,23 +2280,9 @@
}
exit;
// Если пользователь не выполнял никаких действий, а просто открыл документ для редактирования
// Если пользователь не выполнял никаких действий, а просто открыл документ для редактирования
case '':
// Выполняем запрос к БД на получение данных о документе
$document = $AVE_DB->Query("
SELECT *
FROM
" . PREFIX . "_documents
WHERE
Id = '" . $document_id . "'
")->FetchRow();
// Проверяем, был ли найден документ
if ($document === null) {
header('Location:index.php?do=docs&rubric_id=' . $rubric_id . '&cp=' . SESSION);
exit;
}
$lang_pack = array();
$sql = $AVE_DB->Query("
@@ -2280,7 +2309,7 @@
$show = true;
// Проверяем права доступа к документу
// Проверяем права доступа к документу
$this->documentPermissionFetch($document->rubric_id);
// запрещаем доступ,
@@ -2446,8 +2475,8 @@
$document_rev = array();
if ( (isset($_SESSION[$document->rubric_id . '_delrev']) && $_SESSION[$document->rubric_id . '_delrev'] == 1)
|| (isset($_SESSION[$document->rubric_id . '_alles']) && $_SESSION[$document->rubric_id . '_alles'] == 1)
if ( (isset($_SESSION[$document->rubric_id . '_delrev']) && $_SESSION[$document->rubric_id . '_delrev'] == 1)
|| (isset($_SESSION[$document->rubric_id . '_alles']) && $_SESSION[$document->rubric_id . '_alles'] == 1)
|| (defined('UGROUP') && UGROUP == 1) )
{
$document->canDelRev = 1;
@@ -2664,7 +2693,6 @@
exit;
// Если пользователь не выполнял никаких действий, а просто открыл документ для копирования
// Если пользователь не выполнял никаких действий, а просто открыл документ для редактирования
case '':
// Выполняем запрос к БД на получение данных о документе
$document = $AVE_DB->Query("