Вход Регистрация
Файл: upload/pages/feedback/edit-feedback.php
Строк: 104
<?php
require_once ($_SERVER['DOCUMENT_ROOT'] . '/core/core.php');

if (!isset(
$user['id'])) {
    
showAlert('Ошибка''fail''Сперва необходимо авторизоваться');
    
RedirectToPage('/');
    exit();
}

$id abs((int)($_GET['id'] ?? 0));
$rating_feedback FetchAssoc(dbquery("SELECT * FROM `rating` WHERE `id` = ? AND `us` = ?", [$id$user['id']]));

if (empty(
$rating_feedback['id'])) {
    
header("HTTP/1.0 404 Not Found");
    include (
$_SERVER['DOCUMENT_ROOT'] . '/pages/err_pages/404.php'); 
    exit();
}

$work_prc   FetchAssoc(dbquery("SELECT * FROM `work_processed` WHERE `id` = ?", [$rating_feedback['deal']]));
$work       FetchAssoc(dbquery("SELECT * FROM `works` WHERE `id` = ?", [$work_prc['k_work']]));
$worker     FetchAssoc(dbquery("SELECT * FROM `users` WHERE `id` = ?", [$work_prc['creator']]));

if (
$work_prc['worker'] != $user['id']) {
    
RedirectToPage('/');
    exit();
}

$breadcrumbs generateBreadcrumbs([
    [
'/''Главная'],
    [
'#''Редактирование отзыва']
]);

$page_html $view->render('pages/feedback/edit.html', [
    
'breadcrumbs_html' => $breadcrumbs['html'],
    
'breadcrumbs_json' => $breadcrumbs['json_ld'],

    
'csrf' => $_SESSION['csrf_token'],
    
'home' => homeLink(),

    
'order_id' => $work_prc['id'],

    
'rating' => intval($rating_feedback['k_rating']),
    
'text' => $rating_feedback['k_comment']
]);

if (isset(
$_POST['set'])) {
    
check_csrf();

    
$new_rating   intval($_POST['rating']);
    
$new_comment  chars($_POST['feedback']);

    
// === ИСТОРИЯ: сохраняем НОВУЮ версию ===
    
dbquery("INSERT INTO rating_history SET rating_id = ?, deal = ?, us = ?, worker = ?, rating = ?, k_work = ?, k_comment = ?, created_at = ?, deleted_at = NULL",
    [
$rating_feedback['id'], $rating_feedback['deal'], $rating_feedback['us'], $rating_feedback['worker'], $new_rating$rating_feedback['k_work'], $new_commenttime()]);
    
    
// === ОБНОВЛЯЕМ ОТЗЫВ ===
    
dbquery("UPDATE `rating` SET `rating` = ?, `k_comment` = ? WHERE `id` = ?", [$new_rating$new_comment$id]);

    
$text "[QUOTEMESSAGEROOT][BMESSAGEROOT]Изменил отзыв о заказе #{$work_prc['id']} на {$new_rating} звезд![/BMESSAGEROOT][/QUOTEMESSAGEROOT]";
    
insertMessage($user['id'], $work_prc['creator'], $text);

    
RedirectToPage('/deal' $work_prc['id']);
    exit();
}

require_once (
$_SERVER['DOCUMENT_ROOT'] . '/layout.php');
?>

<script>
document.addEventListener("DOMContentLoaded", function() {

    const labels = document.querySelectorAll("label.star");
    const starsBox = document.querySelector(".set-stars");

    let currentRating = <?= intval($rating_feedback['rating']) ?>;

    // Устанавливаем radio при загрузке
    if (currentRating > 0) {
        document.querySelector(`input[name="rating"][value="${currentRating}"]`).checked = true;
    }

    // Подсветка
    function applyHighlight(rating) {
        labels.forEach((lb, idx) => {
            lb.classList.toggle("active", idx < rating);
        });
    }

    // Подсветка при загрузке
    applyHighlight(currentRating);

    // Клик
    labels.forEach((label, idx) => {
        label.addEventListener("click", function(e) {
            e.preventDefault();
            currentRating = idx + 1;
            document.querySelector(`input[name="rating"][value="${currentRating}"]`).checked = true;
        });
    });

    // Наведение
    labels.forEach((label, idx) => {
        label.addEventListener("mouseover", function() {
            applyHighlight(idx + 1);
        });
    });

    // Уход мыши из блока
    starsBox.addEventListener("mouseleave", function() {
        applyHighlight(currentRating);
    });

});
</script>
Онлайн: 0
Реклама