From 04dde3c33704473305049b190f515f1d7c1464e7 Mon Sep 17 00:00:00 2001 From: Repellent Date: Mon, 24 Nov 2025 19:55:54 +0500 Subject: [PATCH] fix for PHP-8.4 --- class/class.logs.php | 44 +++++++++++++++++--------------- class/class.rubs.php | 15 ++++++++--- fields/youtube/field.php | 2 +- fields/youtube/tpl/field-req.tpl | 4 +-- 4 files changed, 38 insertions(+), 27 deletions(-) diff --git a/class/class.logs.php b/class/class.logs.php index 6ec8c55..883fd6b 100644 --- a/class/class.logs.php +++ b/class/class.logs.php @@ -60,22 +60,22 @@ while (!feof($fp)) { - // ИСПРАВЛЕНИЕ: Добавляем обязательные параметры: разделитель (','), ограничитель ('"'), экранирование ('\\') + // ИСПРАВЛЕНИЕ: Добавляем обязательные параметры: разделитель (','), ограничитель ('"'), экранирование ('\') $event = fgetcsv($fp, $_slice, ',', '"', '\\'); if (empty($event[0]) || count($event) < 3) { continue; } - $_lines[] = [ - 'log_time' => $event['0'] ?? '', + $_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'] ?? '' + 'log_user_id' => $event['3'] ?? '', + 'log_user_name' => $event['4'] ?? '', + 'log_text' => $event['5'] ?? '', + 'log_type' => $event['6'] ?? '', + 'log_rubric' => $event['7'] ?? '' ]; } @@ -117,12 +117,12 @@ } $_lines[] = [ - 'log_time' => $event['0'], - 'log_ip' => $event['1'], - 'log_query' => $event['2'], - 'log_user_agent' => $event['3'], - 'log_user_referer' => $event['4'], - 'log_request_uri' => $event['5'] + 'log_time' => $event['0'] ?? '', + 'log_ip' => $event['1'] ?? '', + 'log_query' => $event['2'] ?? '', + 'log_user_agent' => $event['3'] ?? '', + 'log_user_referer' => $event['4'] ?? '', + 'log_request_uri' => $event['5'] ?? '' ]; } @@ -157,19 +157,21 @@ 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' => unserialize(base64_decode($event['5'])) + 'log_time' => $event['0'] ?? '', + 'log_ip' => $event['1'] ?? '', + 'log_url' => $event['2'] ?? '', + 'log_user_id' => $event['3'] ?? '', + 'log_user_name' => $event['4'] ?? '', + // Предполагаем, что event[5] всегда должно быть (base64_decode и unserialize) + 'log_text' => isset($event['5']) ? unserialize(base64_decode($event['5'])) : '' ]; } diff --git a/class/class.rubs.php b/class/class.rubs.php index 312b93b..d3121bb 100644 --- a/class/class.rubs.php +++ b/class/class.rubs.php @@ -470,7 +470,7 @@ } - /** +/** * Удаление рубрики * */ @@ -485,7 +485,10 @@ header('Location:index.php?do=rubs&cp=' . SESSION); exit; } - + + // Сначала получаем данные рубрики, которые будут использоваться для лога + $rubric_data_for_log = $this->rubricNameByIdGet($rubric_id); + $rubric_not_empty = $AVE_DB->Query(" SELECT 1 FROM @@ -532,8 +535,14 @@ // Удалить файлы шаблонов $this->clearTemplates($rubric_id); + // ИСПРАВЛЕНИЕ: получение названия рубрики для журнала + $rubric_title = ''; + if ($rubric_data_for_log !== null && property_exists($rubric_data_for_log, 'rubric_title')) { + $rubric_title = stripslashes(htmlspecialchars($rubric_data_for_log->rubric_title, ENT_QUOTES)); + } + // Сохраняем системное сообщение в журнал - reportLog($AVE_Template->get_config_vars('RUBRIK_LOG_DEL_RUBRIC') . ' - ' . stripslashes(htmlspecialchars($this->rubricNameByIdGet($rubric_id)->rubric_title, ENT_QUOTES)) . ' (id: '.$rubric_id.')'); + reportLog($AVE_Template->get_config_vars('RUBRIK_LOG_DEL_RUBRIC') . ' - ' . $rubric_title . ' (id: '.$rubric_id.')'); } header('Location:index.php?do=rubs&cp=' . SESSION); diff --git a/fields/youtube/field.php b/fields/youtube/field.php index d4bce56..70b5651 100644 --- a/fields/youtube/field.php +++ b/fields/youtube/field.php @@ -52,7 +52,7 @@ $AVE_Template->assign('field_dir', $fld_name); $AVE_Template->assign('video', $video); $AVE_Template->assign('rubric_id', $rubric_id); - $AVE_Template->assign('doc_id', (int)$_REQUEST['Id']); + $AVE_Template->assign('doc_id', isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : 0); $AVE_Template->assign('field_id', $field_id); $AVE_Template->assign('field_value', $field_value); diff --git a/fields/youtube/tpl/field-req.tpl b/fields/youtube/tpl/field-req.tpl index dabc99e..fb8cc42 100644 --- a/fields/youtube/tpl/field-req.tpl +++ b/fields/youtube/tpl/field-req.tpl @@ -1,4 +1,4 @@ -{if $param.4 == 'embed'} +{if isset($param.4) && $param.4 == 'embed'} @@ -9,6 +9,6 @@ {else} - + {/if} \ No newline at end of file