[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: create_competition.php
<?php require_once '../config/database.php'; requireRole('teacher'); $teacher_id = getUserId(); $message = ''; $error = ''; // Get teacher's assignments $assignments = $pdo->prepare(" SELECT DISTINCT g.id as grade_id, g.name as grade_name, s.id as subject_id, s.name as subject_name, st.name as stage_name FROM teacher_assignments ta JOIN grades g ON ta.grade_id = g.id JOIN subjects s ON ta.subject_id = s.id JOIN stages st ON g.stage_id = st.id WHERE ta.teacher_id = ? ORDER BY st.name, g.name, s.name "); $assignments->execute([$teacher_id]); $teacher_assignments = $assignments->fetchAll(); if (empty($teacher_assignments)) { $error = 'لم يتم تكليفك بأي مواد بعد. يرجى التواصل مع الإدارة.'; } // Handle form submission if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['create_competition'])) { $title = sanitize($_POST['title']); $grade_id = $_POST['grade_id']; $subject_id = $_POST['subject_id']; $competition_type = $_POST['competition_type']; $num_groups = $_POST['num_groups'] ?? 0; $is_public = isset($_POST['is_public']) ? 1 : 0; if (empty($title) || empty($grade_id) || empty($subject_id) || empty($competition_type)) { $error = 'جميع الحقول مطلوبة'; } else { // Verify teacher has access to this grade/subject combination $verify_stmt = $pdo->prepare(" SELECT COUNT(*) FROM teacher_assignments WHERE teacher_id = ? AND grade_id = ? AND subject_id = ? "); $verify_stmt->execute([$teacher_id, $grade_id, $subject_id]); if ($verify_stmt->fetchColumn() == 0) { $error = 'ليس لديك صلاحية لإنشاء مسابقة لهذا الصف والمادة'; } else { $stmt = $pdo->prepare(" INSERT INTO competitions (title, teacher_id, grade_id, subject_id, competition_type, num_groups, question_time, is_public, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'draft') "); if ($stmt->execute([$title, $teacher_id, $grade_id, $subject_id, $competition_type, $num_groups, $question_time, $is_public])) { $competition_id = $pdo->lastInsertId(); if ($competition_type == 'group') { header("Location: add_group_questions.php?id=$competition_id"); } else { header("Location: add_millionaire_questions.php?id=$competition_id"); } exit; } else { $error = 'حدث خطأ في إنشاء المسابقة'; } } } } ?> <!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-success"> <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-chalkboard-teacher 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_students.php"> <i class="fas fa-users me-2"></i> إدارة الطلاب </a> </li> <li class="nav-item"> <a class="nav-link active" href="create_competition.php"> <i class="fas fa-plus-circle me-2"></i> إنشاء مسابقة </a> </li> <li class="nav-item"> <a class="nav-link" href="my_competitions.php"> <i class="fas fa-trophy me-2"></i> مسابقاتي </a> </li> <li class="nav-item"> <a class="nav-link" href="results.php"> <i class="fas fa-chart-bar 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> <a href="dashboard.php" class="btn btn-outline-secondary"> <i class="fas fa-arrow-right me-1"></i> العودة للوحة المعلم </a> </div> <?php if ($error): ?> <div class="alert alert-danger"> <i class="fas fa-exclamation-circle me-2"></i> <?= $error ?> </div> <?php endif; ?> <?php if (!empty($teacher_assignments)): ?> <div class="card"> <div class="card-header"> <h5 class="mb-0"> <i class="fas fa-plus-circle me-2"></i> معلومات المسابقة الجديدة </h5> </div> <div class="card-body"> <form method="POST" action=""> <div class="row"> <div class="col-md-6 mb-3"> <label for="title" class="form-label">عنوان المسابقة</label> <input type="text" class="form-control" id="title" name="title" placeholder="أدخل عنوان المسابقة" required> </div> <div class="col-md-6 mb-3"> <label for="competition_type" class="form-label">نوع المسابقة</label> <select class="form-select" id="competition_type" name="competition_type" required> <option value="">اختر نوع المسابقة</option> <option value="group">مسابقة المجموعات</option> <option value="millionaire">من سيربح المليون</option> </select> </div> </div> <div class="row"> <div class="col-md-6 mb-3"> <label for="grade_subject" class="form-label">الصف والمادة</label> <select class="form-select" id="grade_subject" name="grade_subject" required> <option value="">اختر الصف والمادة</option> <?php foreach ($teacher_assignments as $assignment): ?> <option value="<?= $assignment['grade_id'] ?>_<?= $assignment['subject_id'] ?>"> <?= sanitize($assignment['stage_name']) ?> - <?= sanitize($assignment['grade_name']) ?> - <?= sanitize($assignment['subject_name']) ?> </option> <?php endforeach; ?> </select> <input type="hidden" id="grade_id" name="grade_id"> <input type="hidden" id="subject_id" name="subject_id"> </div> <div class="col-md-6 mb-3" id="num_groups_container" style="display: none;"> <label for="num_groups" class="form-label">عدد المجموعات</label> <select class="form-select" id="num_groups" name="num_groups"> <option value="2">مجموعتان</option> <option value="3">3 مجموعات</option> <option value="4" selected>4 مجموعات</option> <option value="5">5 مجموعات</option> <option value="6">6 مجموعات</option> </select> </div> <div class="col-md-6 mb-3"> <label for="question_time" class="form-label">مدة السؤال (بالثواني)</label> <select class="form-select" id="question_time" name="question_time"> <option value="15">15 ثانية</option> <option value="20">20 ثانية</option> <option value="30" selected>30 ثانية</option> <option value="45">45 ثانية</option> <option value="60">60 ثانية</option> <option value="90">90 ثانية</option> <option value="120">120 ثانية</option> <option value="180">180 ثانية</option> </select> </div> </div> <div class="mb-3"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="is_public" name="is_public"> <label class="form-check-label" for="is_public"> <strong>جعل المسابقة عامة</strong> <small class="text-muted d-block"> إذا تم تفعيل هذا الخيار، ستظهر المسابقة في الصفحة الرئيسية ويمكن لأي شخص اللعب بدون تسجيل </small> </label> </div> </div> <div class="d-grid gap-2 d-md-flex justify-content-md-end"> <button type="submit" name="create_competition" class="btn btn-success btn-lg"> <i class="fas fa-plus me-2"></i> إنشاء المسابقة والمتابعة </button> </div> </form> </div> </div> <!-- Competition Types Info --> <div class="row mt-4"> <div class="col-md-6"> <div class="card h-100"> <div class="card-header bg-primary text-white"> <h6 class="mb-0"> <i class="fas fa-users me-2"></i> مسابقة المجموعات </h6> </div> <div class="card-body"> <ul class="list-unstyled"> <li><i class="fas fa-check text-success me-2"></i>تقسيم الطلاب إلى مجموعات</li> <li><i class="fas fa-check text-success me-2"></i>أسئلة متنوعة مع خيارات متعددة</li> <li><i class="fas fa-check text-success me-2"></i>بطاقات خاصة (مكافأة، خصم، سرقة)</li> <li><i class="fas fa-check text-success me-2"></i>نظام نقاط تفاعلي</li> <li><i class="fas fa-check text-success me-2"></i>مناسبة للفصول الدراسية</li> </ul> </div> </div> </div> <div class="col-md-6"> <div class="card h-100"> <div class="card-header bg-warning text-dark"> <h6 class="mb-0"> <i class="fas fa-crown me-2"></i> من سيربح المليون </h6> </div> <div class="card-body"> <ul class="list-unstyled"> <li><i class="fas fa-check text-success me-2"></i>15 مستوى صعوبة متدرج</li> <li><i class="fas fa-check text-success me-2"></i>وسائل مساعدة (50:50، الجمهور، صديق)</li> <li><i class="fas fa-check text-success me-2"></i>سلم جوائز تصاعدي</li> <li><i class="fas fa-check text-success me-2"></i>تجربة مشابهة للبرنامج التلفزيوني</li> <li><i class="fas fa-check text-success me-2"></i>مناسبة للمسابقات الفردية</li> </ul> </div> </div> </div> </div> <?php endif; ?> </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() { // Show/hide number of groups based on competition type $('#competition_type').change(function() { if ($(this).val() === 'group') { $('#num_groups_container').show(); } else { $('#num_groups_container').hide(); } }); // Split grade and subject IDs $('#grade_subject').change(function() { const value = $(this).val(); if (value) { const parts = value.split('_'); $('#grade_id').val(parts[0]); $('#subject_id').val(parts[1]); } }); }); </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.87 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