From af0d9ccd25586c7e1480f0a06be302bd40febf2c Mon Sep 17 00:00:00 2001
From: Markines16 <80280295+Markines16@users.noreply.github.com>
Date: Sun, 30 May 2021 23:42:30 +0200
Subject: [PATCH] =?UTF-8?q?Peque=C3=B1os=20pasos=20con=20fullcalendar?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
panel_manager/eventos.php | 139 +++++++++++++++++++++++++++++++
panel_manager/index.php | 19 ++++-
panel_manager/panel_manager.php | 11 ++-
panel_manager/sessioncalendar.js | 107 ++++++++++++++++++++++++
4 files changed, 274 insertions(+), 2 deletions(-)
create mode 100644 panel_manager/eventos.php
create mode 100644 panel_manager/sessioncalendar.js
diff --git a/panel_manager/eventos.php b/panel_manager/eventos.php
new file mode 100644
index 0000000..74fcfaa
--- /dev/null
+++ b/panel_manager/eventos.php
@@ -0,0 +1,139 @@
+ eventos.php?idEvento=XXXXX
+ $idEvento = filter_input(INPUT_GET, 'idEvento', FILTER_VALIDATE_INT);
+ if ($idEvento) {
+ $result = [];
+ $result[] = Evento::buscaPorId((int)$idEvento);
+ } else {
+ // Comprobamos si es una lista de eventos entre dos fechas -> eventos.php?start=XXXXX&end=YYYYY
+ $start = filter_input(INPUT_GET, 'start', FILTER_VALIDATE_REGEXP, array("options" => array("regexp"=>"/\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))/")));
+ $end = filter_input(INPUT_GET, 'end', FILTER_VALIDATE_REGEXP, array("options" => array("default" => null, "regexp"=>"/\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))/")));
+ if ($start) {
+ $startDateTime = $start . ' 00:00:00';
+ $endDateTime = $end;
+ if ($end) {
+ $endDateTime = $end. ' 00:00:00';
+ }
+ $result = Evento::buscaEntreFechas(1, $startDateTime, $endDateTime);
+ } else {
+ // Comprobamos si es una lista de eventos completa
+ $result = Evento::buscaTodosEventos(1); // HACK: normalmente debería de ser App::getSingleton()->idUsuario();
+ }
+ }
+
+ // Generamos un array de eventos en formato JSON
+ $json = json_encode($result, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
+
+ http_response_code(200); // 200 OK
+ header('Content-Type: application/json; charset=utf-8');
+ header('Content-Length: ' . mb_strlen($json));
+
+ echo $json;
+ break;
+ // Añadir un nuevo evento
+ case 'POST':
+ // 1. Leemos el contenido que nos envían
+ $entityBody = file_get_contents('php://input');
+
+ // 2. Verificamos que nos envían un objeto
+ $dictionary = json_decode($entityBody);
+ if (!is_object($dictionary)) {
+ throw new ParametroNoValidoException('El cuerpo de la petición no es valido');
+ }
+
+ // 3. Reprocesamos el cuerpo de la petición como un array PHP
+ $dictionary = json_decode($entityBody, true);
+ $dictionary['userId'] = 1;// HACK: normalmente debería de ser App::getSingleton()->idUsuario();
+ $e = Evento::creaDesdeDicionario($dictionary);
+ error_log("hmmm");
+ // 4. Guardamos el evento en BD
+ $result = Evento::guardaOActualiza($e);
+
+ // 5. Generamos un objecto como salida.
+ $json = json_encode($result, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
+
+ http_response_code(201); // 201 Created
+ header('Content-Type: application/json; charset=utf-8');
+ header('Content-Length: ' . mb_strlen($json));
+
+ echo $json;
+
+ break;
+ case 'PUT':
+ // 1. Comprobamos si es una consulta de un evento concreto -> eventos.php?idEvento=XXXXX
+ $idEvento = filter_input(INPUT_GET, 'idEvento', FILTER_VALIDATE_INT);
+ // 2. Leemos el contenido que nos envían
+ $entityBody = file_get_contents('php://input');
+ // 3. Verificamos que nos envían un objeto
+ $dictionary = json_decode($entityBody);
+ if (!is_object($dictionary)) {
+ throw new ParametroNoValidoException('El cuerpo de la petición no es valido');
+ }
+
+ // 4. Reprocesamos el cuerpo de la petición como un array PHP
+ $dictionary = json_decode($entityBody, true);
+ $e = Evento::buscaPorId($idEvento);
+ $e->actualizaDesdeDiccionario($dictionary, ['id', 'userId']);
+ $result = Evento::guardaOActualiza($e);
+
+ // 5. Generamos un objecto como salida.
+ $json = json_encode($result, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
+
+ http_response_code(200); // 200 OK
+ header('Content-Type: application/json; charset=utf-8');
+ header('Content-Length: ' . mb_strlen($json));
+
+ echo $json;
+ break;
+ case 'DELETE':
+ // 1. Comprobamos si es una consulta de un evento concreto -> eventos.php?idEvento=XXXXX
+ $idEvento = filter_input(INPUT_GET, 'idEvento', FILTER_VALIDATE_INT);
+ // 2. Borramos el evento
+ Evento::borraPorId($idEvento);
+
+ http_response_code(204); // 204 No content (como resultado)
+ header('Content-Type: application/json; charset=utf-8');
+ header('Content-Length: 0');
+ break;
+ default:
+ throw new MetodoNoSoportadoException($_SERVER['REQUEST_METHOD']. ' no está soportado');
+ break;
+
+
+}
diff --git a/panel_manager/index.php b/panel_manager/index.php
index 7d5f2dd..047c8b3 100644
--- a/panel_manager/index.php
+++ b/panel_manager/index.php
@@ -1,5 +1,8 @@
-
+
+
Dirección: '.$c_dir.'
Telefono: '.$c_tel.'
Espero que estes pasando un buen dia
+ + calendario '; return $panel; @@ -72,7 +74,14 @@ return $panel; } - + static function calendar(){ + $panel = ' +