Files
andreandClaude Sonnet 5 33b7f19d15 refactor(horario): partilhar _form.php entre create e edit (audit 6.8)
Extrai os campos comuns (modalidade, dia, início, fim, sala) para
_form.php. create.php formatava hora_inicio/hora_fim sem substr()
enquanto edit.php aplicava substr(..., 0, 5) para cortar os segundos
que vêm da coluna TIME da BD — unificado na versão de edit.php (mais
defensiva; sem efeito em create.php, cujos valores já vêm em "HH:MM").

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 21:45:14 +01:00

52 lines
2.2 KiB
PHP

<?php
require __DIR__ . '/../../../config/db.php';
require __DIR__ . '/../../../config/functions.php';
$user = require_admin();
$errors = [];
$data = ['id_modalidade' => '', 'dia_semana' => '', 'hora_inicio' => '09:00', 'hora_fim' => '10:00', 'local' => 'sala1'];
$modalidades = db_modalidades_options($pdo);
$dias = ['segunda'=>'Segunda','terça'=>'Terça','quarta'=>'Quarta','quinta'=>'Quinta','sexta'=>'Sexta','sábado'=>'Sábado','domingo'=>'Domingo'];
$salas = ['sala1'=>'Sala 1','sala2'=>'Sala 2','crossfit'=>'CrossFit',''=>'Outro'];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
csrf_check();
$data = [
'id_modalidade' => (int) ($_POST['id_modalidade'] ?? 0),
'dia_semana' => trim($_POST['dia_semana'] ?? ''),
'hora_inicio' => trim($_POST['hora_inicio'] ?? ''),
'hora_fim' => trim($_POST['hora_fim'] ?? ''),
'local' => trim($_POST['local'] ?? ''),
];
if (!$data['id_modalidade']) $errors[] = 'A modalidade é obrigatória.';
if ($data['dia_semana'] === '') $errors[] = 'O dia é obrigatório.';
if ($data['hora_inicio'] === '') $errors[] = 'A hora de início é obrigatória.';
if ($data['hora_fim'] === '') $errors[] = 'A hora de fim é obrigatória.';
if (!$errors) {
$id = db_horario_create($pdo, $data);
session()->setFlashdata('success', 'Aula adicionada.');
header('Location: ' . base_url('views/admin/horario/index.php'));
exit;
}
}
$page_title = 'Adicionar Aula';
include __DIR__ . '/../../../includes/header.php';
?>
<div class="container" style="max-width:600px;">
<h1 class="h3 mb-4">Adicionar Aula</h1>
<?php foreach ($errors as $e): ?><div class="alert alert-danger"><?= htmlspecialchars($e) ?></div><?php endforeach; ?>
<form method="POST" class="card shadow-sm"><div class="card-body">
<?= csrf_field() ?>
<?php include __DIR__ . '/_form.php'; ?>
<div class="mt-4 d-flex gap-2">
<button type="submit" class="btn btn-primary">Guardar</button>
<a class="btn btn-outline-secondary" href="index.php">Cancelar</a>
</div>
</div></form>
</div>
<?php include __DIR__ . '/../../../includes/footer.php'; ?>