From d82c7d21b289ea756e67cd4652d306096c127c88 Mon Sep 17 00:00:00 2001 From: Repellent Date: Sun, 11 Jan 2026 19:58:04 +0500 Subject: [PATCH] =?UTF-8?q?fix=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B0=D0=B2=D1=82=D0=BE=D1=80=D1=81=D0=BA=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B9=D1=82=D0=B8=D0=BD=D0=B3=D0=B0.=20+++=20?= =?UTF-8?q?=D0=B5=D1=81=D0=BB=D0=B8=20=D1=80=D0=B0=D1=81=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D1=8D=D1=82=D0=B8=20=D0=B4=D0=B2=D0=B5=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20=D1=82=D0=BE=20=D0=90=D0=B4?= =?UTF-8?q?=D0=BC=D0=B8=D0=BD=20=D1=81=D0=BC=D0=BE=D0=B6=D0=B5=D1=82=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=20=D0=90=D0=B2=D1=82=D0=BE=D1=80=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20=D1=80=D0=B5=D0=B9=D1=82=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- class/comment.php | 16 +++++++++++++++- js/comment.js | 4 ++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/class/comment.php b/class/comment.php index c4f6645..0ea703f 100644 --- a/class/comment.php +++ b/class/comment.php @@ -925,7 +925,21 @@ if (!$can_upload && isset($_FILES['comment_image'])) { // Собираем итоговую строку файлов для БД через запятую $final_files_str = implode(',', array_unique(array_filter($current_files))); - $user_rating = isset($_POST['user_rating']) ? (int)$_POST['user_rating'] : (int)$row['user_rating']; + //$user_rating = isset($_POST['user_rating']) ? (int)$_POST['user_rating'] : (int)$row['user_rating']; + + // --- ПРОВЕРКА ПРАВ НА РЕДАКТИРОВАНИЕ РЕЙТИНГА --- + // Рейтинг может менять только Админ (группа 1) или Автор комментария + $can_edit_rating = ($is_admin || $is_author); + + if ($can_edit_rating && isset($_POST['user_rating'])) { + $user_rating = (int)$_POST['user_rating']; + // Ограничиваем диапазон от 0 до 5 на всякий случай + if ($user_rating < 0) $user_rating = 0; + if ($user_rating > 5) $user_rating = 5; + } else { + // Если прав нет или в запросе нет нового рейтинга — оставляем старый из БД + $user_rating = (int)$row['user_rating']; + } // 6. Обновление базы данных $new_status = $is_admin ? (int)$row['comment_status'] : ($row['comment_need_approve'] == '1' ? 0 : 1); diff --git a/js/comment.js b/js/comment.js index 2299354..3c188f3 100644 --- a/js/comment.js +++ b/js/comment.js @@ -563,6 +563,10 @@ if ($foundItems.length > 0) { var parentIdVal = parseInt($wrapper.attr('data-parent')) || 0; var isReply = parentIdVal > 0; var ratingForbiddenForReply = (isReply && typeof SHOW_USER_RATING_REPLIES !== 'undefined' && SHOW_USER_RATING_REPLIES == '0'); + + // Разрешаем редактирование рейтинга, если включен показ рейтинга И (пользователь автор ИЛИ пользователь Админ) + //var isAdmin = (typeof UGROUP !== 'undefined' && UGROUP == '1'); + //if (typeof SHOW_USER_RATING !== 'undefined' && SHOW_USER_RATING == '1' && (isMyOwn || isAdmin) && !ratingForbiddenForReply) { if (typeof SHOW_USER_RATING !== 'undefined' && SHOW_USER_RATING == '1' && isMyOwn && !ratingForbiddenForReply) { if (typeof UGROUP !== 'undefined' && (UGROUP != '2' || RATING_ANON_SET == '1')) {