prepare('DELETE FROM paginas WHERE id = ?')->execute([$id]); header('Location: paginas_admin.php?excluido=1'); exit; } if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['acao'] ?? '') === 'salvar') { $id = (int) ($_POST['id'] ?? 0); $chave = strtolower(trim($_POST['chave'] ?? '')); $nome = trim($_POST['nome'] ?? ''); $arquivo = trim($_POST['arquivo'] ?? ''); $ordem = (int) ($_POST['ordem'] ?? 0); $ativo = isset($_POST['ativo']) ? 1 : 0; if ($chave === '' || $nome === '' || $arquivo === '') { $erro = 'Preencha chave, nome e arquivo.'; } elseif (!preg_match('/^[a-z0-9_]+$/', $chave)) { $erro = 'A chave só pode ter letras minúsculas, números e sublinhado (ex: relatorios_mensais).'; } elseif (array_key_exists($chave, AO_PAGINAS_ADMIN)) { $erro = 'Essa chave é reservada para as páginas de administração do próprio sistema.'; } else { try { if ($id > 0) { $stmt = $pdo->prepare('UPDATE paginas SET chave=?, nome=?, arquivo=?, ordem=?, ativo=? WHERE id=?'); $stmt->execute([$chave, $nome, $arquivo, $ordem, $ativo, $id]); } else { $stmt = $pdo->prepare('INSERT INTO paginas (chave, nome, arquivo, ordem, ativo) VALUES (?,?,?,?,?)'); $stmt->execute([$chave, $nome, $arquivo, $ordem, $ativo]); } header('Location: paginas_admin.php?salvo=1'); exit; } catch (PDOException $e) { $erro = ($e->getCode() === '23000') ? 'Já existe uma página com esta chave.' : ('Erro ao salvar: ' . $e->getMessage()); } } } $editando = null; if (isset($_GET['editar'])) { $stmt = $pdo->prepare('SELECT * FROM paginas WHERE id = ?'); $stmt->execute([(int) $_GET['editar']]); $editando = $stmt->fetch() ?: null; } if (isset($_GET['salvo'])) $sucesso = 'Página salva com sucesso.'; if (isset($_GET['excluido'])) $sucesso = 'Página excluída.'; $paginas = $pdo->query('SELECT * FROM paginas ORDER BY ordem, nome')->fetchAll(); require __DIR__ . '/includes/header.php'; ?>

Páginas do sistema

Esta é a lista de páginas de negócio que podem ser liberadas por perfil, em Perfis. Ao cadastrar uma página nova aqui, crie também o arquivo .php correspondente no projeto, usando a mesma chave na variável $pagina_ativa.

Cancelar
Páginas cadastradas
OrdemNomeChaveArquivoStatus
Editar