11<?php
2- require_once __DIR__ . ' /../../../../vendor/autoload.php ' ;
2+ namespace App \ View \ Pages \ Auth ;
33
4- use App \View \Pages \Auth \LoginPage ;
4+ use App \View \Components \Navbar \Navbar ;
5+ use App \View \Components \Footer \Footer ;
56
6- session_start ();
7- $ error = '' ;
7+ /**
8+ * LoginPage - Página de Login Modular
9+ */
10+ class LoginPage {
11+ public static function display ($ props = []) {
12+ $ error = $ props ['error ' ] ?? '' ;
13+ ?>
14+ <!DOCTYPE html>
15+ <html lang="pt-BR">
16+ <head>
17+ <meta charset="UTF-8">
18+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
19+ <title>Login - Prodmais</title>
20+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
21+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/all.min.css">
22+ <link rel="stylesheet" href="/css/prodmais-elegant.css">
23+ <style>
24+ body {
25+ background: #f8fafc;
26+ min-height: 100vh;
27+ display: flex;
28+ flex-direction: column;
29+ }
30+ .login-container {
31+ flex: 1;
32+ display: flex;
33+ align-items: center;
34+ justify-content: center;
35+ padding: 2rem 0;
36+ }
37+ .login-card {
38+ background: white;
39+ border-radius: 1.5rem;
40+ box-shadow: 0 10px 25px rgba(0,0,0,0.05);
41+ overflow: hidden;
42+ width: 100%;
43+ max-width: 450px;
44+ border: 1px solid rgba(0,0,0,0.05);
45+ }
46+ .login-header {
47+ background: linear-gradient(135deg, #1a56db 0%, #0369a1 100%);
48+ padding: 3rem 2rem;
49+ text-align: center;
50+ color: white;
51+ }
52+ .login-body {
53+ padding: 2.5rem;
54+ }
55+ .form-control {
56+ padding: 0.75rem 1rem;
57+ border-radius: 0.75rem;
58+ border: 1px solid #e2e8f0;
59+ }
60+ .form-control:focus {
61+ border-color: #3b82f6;
62+ box-shadow: 0 0 0 3px rgba(59,130,246,0.1);
63+ }
64+ .btn-primary {
65+ background: #1a56db;
66+ border: none;
67+ padding: 0.75rem;
68+ border-radius: 0.75rem;
69+ font-weight: 600;
70+ margin-top: 1rem;
71+ }
72+ .btn-primary:hover {
73+ background: #1e40af;
74+ }
75+ .brand-logo {
76+ font-size: 2.5rem;
77+ font-weight: 900;
78+ margin-bottom: 0.5rem;
79+ }
80+ .brand-logo span {
81+ color: #0ea5e9;
82+ }
83+ </style>
84+ </head>
85+ <body>
86+ <?php Navbar::display (); ?>
887
9- // Auth logic (Simulated for brevity, in production this should be in a Service)
10- if ($ _SERVER ['REQUEST_METHOD ' ] === 'POST ' ) {
11- $ user = $ _POST ['user ' ] ?? '' ;
12- // ... logic ...
13- $ error = 'Usuário ou senha inválidos. ' ;
14- }
88+ <div class="login-container">
89+ <div class="login-card fade-in-up">
90+ <div class="login-header">
91+ <div class="brand-logo">Prod<span>mais</span></div>
92+ <p class="mb-0 opacity-75">Acesse sua conta para gerenciar produções</p>
93+ </div>
94+ <div class="login-body">
95+ <?php if ($ error ): ?>
96+ <div class="alert alert-danger d-flex align-items-center" role="alert">
97+ <i class="fas fa-exclamation-circle me-2"></i>
98+ <div><?php echo $ error ; ?> </div>
99+ </div>
100+ <?php endif ; ?>
15101
16- LoginPage::display (['error ' => $ error ]);
102+ <form method="POST">
103+ <div class="mb-3">
104+ <label class="form-label text-secondary small fw-bold">E-MAIL OU USUÁRIO</label>
105+ <input type="text" name="user" class="form-control" placeholder="jose.silva@umc.br" required>
106+ </div>
107+ <div class="mb-4">
108+ <div class="d-flex justify-content-between">
109+ <label class="form-label text-secondary small fw-bold">SENHA</label>
110+ <a href="/esqueci-senha.php" class="small text-decoration-none">Esqueceu a senha?</a>
111+ </div>
112+ <input type="password" name="password" class="form-control" placeholder="••••••••" required>
113+ </div>
114+ <button type="submit" class="btn btn-primary w-100">
115+ Entrar <i class="fas fa-sign-in-alt ms-2"></i>
116+ </button>
117+ </form>
118+ </div>
119+ <div class="bg-light p-3 text-center border-top">
120+ <span class="text-secondary small">Novo por aqui? </span>
121+ <a href="mailto:admin@umc.br" class="small text-decoration-none fw-bold">Solicite acesso</a>
122+ </div>
123+ </div>
124+ </div>
125+
126+ <?php Footer::display (); ?>
127+ </body>
128+ </html>
129+ <?php
130+ }
131+ }
0 commit comments