инициализация для новых документов
This commit is contained in:
@@ -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("
|
||||
|
||||
Reference in New Issue
Block a user