Skip to content
Open

Uf3 #18

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# [Choice] PHP version (use -bullseye variants on local arm64/Apple Silicon): 8, 8.0, 7, 7.4, 7.3, 8-bullseye, 8.0-bullseye, 7-bullseye, 7.4-bullseye, 7.3-bullseye, 8-buster, 8.0-buster, 7-buster, 7.4-buster, 7.3-buster
ARG VARIANT=7-bullseye
FROM mcr.microsoft.com/vscode/devcontainers/php:0-${VARIANT}
RUN docker-php-ext-install mysqli pdo_mysql

# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none"
Expand Down
286 changes: 286 additions & 0 deletions .devcontainer/clubesPro/admin/adminEstadisticas.php

Large diffs are not rendered by default.

48 changes: 48 additions & 0 deletions .devcontainer/clubesPro/admin/adminPanel.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Panel de Administración</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<link href="../style.css" rel="stylesheet">
</head>
<body class="admin-panel-body"> <!-- Fondo negro -->

<div class="container admin-panel-container d-flex align-items-center justify-content-center full-height">
<div class="w-100">
<div class="row mb-5">
<div class="col-md-6 d-flex">
<a href="adminPartidos.php" class="panel-item w-100">
<h2>Partidos</h2>
<p>Gestiona los partidos.</p>
</a>
</div>
<div class="col-md-6 d-flex">
<a href="adminPersonajes.php" class="panel-item w-100">
<h2>Personajes</h2>
<p>Gestiona los personajes.</p>
</a>
</div>
</div>
<div class="row">
<div class="col-md-6 d-flex">
<a href="adminUsuarios.php" class="panel-item w-100">
<h2>Usuarios</h2>
<p>Gestiona los usuarios registrados.</p>
</a>
</div>
<div class="col-md-6 d-flex">
<a href="adminEstadisticas.php" class="panel-item w-100">
<h2>Estadísticas</h2>
<p>Gestiona las estadísticas.</p>
</a>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>
145 changes: 145 additions & 0 deletions .devcontainer/clubesPro/admin/adminPartidos.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
<?php
session_start();
require_once('../config.php');

// Verificar que el rol sea administrador
if ($_SESSION['user_rol'] !== 'admin') {
echo 'No tienes permisos para acceder a esta página';
exit;
}

// Extracción de partidos
$resultPartidos = $mysqli->query("SELECT * FROM Partidos");
$partidos = $resultPartidos->fetch_all(MYSQLI_ASSOC);
?>

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Administrar Partidos</title>
<!-- Bootstrap CSS -->
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
</head>
<?php include('headerAdmin.php'); ?>
<body class="bg-dark">
<div class="container mt-5">
<h1 class="mb-4 text-center">Administrar Partidos</h1>
<button type="button" class="btn btn-success mb-3" data-toggle="modal" data-target="#addPartidoModal">Añadir Partido</button>
<table class="table table-striped table-bordered">
<thead class="thead-dark">
<tr>
<th>Resultado Local</th>
<th>Resultado Visitante</th>
<th>División</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<?php foreach ($partidos as $partido) : ?>
<tr>
<td><?= htmlspecialchars($partido['resultado_local'] ?? '') ?></td>
<td><?= htmlspecialchars($partido['resultado_visitante'] ?? '') ?></td>
<td><?= htmlspecialchars($partido['division'] ?? '') ?></td>
<td>
<div class="d-flex">
<button type="button" class="btn btn-primary btn-sm mb-3 mr-2 d-flex align-items-center" data-toggle="modal" data-target="#editPartidoModal" data-id="<?= $partido['id'] ?>" data-local="<?= htmlspecialchars($partido['resultado_local'] ?? '') ?>" data-visitante="<?= htmlspecialchars($partido['resultado_visitante'] ?? '') ?>" data-division="<?= htmlspecialchars($partido['division'] ?? '') ?>">
<i class="fas fa-pencil-alt"></i>
</button>
<a href="partidos/eliminar-partidos.php?id=<?= $partido['id'] ?>" class="btn btn-danger btn-sm mb-3 d-flex align-items-center">
<i class="fas fa-trash-alt"></i>
</a>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>

<!-- Modal Añadir Partido -->
<div class="modal fade" id="addPartidoModal" tabindex="-1" aria-labelledby="addPartidoModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addPartidoModalLabel">Formulario añadir partido</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="partidos/anyadir-partidos.php" method="POST">
<div class="form-group">
<label for="resultado_local">Resultado Local:</label>
<input type="text" id="resultado_local" name="resultado_local" class="form-control">
</div>
<div class="form-group">
<label for="resultado_visitante">Resultado Visitante:</label>
<input type="text" id="resultado_visitante" name="resultado_visitante" class="form-control">
</div>
<div class="form-group">
<label for="division">División:</label>
<input type="text" id="division" name="division" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Enviar</button>
</form>
</div>
</div>
</div>
</div>

