Commit 59e1896c authored by Administrator's avatar Administrator

Update 4 files via Son of Anton

parent 54a87b2e
This diff is collapsed.
<?php
use App\Core\CSRF;
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="csrf-token" content="<?= e(CSRF::token()) ?>">
<title><?= $__template->yield('title', 'تسجيل الدخول') ?> — نادي النادي شيراتون</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title><?php $__template->yield('title', 'تسجيل الدخول'); ?> — نادي النادي</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="<?= url('assets/css/main.css') ?>">
<style>
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
background: linear-gradient(135deg, #1A1A2E 0%, #0D7377 100%);
font-family: 'Cairo', 'Segoe UI', Tahoma, Arial, sans-serif;
direction: rtl;
}
.auth-card {
background: #fff;
border-radius: 12px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
padding: 40px;
width: 100%;
max-width: 420px;
}
.auth-header {
text-align: center;
margin-bottom: 30px;
}
.auth-header h1 {
color: #0D7377;
font-size: 24px;
margin: 0 0 5px;
}
.auth-header p {
color: #6B7280;
font-size: 14px;
margin: 0;
body { display: flex; align-items: center; justify-content: center; min-height: 100vh; background: linear-gradient(135deg, #0D7377 0%, #1A1A2E 100%); padding: 20px; }
.auth-card { background: #fff; border-radius: 12px; padding: 40px; width: 100%; max-width: 420px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.auth-logo { text-align: center; margin-bottom: 30px; }
.auth-logo h1 { font-size: 24px; color: #0D7377; margin: 0; }
.auth-logo p { color: #6B7280; font-size: 13px; margin-top: 5px; }
@media (max-width: 480px) {
.auth-card { padding: 25px 20px; }
.auth-logo h1 { font-size: 20px; }
}
</style>
</head>
<body>
<div class="auth-card">
<div class="auth-header">
<h1>نادي النادي شيراتون</h1>
<p>THE CLUB Sheraton</p>
</div>
<div class="auth-card">
<div class="auth-logo">
<h1>🏛️ THE CLUB</h1>
<p>نادي النادي شيراتون — Sports City</p>
</div>
<?php
$session = \App\Core\App::getInstance()->session();
$alerts = $session->getAlerts();
if (!empty($alerts)):
foreach ($alerts as $alert):
?>
<div style="padding:10px 15px;border-radius:6px;margin-bottom:15px;font-size:13px;
background:<?= ($alert['type'] ?? '') === 'error' ? '#FEF2F2' : '#F0FDF4' ?>;
color:<?= ($alert['type'] ?? '') === 'error' ? '#DC2626' : '#059669' ?>;
border:1px solid <?= ($alert['type'] ?? '') === 'error' ? '#FECACA' : '#BBF7D0' ?>;">
<?= e($alert['message'] ?? '') ?>
</div>
<?php
endforeach;
endif;
?>
<?php
$__session = \App\Core\App::getInstance()->session();
$__alerts = $__session->flash('_alerts') ?? [];
?>
<?php if (!empty($__alerts)): ?>
<?php foreach ($__alerts as $__alert): ?>
<div class="alert alert-<?= e($__alert['type'] ?? 'info') ?>" style="margin-bottom:15px;"><?= e($__alert['message'] ?? '') ?></div>
<?php endforeach; ?>
<?php endif; ?>
<?= $__template->yield('content', '') ?>
</div>
<?php $__template->yield('content'); ?>
</div>
</body>
</html>
\ No newline at end of file
<?php
/**
* Main application layout — RTL Arabic-first.
* All authenticated pages use this layout.
*/
use App\Core\App;
use App\Core\CSRF;
$app = App::getInstance();
$employee = $app->currentEmployee();
$employeeName = $employee ? ($employee->full_name_ar ?? 'مستخدم') : 'زائر';
$currentPath = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH);
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="csrf-token" content="<?= e(CSRF::token()) ?>">
<title><?= $__template->yield('title', 'لوحة التحكم') ?> — نادي النادي شيراتون</title>
<link rel="stylesheet" href="<?= url('assets/css/main.css') ?>">
<?= $__template->yield('styles', '') ?>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title><?php $__template->yield('title', 'النظام'); ?> — نادي النادي</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="<?= url('assets/css/main.css') ?>?v=<?= filemtime(App\Core\App::getInstance()->basePath() . '/public/assets/css/main.css') ?>">
</head>
<body>
<!-- Sidebar -->
<aside class="sidebar" id="sidebar">
<?php $__template->include('Shared.Components.sidebar'); ?>
</aside>
<div class="app-layout">
<!-- Sidebar Overlay (mobile) -->
<div class="sidebar-overlay" id="sidebarOverlay"></div>
<!-- Main Wrapper -->
<div class="main-wrapper" id="main-wrapper">
<!-- Sidebar -->
<?php $__template->include('Shared.Components.sidebar'); ?>
<!-- Top Header -->
<header class="top-header">
<div class="header-right">
<button class="sidebar-toggle-btn" onclick="toggleSidebar()"></button>
<div class="header-title">
<h1><?= $__template->yield('title', 'لوحة التحكم') ?></h1>
<!-- Main Wrapper -->
<div class="main-wrapper">
<!-- Header -->
<header class="main-header">
<div style="display:flex;align-items:center;gap:12px;">
<button class="hamburger-btn" id="hamburgerBtn" aria-label="القائمة"></button>
<h1 class="page-title"><?php $__template->yield('title', 'لوحة التحكم'); ?></h1>
</div>
</div>
<div class="header-left">
<?= $__template->yield('page_actions', '') ?>
<div class="header-user">
<span class="header-user-name"><?= e($employeeName) ?></span>
<a href="/logout" class="header-logout" title="تسجيل الخروج">🚪</a>
<div class="page-actions">
<?php $__template->yield('page_actions', ''); ?>
<div class="user-info">
<?php
$__employee = \App\Core\App::getInstance()->currentEmployee();
if ($__employee):
?>
<span class="user-name-text"><?= e($__employee->full_name_ar ?? '') ?></span>
<a href="/logout" class="btn btn-sm btn-outline" style="color:var(--red);border-color:var(--red);">خروج</a>
<?php endif; ?>
</div>
</div>
</div>
</header>
</header>
<!-- Alerts -->
<?php $__template->include('Shared.Components.alerts'); ?>
<!-- Page Content -->
<main class="page-content">
<?= $__template->yield('content', '') ?>
</main>
<!-- Alerts -->
<?php
$__session = \App\Core\App::getInstance()->session();
$__alerts = $__session->flash('_alerts') ?? [];
?>
<?php if (!empty($__alerts)): ?>
<div style="padding:15px 25px 0;">
<?php foreach ($__alerts as $__alert): ?>
<div class="alert alert-<?= e($__alert['type'] ?? 'info') ?>"><?= e($__alert['message'] ?? '') ?></div>
<?php endforeach; ?>
</div>
<?php endif; ?>
<!-- Footer -->
<footer class="page-footer">
<span>نادي النادي شيراتون &copy; <?= date('Y') ?></span>
<span>الإصدار 1.0.0</span>
<span><?= arabic_date(date('Y-m-d')) ?></span>
</footer>
<!-- Main Content -->
<main class="main-content">
<?php $__template->yield('content'); ?>
</main>
</div>
</div>
<script src="<?= url('assets/js/app.js') ?>"></script>
<script>
function toggleSidebar() {
var sb = document.getElementById('sidebar');
var mw = document.getElementById('main-wrapper');
sb.classList.toggle('collapsed');
mw.classList.toggle('sidebar-collapsed');
}
function toggleSubmenu(el) {
var parent = el.parentElement;
var submenu = parent.querySelector('.sidebar-submenu');
if (submenu) {
var isOpen = submenu.style.display === 'block';
submenu.style.display = isOpen ? 'none' : 'block';
parent.classList.toggle('open', !isOpen);
(function() {
var sidebar = document.querySelector('.sidebar');
var overlay = document.getElementById('sidebarOverlay');
var hamburger = document.getElementById('hamburgerBtn');
function openSidebar() {
sidebar.classList.add('open');
overlay.classList.add('active');
document.body.style.overflow = 'hidden';
}
function closeSidebar() {
sidebar.classList.remove('open');
overlay.classList.remove('active');
document.body.style.overflow = '';
}
if (hamburger) {
hamburger.addEventListener('click', function(e) {
e.stopPropagation();
if (sidebar.classList.contains('open')) {
closeSidebar();
} else {
openSidebar();
}
});
}
}
if (overlay) {
overlay.addEventListener('click', closeSidebar);
}
// Close sidebar on link click (mobile)
var sidebarLinks = sidebar ? sidebar.querySelectorAll('.sidebar-link') : [];
sidebarLinks.forEach(function(link) {
link.addEventListener('click', function() {
if (window.innerWidth <= 768) {
closeSidebar();
}
});
});
// Close on Escape
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') closeSidebar();
});
// Close sidebar if window resizes above mobile
window.addEventListener('resize', function() {
if (window.innerWidth > 768) {
closeSidebar();
}
});
})();
</script>
<?= $__template->yield('scripts', '') ?>
<?php $__template->yield('scripts', ''); ?>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment