BossBey File Manager
PHP:
8.4.18
OS:
Linux
User:
kids
Root
/
home
/
kids
/
public_html
/
app
📤 Upload
📝 New File
📁 New Folder
Close
Editing: table_aulas.php
<?php // Configuração do ano e mês atual $currentYear = date("Y"); $currentMonth = date("n"); // Verifica se foram passados ano e mês por GET if (isset($_GET['year']) && is_numeric($_GET['year'])) { $currentYear = (int)$_GET['year']; } if (isset($_GET['month']) && is_numeric($_GET['month'])) { $currentMonth = max(1, min(12, (int)$_GET['month'])); } // Array de meses $months = [ 1 => 'Janeiro', 2 => 'Fevereiro', 3 => 'Março', 4 => 'Abril', 5 => 'Maio', 6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro', 12 => 'Dezembro' ]; // Configuração do primeiro e último dia do mês $firstDay = "$currentYear-$currentMonth-01"; $lastDay = date("Y-m-t H:i:s", strtotime($firstDay)); // Consulta SQL $sql = "SELECT `events`.*, turma.*, `local`.nome AS nome_local FROM events INNER JOIN turma ON events.id_turma = turma.id_t INNER JOIN `local` ON events.id_local = `local`.id WHERE start >= :firstDay AND end <= DATE_ADD(:lastDay, INTERVAL 1 DAY) ORDER BY end ASC"; $stmt = $pdo->prepare($sql); $stmt->execute([':firstDay' => $firstDay, ':lastDay' => $lastDay]); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); ?> <h2>Relação de Aulas marcadas de <?php echo $months[$currentMonth] . " de $currentYear"; ?></h2> <div class="d-flex justify-content-between align-items-center mb-3"> <!-- Formulário com select para mês e ano --> <form method="GET" class="form-inline"> <label for="month" class="mr-2">Mês:</label> <select name="month" id="month" class="form-control mr-2"> <?php foreach ($months as $num => $name): ?> <option value="<?php echo $num; ?>" <?php echo ($num == $currentMonth) ? 'selected' : ''; ?>> <?php echo $name; ?> </option> <?php endforeach; ?> </select> <label for="year" class="mr-2">Ano:</label> <select name="year" id="year" class="form-control mr-2"> <?php for ($y = $currentYear - 5; $y <= $currentYear + 5; $y++): ?> <option value="<?php echo $y; ?>" <?php echo ($y == $currentYear) ? 'selected' : ''; ?>> <?php echo $y; ?> </option> <?php endfor; ?> </select> <button type="submit" class="btn btn-primary">Filtrar</button> </form> <button type="button" class="btn btn-success" data-toggle="modal" data-target="#criarModal">Criar Aula</button> </div> <?php echo ' <div class="card"> <div class="card-header"> <h3 class="card-title">Administração de aulas</h3> <div class="card-tools"> <button type="button" class="btn btn-tool" data-card-widget="collapse"> <i class="fas fa-minus"></i> </button> <button type="button" class="btn btn-tool" data-card-widget="remove"> <i class="fas fa-times"></i> </button> </div> </div> <!-- /.card-header --> <div class="card-body"> <table id="example1" class="table table-bordered table-striped"> <thead> <tr> <th>Turma</th> <th>Código | Idade</th> <th>Data-Hora</th> <th>Realizada</th> <th>Dados</th> <th>Presença</th> <th>Ações</th> </tr> </thead> <tbody> '; foreach ($result as $row): ?> <tr> <td><?= htmlspecialchars($row['nome_t']); ?></td> <td><?= htmlspecialchars($row['identificacao'] . " | " . $row['codigo']); ?></td> <td><?= date("d/m/Y H:i:s", strtotime($row['start'])); ?></td> <td> <?php if ($row['realizada'] == 0): ?> <?php if (!empty($row['justificativa'])): ?> <button type="button" class="btn btn-danger btn-sm" data-toggle="modal" data-target="#justificativaModal<?= $row['id']; ?>">NÃO</button> <?php else: ?> <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#justificativaModal<?= $row['id']; ?>">INFORMAR</button> <?php endif; ?> <?php elseif ($row['realizada'] == 1): ?> <button type="button" class="btn btn-success btn-sm" disabled>SIM</button> <?php endif; ?> </td> <td> <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#obsModal<?= $row['id']; ?>">DADOS</button> </td> <td> <button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target="#PresencaModal<?= $row['id']; ?>">PRESENÇA</button> </td> <td> <button type="button" class="btn btn-warning btn-sm" data-toggle="modal" data-target="#editModal<?= $row['id']; ?>">Editar</button> <form action="delete.php" method="post" style="display: inline;"> <input type="hidden" name="voltar" value="aulas.php"> <input type="hidden" name="origem" value="events"> <input type="hidden" name="id" value="<?= $row['id']; ?>"> <input type="submit" class="btn btn-danger btn-sm" value="Deletar" <?= ($row['realizada'] == 1) ? 'disabled' : ''; ?>> </form> </td> </tr> <!-- Modal de Justificativa --> <div class="modal fade" id="justificativaModal<?= $row['id']; ?>" tabindex="-1" role="dialog" aria-labelledby="justificativaModalLabel<?= $row['id']; ?>" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Informar dados da Aula</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <!-- Formulário para justificativa --> <form action="justificar.php" method="post"> <input type="hidden" name="id" value="<?= $row['id']; ?>"> <div class="form-group"> <label for="justificativa">Justificativa:</label> <textarea name="justificativa" class="form-control"><?= htmlspecialchars($row['justificativa'], ENT_QUOTES, 'UTF-8') ?></textarea> </div> <div class="form-group"> <label for="realizada">Status da Aula:</label> <select name="realizada" class="form-control"> <option value="0" <?= $row['realizada'] == 0 ? 'selected' : '' ?>>Pendente</option> <option value="1" <?= $row['realizada'] == 1 ? 'selected' : '' ?>>Sim</option> <option value="3" <?= $row['realizada'] == 3 ? 'selected' : '' ?>>Não</option> </select> </div> <button type="submit" class="btn btn-primary mt-3">Atualizar</button> </form> </div> </div> </div> </div> <!-- Modal de Dados --> <div class="modal fade" id="obsModal<?= $row['id']; ?>" tabindex="-1" role="dialog" aria-labelledby="obsModalLabel<?= $row['id']; ?>" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Dados da Aula</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <p>Objetivo da Aula: <?= htmlspecialchars($row['descricao']); ?></p> <p>Início: <?= date("d/m/Y H:i:s", strtotime($row['start'])); ?></p> <p>Término: <?= date("d/m/Y H:i:s", strtotime($row['end'])); ?></p> <p>Estabelecimento: <?= htmlspecialchars($row['nome_local']); ?></p> <p>Observações da Aula: <?= htmlspecialchars($row['observacao']); ?></p> <?php if ($row['realizada'] == 3): ?> <h5>Justificativa:</h5> <p><?= htmlspecialchars($row['justificativa']); ?></p> <?php endif; ?> </div> </div> </div> </div> <!-- Modal de Presença --> <div class="modal fade" id="PresencaModal<?= $row['id']; ?>" tabindex="-1" role="dialog" aria-labelledby="PresencaModalLabel<?= $row['id']; ?>" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Registrar Presença para a Turma: <?= htmlspecialchars($row['nome_t']); ?></h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form id="presencaForm<?= $row['id']; ?>" action="registrar_presenca.php" method="post"> <input type="hidden" name="event" value="<?= $row['id']; ?>"> <div class="form-group"> <label>Marcar Presença dos Alunos:</label> <div class="row"> <?php // Obter alunos da turma $stmtAlunos = $pdo->prepare("SELECT aluno.id_al, aluno.nome_al FROM aluno INNER JOIN turma ON aluno.id_turma = turma.id_t WHERE turma.id_t = :id_turma"); $stmtAlunos->execute([':id_turma' => $row['id_turma']]); $alunos = $stmtAlunos->fetchAll(PDO::FETCH_ASSOC); foreach ($alunos as $aluno) { echo '<div class="col-12 mb-2">'; echo '<label>'; echo '<input type="checkbox" class="aluno-presenca" name="presenca[' . $aluno['id_al'] . '][presenca]" value="1" checked data-aluno-id="' . $aluno['id_al'] . '"> '; echo htmlspecialchars($aluno['nome_al']); echo '</label>'; echo '<input type="text" class="form-control mt-2 obs-input" name="presenca[' . $aluno['id_al'] . '][obs]" placeholder="Observação (opcional)" style="display: none;" data-obs-for="' . $aluno['id_al'] . '">'; echo '</div>'; } ?> </div> </div> <button type="submit" class="btn btn-primary mt-3">Registrar Presença</button> </form> </div> </div> </div> </div> <script> // Exibir campo de observação ao desmarcar o checkbox document.querySelectorAll('.aluno-presenca').forEach((checkbox) => { checkbox.addEventListener('change', function () { const obsInput = document.querySelector(`.obs-input[data-obs-for="${this.dataset.alunoId}"]`); obsInput.style.display = this.checked ? 'none' : 'block'; }); }); </script> <?php endforeach; ?> </tbody> </table> </div> <!-- Modal para criar aula --> <div class="modal fade" id="criarModal" tabindex="-1" role="dialog" aria-labelledby="criarModalLabel" aria-hidden="true"> <div class="modal-dialog modal-xl" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="criarModalLabel">Criar Aula</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <form action="criar_aula.php" method="POST"> <div class="modal-body"> <div class="form-row"> <div class="form-group col-md-6"> <label for="id_turma">Turma</label> <select class="form-control" id="id_turma" name="id_turma" required> <option value="">Selecione uma turma</option> <?php try { $sqlTurmas = "SELECT id_t, nome_t FROM turma WHERE ativo_t = 1 ORDER BY nome_t ASC"; $stmtTurmas = $pdo->query($sqlTurmas); while ($turma = $stmtTurmas->fetch(PDO::FETCH_ASSOC)) { echo '<option value="' . htmlspecialchars($turma['id_t'], ENT_QUOTES, 'UTF-8') . '">' . htmlspecialchars($turma['nome_t'], ENT_QUOTES, 'UTF-8') . '</option>'; } } catch (PDOException $e) { echo '<option value="">Erro ao carregar turmas</option>'; } ?> </select> </div> <div class="form-group col-md-6"> <label for="id_local">Local</label> <select class="form-control" id="id_local" name="id_local" required> <option value="">Selecione um local</option> <?php try { $sqlLocais = "SELECT id, nome FROM local ORDER BY nome ASC"; $stmtLocais = $pdo->query($sqlLocais); while ($local = $stmtLocais->fetch(PDO::FETCH_ASSOC)) { echo '<option value="' . htmlspecialchars($local['id'], ENT_QUOTES, 'UTF-8') . '">' . htmlspecialchars($local['nome'], ENT_QUOTES, 'UTF-8') . '</option>'; } } catch (PDOException $e) { echo '<option value="">Erro ao carregar locais</option>'; } ?> </select> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="title">Título</label> <input type="text" class="form-control" id="title" name="title" required> </div> <div class="form-group col-md-6"> <label for="color">Cor</label> <input type="color" class="form-control" id="color" name="color" value="#000000"> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="start">Data e Hora de Início</label> <input type="datetime-local" class="form-control" id="start" name="start" required> </div> <div class="form-group col-md-6"> <label for="end">Data e Hora de Fim</label> <input type="datetime-local" class="form-control" id="end" name="end" required> </div> </div> <div class="form-group"> <label for="descricao">Descrição</label> <textarea class="form-control" id="descricao" name="descricao" rows="3" required></textarea> </div> <div class="form-group"> <label for="observacao">Observação</label> <textarea class="form-control" id="observacao" name="observacao" rows="3"></textarea> </div> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary">Salvar</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button> </div> </form> </div> </div> </div>
Save
Cancel