<!-- Modal Editar Partido -->
<div class="modal fade" id="editPartidoModal" tabindex="-1" aria-labelledby="editPartidoModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="editPartidoModalLabel">Formulario editar partido</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="partidos/editar-partidos.php" method="POST">
<input type="hidden" id="edit_partido_id" name="id">
<div class="form-group">
<label for="edit_resultado_local">Resultado Local:</label>
<input type="text" id="edit_resultado_local" name="resultado_local" class="form-control">
</div>
<div class="form-group">
<label for="edit_resultado_visitante">Resultado Visitante:</label>
<input type="text" id="edit_resultado_visitante" name="resultado_visitante" class="form-control">
</div>
<div class="form-group">
<label for="edit_division">División:</label>
<input type="text" id="edit_division" name="division" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Actualizar</button>
</form>
</div>
</div>
</div>
</div>

<!-- Bootstrap JS and dependencies -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script>
$('#editPartidoModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var id = button.data('id');
var local = button.data('local');
var visitante = button.data('visitante');
var division = button.data('division');

var modal = $(this);
modal.find('#edit_partido_id').val(id);
modal.find('#edit_resultado_local').val(local);
modal.find('#edit_resultado_visitante').val(visitante);
modal.find('#edit_division').val(division);
});
</script>
</body>
</html>
145 changes: 145 additions & 0 deletions .devcontainer/clubesPro/admin/adminPersonajes.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
<?php
session_start();
require_once('../config.php');

//1. verificar que el rol sea administrador
if (($_SESSION['user_rol']) !== 'admin') {
echo 'No tienes permisos para acceder a esta página';
exit;
}

//extraccion de personajes
$resultsPersonajes = $mysqli->query("SELECT * FROM Personajes");
$personajes = $resultsPersonajes->fetch_all(MYSQLI_ASSOC);
?>

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Administrar Personajes</title>
<!-- Bootstrap CSS -->
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
</head>
<?php include('headerAdmin.php'); ?>
<body>
<div class="container mt-5">
<h1 class="mb-4 text-center">Administrar Personajes</h1>
<button type="button" class="btn btn-success mb-3" data-toggle="modal" data-target="#addPersonajeModal">Añadir Personaje</button>
<table class="table table-striped table-bordered">
<thead class="thead-dark">
<tr>
<th>Nombre</th>
<th>Posición</th>
<th>Altura</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<?php foreach ($personajes as $personaje) : ?>
<tr>
<td><?= htmlspecialchars($personaje['nombre']) ?></td>
<td><?= htmlspecialchars($personaje['posicion']) ?></td>
<td><?= htmlspecialchars($personaje['altura']) ?></td>
<td>
<div class="d-flex">
<button type="button" class="btn btn-primary btn-sm mb-3 mr-2 d-flex align-items-center" data-toggle="modal" data-target="#editPersonajeModal" data-id="<?= $personaje['id'] ?>" data-nombre="<?= htmlspecialchars($personaje['nombre']) ?>" data-posicion="<?= htmlspecialchars($personaje['posicion']) ?>" data-altura="<?= htmlspecialchars($personaje['altura']) ?>">
<i class="fas fa-pencil-alt"></i>
</button>
<a href="personajes/eliminar-personajes.php?id=<?= $personaje['id'] ?>" class="btn btn-danger btn-sm mb-3 d-flex align-items-center">
<i class="fas fa-trash-alt"></i>
</a>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>

<!-- Modal Añadir Personaje -->
<div class="modal fade" id="addPersonajeModal" tabindex="-1" aria-labelledby="addPersonajeModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addPersonajeModalLabel">Formulario añadir personaje</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="personajes/anyadir-personajes.php" method="POST">
<div class="form-group">
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" class="form-control" required>
</div>
<div class="form-group">
<label for="posicion">Posición:</label>
<input type="text" id="posicion" name="posicion" class="form-control" required>
</div>
<div class="form-group">
<label for="altura">Altura:</label>
<input type="number" id="altura" name="altura" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Enviar</button>
</form>
</div>
</div>
</div>
</div>

<!-- Modal Editar Personaje -->
<div class="modal fade" id="editPersonajeModal" tabindex="-1" aria-labelledby="editPersonajeModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="editPersonajeModalLabel">Formulario editar personaje</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="personajes/editar-personajes.php" method="POST">
<input type="hidden" id="edit_personaje_id" name="id">
<div class="form-group">
<label for="edit_nombre">Nombre:</label>
<input type="text" id="edit_nombre" name="nombre" class="form-control" required>
</div>
<div class="form-group">
<label for="edit_posicion">Posición:</label>
<input type="text" id="edit_posicion" name="posicion" class="form-control" required>
</div>
<div class="form-group">
<label for="edit_altura">Altura:</label>
<input type="number" id="edit_altura" name="altura" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Actualizar</button>
</form>
</div>
</div>
</div>
</div>

<!-- Bootstrap JS and dependencies -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script>
$('#editPersonajeModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var id = button.data('id');
var nombre = button.data('nombre');
var posicion = button.data('posicion');
var altura = button.data('altura');

var modal = $(this);
modal.find('#edit_personaje_id').val(id);
modal.find('#edit_nombre').val(nombre);
modal.find('#edit_posicion').val(posicion);
modal.find('#edit_altura').val(altura);
});
</script>
</body>
</html>
Loading