Fix
This commit is contained in:
45
public/admin/fix_delete_category.php
Normal file
45
public/admin/fix_delete_category.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
session_start();
|
||||
require_once __DIR__ . '/../config/database.php';
|
||||
|
||||
// Проверка прав администратора
|
||||
if (!isset($_SESSION['isAdmin']) || !$_SESSION['isAdmin']) {
|
||||
echo json_encode(['success' => false, 'message' => 'Доступ запрещен']);
|
||||
exit();
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$categoryId = $_POST['category_id'] ?? 0;
|
||||
|
||||
if (!$categoryId) {
|
||||
echo json_encode(['success' => false, 'message' => 'Категория не указана']);
|
||||
exit();
|
||||
}
|
||||
|
||||
try {
|
||||
$db = Database::getInstance()->getConnection();
|
||||
|
||||
// Проверяем, есть ли товары в этой категории
|
||||
$checkStmt = $db->prepare("SELECT COUNT(*) FROM products WHERE category_id = ?");
|
||||
$checkStmt->execute([$categoryId]);
|
||||
$productCount = $checkStmt->fetchColumn();
|
||||
|
||||
if ($productCount > 0) {
|
||||
echo json_encode(['success' => false, 'message' => 'Нельзя удалить категорию с товарами. Сначала удалите или переместите товары.']);
|
||||
exit();
|
||||
}
|
||||
|
||||
// Удаляем категорию
|
||||
$stmt = $db->prepare("DELETE FROM categories WHERE category_id = ?");
|
||||
$stmt->execute([$categoryId]);
|
||||
|
||||
echo json_encode(['success' => true, 'message' => 'Категория удалена']);
|
||||
} catch (PDOException $e) {
|
||||
echo json_encode(['success' => false, 'message' => 'Ошибка базы данных: ' . $e->getMessage()]);
|
||||
}
|
||||
} else {
|
||||
echo json_encode(['success' => false, 'message' => 'Неверный запрос']);
|
||||
}
|
||||
|
||||
@@ -301,6 +301,7 @@ try {
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<base href="/cite_practica/admin/">
|
||||
<title>AETERNA - Админ-панель</title>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
|
||||
<style>
|
||||
@@ -333,25 +334,25 @@ try {
|
||||
<h1><i class="fas fa-user-shield"></i> Админ-панель AETERNA</h1>
|
||||
<div>
|
||||
<span><?= htmlspecialchars($_SESSION['user_email'] ?? 'Администратор') ?></span>
|
||||
<a href="../catalog.php" class="btn btn-primary" style="margin-left: 10px;">В каталог</a>
|
||||
<a href="../logout.php" class="btn btn-danger" style="margin-left: 10px;">Выйти</a>
|
||||
<a href="/cite_practica/catalog.php" class="btn btn-primary" style="margin-left: 10px;">В каталог</a>
|
||||
<a href="/cite_practica/logout.php" class="btn btn-danger" style="margin-left: 10px;">Выйти</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="admin-tabs">
|
||||
<a href="?action=dashboard" class="admin-tab <?= $action == 'dashboard' ? 'active' : '' ?>">
|
||||
<a href="index.php?action=dashboard" class="admin-tab <?= $action == 'dashboard' ? 'active' : '' ?>">
|
||||
<i class="fas fa-tachometer-alt"></i> Дашборд
|
||||
</a>
|
||||
<a href="?action=products" class="admin-tab <?= $action == 'products' ? 'active' : '' ?>">
|
||||
<a href="index.php?action=products" class="admin-tab <?= $action == 'products' ? 'active' : '' ?>">
|
||||
<i class="fas fa-box"></i> Товары
|
||||
</a>
|
||||
<a href="?action=categories" class="admin-tab <?= $action == 'categories' ? 'active' : '' ?>">
|
||||
<a href="index.php?action=categories" class="admin-tab <?= $action == 'categories' ? 'active' : '' ?>">
|
||||
<i class="fas fa-tags"></i> Категории
|
||||
</a>
|
||||
<a href="?action=orders" class="admin-tab <?= $action == 'orders' ? 'active' : '' ?>">
|
||||
<a href="index.php?action=orders" class="admin-tab <?= $action == 'orders' ? 'active' : '' ?>">
|
||||
<i class="fas fa-shopping-cart"></i> Заказы
|
||||
</a>
|
||||
<a href="?action=users" class="admin-tab <?= $action == 'users' ? 'active' : '' ?>">
|
||||
<a href="index.php?action=users" class="admin-tab <?= $action == 'users' ? 'active' : '' ?>">
|
||||
<i class="fas fa-users"></i> Пользователи
|
||||
</a>
|
||||
</div>
|
||||
@@ -392,10 +393,10 @@ try {
|
||||
</div>
|
||||
|
||||
<div style="text-align: center; margin: 40px 0;">
|
||||
<a href="?action=add_product" class="btn btn-success" style="padding: 15px 30px; font-size: 16px;">
|
||||
<a href="index.php?action=add_product" class="btn btn-success" style="padding: 15px 30px; font-size: 16px;">
|
||||
<i class="fas fa-plus"></i> Добавить новый товар
|
||||
</a>
|
||||
<a href="?action=add_category" class="btn btn-primary" style="padding: 15px 30px; font-size: 16px;">
|
||||
<a href="index.php?action=add_category" class="btn btn-primary" style="padding: 15px 30px; font-size: 16px;">
|
||||
<i class="fas fa-plus"></i> Добавить категорию
|
||||
</a>
|
||||
</div>
|
||||
@@ -405,13 +406,13 @@ try {
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
|
||||
<h2>Управление товарами</h2>
|
||||
<div>
|
||||
<a href="?action=add_product" class="btn btn-success">
|
||||
<a href="index.php?action=add_product" class="btn btn-success">
|
||||
<i class="fas fa-plus"></i> Добавить товар
|
||||
</a>
|
||||
<?php if (isset($_GET['show_all'])): ?>
|
||||
<a href="?action=products" class="btn btn-primary">Только активные</a>
|
||||
<a href="index.php?action=products" class="btn btn-primary">Только активные</a>
|
||||
<?php else: ?>
|
||||
<a href="?action=products&show_all=1" class="btn btn-primary">Показать все</a>
|
||||
<a href="index.php?action=products&show_all=1" class="btn btn-primary">Показать все</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -446,7 +447,7 @@ try {
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td class="action-buttons">
|
||||
<a href="?action=edit_product&id=<?= $product['product_id'] ?>" class="btn btn-warning btn-sm">
|
||||
<a href="index.php?action=edit_product&id=<?= $product['product_id'] ?>" class="btn btn-warning btn-sm">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<?php if ($product['is_available']): ?>
|
||||
@@ -478,7 +479,7 @@ try {
|
||||
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
|
||||
<h2>Управление категориями</h2>
|
||||
<a href="?action=add_category" class="btn btn-success">
|
||||
<a href="index.php?action=add_category" class="btn btn-success">
|
||||
<i class="fas fa-plus"></i> Добавить категорию
|
||||
</a>
|
||||
</div>
|
||||
@@ -504,7 +505,7 @@ try {
|
||||
<td><?= $category['product_count'] ?></td>
|
||||
<td class="action-buttons">
|
||||
|
||||
<a href="?action=edit_category&id=<?= $category['category_id'] ?>" class="btn btn-warning btn-sm">
|
||||
<a href="index.php?action=edit_category&id=<?= $category['category_id'] ?>" class="btn btn-warning btn-sm">
|
||||
<i class="fas fa-edit"></i> Редактировать
|
||||
</a>
|
||||
|
||||
@@ -621,7 +622,7 @@ try {
|
||||
<button type="submit" class="btn btn-success">
|
||||
<?= $action == 'add_product' ? 'Добавить товар' : 'Сохранить изменения' ?>
|
||||
</button>
|
||||
<a href="?action=products" class="btn btn-primary">Отмена</a>
|
||||
<a href="index.php?action=products" class="btn btn-primary">Отмена</a>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -680,7 +681,7 @@ try {
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<?= $action == 'add_category' ? 'Добавить категорию' : 'Сохранить изменения' ?>
|
||||
</button>
|
||||
<a href="?action=categories" class="btn">Отмена</a>
|
||||
<a href="index.php?action=categories" class="btn">Отмена</a>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -707,7 +708,7 @@ try {
|
||||
<td><?= htmlspecialchars($order['status']) ?></td>
|
||||
<td><?= date('d.m.Y H:i', strtotime($order['created_at'])) ?></td>
|
||||
<td>
|
||||
<a href="?action=order_details&id=<?= $order['order_id'] ?>" class="btn btn-primary btn-sm">
|
||||
<a href="index.php?action=order_details&id=<?= $order['order_id'] ?>" class="btn btn-primary btn-sm">
|
||||
<i class="fas fa-eye"></i>
|
||||
</a>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user