'; echo '

Zugriff verweigert

'; echo '

Du hast keine Berechtigung, Shops hinzuzufügen.

'; echo '
'; include 'footer.php'; exit; } $conn = db_connect(); $message = ''; $messageType = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) { if ($_POST['action'] === 'add_shop') { $name = trim($_POST['name']); $website = trim($_POST['website']); $shippingTime = trim($_POST['shipping_time']); $logoPath = null; // Handle logo upload if (isset($_FILES['logo']) && $_FILES['logo']['error'] === UPLOAD_ERR_OK) { $allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp']; $fileInfo = finfo_open(FILEINFO_MIME_TYPE); $mimeType = finfo_file($fileInfo, $_FILES['logo']['tmp_name']); finfo_close($fileInfo); if (in_array($mimeType, $allowedTypes)) { $uploadDir = __DIR__ . '/assets/images/shopLogo/'; if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); } $extension = pathinfo($_FILES['logo']['name'], PATHINFO_EXTENSION); $fileName = preg_replace('/[^a-zA-Z0-9_-]/', '_', $name) . '_' . time() . '.' . $extension; $targetFile = $uploadDir . $fileName; if (move_uploaded_file($_FILES['logo']['tmp_name'], $targetFile)) { $logoPath = 'assets/images/shopLogo/' . $fileName; } else { $message = 'Fehler beim Hochladen des Logos.'; $messageType = 'error'; } } else { $message = 'Ungültiges Dateiformat für das Logo. Erlaubt sind JPG, PNG, GIF und WEBP.'; $messageType = 'error'; } } elseif (isset($_POST['logo_url']) && trim($_POST['logo_url']) !== '') { $logoPath = trim($_POST['logo_url']); } if (empty($message) && $name !== '') { $stmt = $conn->prepare("INSERT INTO shops (name, website, logoPath, shippingTime) VALUES (?, ?, ?, ?)"); $stmt->bind_param("ssss", $name, $website, $logoPath, $shippingTime); if ($stmt->execute()) { $message = 'Shop erfolgreich hinzugefügt!'; $messageType = 'success'; } else { $message = 'Fehler beim Hinzufügen des Shops.'; $messageType = 'error'; } $stmt->close(); } elseif (empty($message)) { $message = 'Bitte mindestens den Shop-Namen angeben.'; $messageType = 'error'; } } elseif ($_POST['action'] === 'delete_shop') { $shopID = (int)$_POST['shop_id']; if ($shopID > 0) { // First check if the shop has associated offers $checkStmt = $conn->prepare("SELECT COUNT(*) AS offerCount FROM offers WHERE shopID = ?"); $checkStmt->bind_param("i", $shopID); $checkStmt->execute(); $result = $checkStmt->get_result(); $row = $result->fetch_assoc(); $offerCount = (int)$row['offerCount']; $checkStmt->close(); if ($offerCount > 0) { $message = "Der Shop kann nicht gelöscht werden, da er noch $offerCount verknüpfte Angebote hat."; $messageType = 'error'; } else { $stmt = $conn->prepare("DELETE FROM shops WHERE shopID = ?"); $stmt->bind_param("i", $shopID); if ($stmt->execute()) { $message = 'Shop erfolgreich gelöscht!'; $messageType = 'success'; } else { $message = 'Fehler beim Löschen des Shops.'; $messageType = 'error'; } $stmt->close(); } } } } // Get existing shops to manage $shopsResult = $conn->query(" SELECT s.shopID, s.name, s.website, s.logoPath, s.shippingTime, COUNT(o.offerID) AS offerCount FROM shops s LEFT JOIN offers o ON s.shopID = o.shopID GROUP BY s.shopID, s.name, s.website, s.logoPath, s.shippingTime ORDER BY s.name ASC "); $existingShops = []; if ($shopsResult) { while ($row = $shopsResult->fetch_assoc()) { $existingShops[] = $row; } } include 'header.php'; ?>

Shop hinzufügen

- ODER -

Bestehende Shops verwalten

0): ?>
Logo Name Website Angebote Aktion
Logo Kein Logo Link ↗ 0): ?>

Keine Shops vorhanden.