PNG IHDR x sBIT|d pHYs + tEXtSoftware www.inkscape.org< ,tEXtComment
<?php
session_start();
require '../db.php';
// Security Check
if (!isset($_SESSION['admin_logged_in'])) { header('Location: login.php'); exit; }
// Handle Delete
if (isset($_GET['delete'])) {
$id = (int)$_GET['delete'];
// Optional: Check if donations exist before deleting to prevent errors
$stmt = $pdo->prepare("DELETE FROM campaigns WHERE campaign_id = ?");
$stmt->execute([$id]);
header("Location: campaigns.php?msg=deleted");
exit;
}
// Fetch Campaigns
$stmt = $pdo->query("SELECT * FROM campaigns ORDER BY created_at DESC");
$campaigns = $stmt->fetchAll();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Manage Campaigns - Global Relief Bridge</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* --- REUSING ADMIN STYLES --- */
:root { --primary-green: #8ac926; --dark-green: #070767; --bg-light: #f4f7f6; --text-dark: #333; }
* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', sans-serif; }
body { background-color: var(--bg-light); display: flex; min-height: 100vh; }
.sidebar { width: 260px; background: var(--dark-green); color: white; display: flex; flex-direction: column; padding: 30px 20px; position: fixed; height: 100%; }
.nav-link { color: rgba(255,255,255,0.7); text-decoration: none; padding: 15px; border-radius: 15px; margin-bottom: 10px; display: flex; align-items: center; gap: 15px; transition: 0.3s; }
.nav-link:hover, .nav-link.active { background: rgba(255,255,255,0.1); color: white; }
.main-content { margin-left: 260px; padding: 40px; width: 100%; }
/* Page Specific */
.header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }
.btn-add { background: var(--primary-green); color: white; padding: 12px 25px; border-radius: 30px; text-decoration: none; font-weight: bold; }
.campaign-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.campaign-card { background: white; border-radius: 20px; padding: 25px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
.c-title { font-size: 1.1rem; font-weight: bold; color: var(--dark-green); margin-bottom: 10px; }
.progress-container { background: #eee; height: 10px; border-radius: 5px; margin: 15px 0 5px; overflow: hidden; }
.progress-bar { height: 100%; background: var(--primary-green); border-radius: 5px; }
.c-stats { display: flex; justify-content: space-between; font-size: 0.9rem; color: #666; margin-bottom: 20px; }
.c-actions { display: flex; gap: 10px; border-top: 1px solid #eee; padding-top: 15px; }
.btn-sm { padding: 5px 15px; border-radius: 10px; text-decoration: none; font-size: 0.85rem; font-weight: bold; }
.btn-edit { background: #e3f2fd; color: #2196f3; }
.btn-del { background: #ffebee; color: #f44336; }
</style>
</head>
<body>
<?php include 'side.php'; ?>
<div class="main-content">
<div class="header">
<h2>Active Campaigns</h2>
<a href="campaign_editor.php" class="btn-add"><i class="fas fa-plus"></i> Add New Cause</a>
</div>
<div class="campaign-grid">
<?php foreach ($campaigns as $c):
$percent = ($c['goal_amount'] > 0) ? round(($c['raised_amount'] / $c['goal_amount']) * 100) : 0;
?>
<div class="campaign-card">
<div class="c-title"><?php echo htmlspecialchars($c['title']); ?></div>
<div class="progress-container">
<div class="progress-bar" style="width: <?php echo $percent; ?>%"></div>
</div>
<div class="c-stats">
<span>Raised: <strong>£<?php echo number_format($c['raised_amount']); ?></strong></span>
<span>Goal: £<?php echo number_format($c['goal_amount']); ?></span>
</div>
<div class="c-actions">
<a href="campaign_editor.php?id=<?php echo $c['campaign_id']; ?>" class="btn-sm btn-edit">Edit</a>
<a href="campaigns.php?delete=<?php echo $c['campaign_id']; ?>" class="btn-sm btn-del" onclick="return confirm('Delete this campaign?')">Delete</a>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</body>
</html>
b IDATxytVսϓ22 A@IR:hCiZ[v*E:WũZA ^dQeQ @ !jZ'>gsV仿$|?g)&x-E