[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: manage_grades.php
<?php require_once '../config/database.php'; requireRole('admin'); $message = ''; $error = ''; // Handle form submissions if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (isset($_POST['add_grade'])) { $name = sanitize($_POST['name']); $stage_id = $_POST['stage_id']; if (empty($name) || empty($stage_id)) { $error = 'جميع الحقول مطلوبة'; } else { $stmt = $pdo->prepare("INSERT INTO grades (name, stage_id) VALUES (?, ?)"); if ($stmt->execute([$name, $stage_id])) { $message = 'تم إضافة الصف بنجاح'; } else { $error = 'حدث خطأ في إضافة الصف'; } } } elseif (isset($_POST['edit_grade'])) { $id = $_POST['grade_id']; $name = sanitize($_POST['name']); $stage_id = $_POST['stage_id']; if (empty($name) || empty($stage_id)) { $error = 'جميع الحقول مطلوبة'; } else { $stmt = $pdo->prepare("UPDATE grades SET name = ?, stage_id = ? WHERE id = ?"); if ($stmt->execute([$name, $stage_id, $id])) { $message = 'تم تحديث الصف بنجاح'; } else { $error = 'حدث خطأ في تحديث الصف'; } } } elseif (isset($_POST['delete_grade'])) { $id = $_POST['grade_id']; // Check if grade has assignments $stmt = $pdo->prepare("SELECT COUNT(*) FROM teacher_assignments WHERE grade_id = ?"); $stmt->execute([$id]); $assignment_count = $stmt->fetchColumn(); if ($assignment_count > 0) { $error = 'لا يمكن حذف الصف لأنه مرتبط بمعلمين'; } else { $stmt = $pdo->prepare("DELETE FROM grades WHERE id = ?"); if ($stmt->execute([$id])) { $message = 'تم حذف الصف بنجاح'; } else { $error = 'حدث خطأ في حذف الصف'; } } } } // Get all grades with stage names $grades = $pdo->query(" SELECT g.*, s.name as stage_name FROM grades g JOIN stages s ON g.stage_id = s.id ORDER BY s.name, g.name ")->fetchAll(); // Get all stages for dropdown $stages = $pdo->query("SELECT * FROM stages ORDER BY name")->fetchAll(); ?> <!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>إدارة الصفوف - منصة المسابقات التعليمية</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet"> <link href="../assets/css/style.css" rel="stylesheet"> </head> <body> <!-- Navigation --> <nav class="navbar navbar-expand-lg navbar-dark bg-primary"> <div class="container-fluid"> <a class="navbar-brand" href="../index.php"> <i class="fas fa-trophy me-2"></i> منصة المسابقات التعليمية </a> <div class="navbar-nav me-auto"> <span class="navbar-text"> <i class="fas fa-user-shield me-1"></i> مرحباً، <?= sanitize($_SESSION['user_name']) ?> </span> </div> <div class="navbar-nav"> <a class="nav-link" href="../auth/logout.php"> <i class="fas fa-sign-out-alt me-1"></i> تسجيل الخروج </a> </div> </div> </nav> <div class="container-fluid"> <div class="row"> <!-- Sidebar --> <div class="col-md-3 col-lg-2 bg-light sidebar py-4"> <ul class="nav nav-pills flex-column"> <li class="nav-item"> <a class="nav-link" href="dashboard.php"> <i class="fas fa-tachometer-alt me-2"></i> الرئيسية </a> </li> <li class="nav-item"> <a class="nav-link" href="manage_stages.php"> <i class="fas fa-layer-group me-2"></i> إدارة المراحل </a> </li> <li class="nav-item"> <a class="nav-link active" href="manage_grades.php"> <i class="fas fa-graduation-cap me-2"></i> إدارة الصفوف </a> </li> <li class="nav-item"> <a class="nav-link" href="manage_subjects.php"> <i class="fas fa-book me-2"></i> إدارة المواد </a> </li> <li class="nav-item"> <a class="nav-link" href="manage_teachers.php"> <i class="fas fa-chalkboard-teacher me-2"></i> إدارة المعلمين </a> </li> <li class="nav-item"> <a class="nav-link" href="manage_competitions.php"> <i class="fas fa-trophy me-2"></i> إدارة المسابقات </a> </li> <li class="nav-item"> <a class="nav-link" href="settings.php"> <i class="fas fa-cog me-2"></i> الإعدادات </a> </li> </ul> </div> <!-- Main Content --> <div class="col-md-9 col-lg-10 py-4"> <div class="d-flex justify-content-between align-items-center mb-4"> <h1 class="h3">إدارة الصفوف الدراسية</h1> <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addGradeModal"> <i class="fas fa-plus me-1"></i> إضافة صف جديد </button> </div> <?php if ($message): ?> <div class="alert alert-success alert-dismissible fade show"> <i class="fas fa-check-circle me-2"></i> <?= $message ?> <button type="button" class="btn-close" data-bs-dismiss="alert"></button> </div> <?php endif; ?> <?php if ($error): ?> <div class="alert alert-danger alert-dismissible fade show"> <i class="fas fa-exclamation-circle me-2"></i> <?= $error ?> <button type="button" class="btn-close" data-bs-dismiss="alert"></button> </div> <?php endif; ?> <!-- Grades Table --> <div class="card"> <div class="card-header"> <h5 class="mb-0"> <i class="fas fa-graduation-cap me-2"></i> الصفوف الدراسية </h5> </div> <div class="card-body"> <?php if (empty($grades)): ?> <div class="alert alert-info"> <i class="fas fa-info-circle me-2"></i> لا توجد صفوف دراسية مضافة بعد </div> <?php else: ?> <div class="table-responsive"> <table class="table table-hover"> <thead> <tr> <th>الرقم</th> <th>اسم الصف</th> <th>المرحلة التعليمية</th> <th>تاريخ الإضافة</th> <th>الإجراءات</th> </tr> </thead> <tbody> <?php foreach ($grades as $index => $grade): ?> <tr> <td><?= $index + 1 ?></td> <td><?= sanitize($grade['name']) ?></td> <td> <span class="badge bg-primary"><?= sanitize($grade['stage_name']) ?></span> </td> <td><?= date('Y-m-d', strtotime($grade['created_at'])) ?></td> <td> <button class="btn btn-sm btn-outline-primary edit-grade" data-id="<?= $grade['id'] ?>" data-name="<?= sanitize($grade['name']) ?>" data-stage-id="<?= $grade['stage_id'] ?>"> <i class="fas fa-edit"></i> تعديل </button> <button class="btn btn-sm btn-outline-danger delete-grade" data-id="<?= $grade['id'] ?>" data-name="<?= sanitize($grade['name']) ?>"> <i class="fas fa-trash"></i> حذف </button> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> <?php endif; ?> </div> </div> </div> </div> </div> <!-- Add Grade Modal --> <div class="modal fade" id="addGradeModal" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <form method="POST"> <div class="modal-header"> <h5 class="modal-title">إضافة صف دراسي جديد</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <div class="mb-3"> <label for="gradeName" class="form-label">اسم الصف</label> <input type="text" class="form-control" id="gradeName" name="name" required> </div> <div class="mb-3"> <label for="stageSelect" class="form-label">المرحلة التعليمية</label> <select class="form-select" id="stageSelect" name="stage_id" required> <option value="">اختر المرحلة</option> <?php foreach ($stages as $stage): ?> <option value="<?= $stage['id'] ?>"><?= sanitize($stage['name']) ?></option> <?php endforeach; ?> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">إلغاء</button> <button type="submit" name="add_grade" class="btn btn-primary">إضافة الصف</button> </div> </form> </div> </div> </div> <!-- Edit Grade Modal --> <div class="modal fade" id="editGradeModal" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <form method="POST"> <div class="modal-header"> <h5 class="modal-title">تعديل الصف الدراسي</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <input type="hidden" name="grade_id" id="editGradeId"> <div class="mb-3"> <label for="editGradeName" class="form-label">اسم الصف</label> <input type="text" class="form-control" id="editGradeName" name="name" required> </div> <div class="mb-3"> <label for="editStageSelect" class="form-label">المرحلة التعليمية</label> <select class="form-select" id="editStageSelect" name="stage_id" required> <option value="">اختر المرحلة</option> <?php foreach ($stages as $stage): ?> <option value="<?= $stage['id'] ?>"><?= sanitize($stage['name']) ?></option> <?php endforeach; ?> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">إلغاء</button> <button type="submit" name="edit_grade" class="btn btn-primary">حفظ التغييرات</button> </div> </form> </div> </div> </div> <!-- Delete Grade Modal --> <div class="modal fade" id="deleteGradeModal" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <form method="POST"> <div class="modal-header"> <h5 class="modal-title">حذف الصف الدراسي</h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <input type="hidden" name="grade_id" id="deleteGradeId"> <p>هل أنت متأكد من حذف الصف "<span id="deleteGradeNameDisplay"></span>"؟</p> <div class="alert alert-warning"> <i class="fas fa-exclamation-triangle me-2"></i> هذا الإجراء لا يمكن التراجع عنه! </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">إلغاء</button> <button type="submit" name="delete_grade" class="btn btn-danger">حذف الصف</button> </div> </form> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script> <script src="../assets/js/main.js"></script> <script> $(document).ready(function() { // Edit grade $('.edit-grade').click(function() { const id = $(this).data('id'); const name = $(this).data('name'); const stageId = $(this).data('stage-id'); $('#editGradeId').val(id); $('#editGradeName').val(name); $('#editStageSelect').val(stageId); $('#editGradeModal').modal('show'); }); // Delete grade $('.delete-grade').click(function() { const id = $(this).data('id'); const name = $(this).data('name'); $('#deleteGradeId').val(id); $('#deleteGradeNameDisplay').text(name); $('#deleteGradeModal').modal('show'); }); }); </script> </body> </html>
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.86 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285