Files
whatsapp/modules/turnero/api/delete_tv_media.php
T
Lizandro GuarnizoandClaude Sonnet 4.6 6254e45e8f Pantalla TV del turnero: playlist de videos e imágenes en vez de un solo video
Nueva tabla turnero_tv_media (tipo, url, orden, duracion_segundos) para
soportar múltiples videos/imágenes reproducidos en secuencia y en bucle.
El video que ya estaba cargado se migró como primer ítem de la playlist.

- save_tv_media.php / delete_tv_media.php / reorder_tv_media.php
  reemplazan a save_tv_video.php (eliminado).
- configuracion.php (tab TV): subida múltiple, lista reordenable por
  arrastre, duración editable por imagen.
- display_global.php: el <video> único se reemplaza por un reproductor
  JS que recorre la playlist — video hasta 'ended', imagen por su
  duración configurada, y vuelve a empezar al terminar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-03 14:33:05 -05:00

46 lines
1.2 KiB
PHP

<?php
/**
* modules/turnero/api/delete_tv_media.php
* Elimina un ítem de la playlist de la Pantalla TV (archivo + fila).
* POST JSON: { id: int }
*/
require_once __DIR__ . '/../../../config/config.php';
header('Content-Type: application/json; charset=utf-8');
if (!isUserLoggedIn()) {
http_response_code(401);
echo json_encode(['ok' => false, 'error' => 'No autenticado']);
exit;
}
$pdo = Database::getInstance()->getConnection();
$body = json_decode(file_get_contents('php://input'), true) ?? [];
$id = (int)($body['id'] ?? 0);
if (!$id) {
echo json_encode(['ok' => false, 'error' => 'id requerido']);
exit;
}
$stmt = $pdo->prepare("SELECT url FROM turnero_tv_media WHERE id = ?");
$stmt->execute([$id]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$row) {
echo json_encode(['ok' => false, 'error' => 'No encontrado']);
exit;
}
$uploadDir = dirname(__DIR__, 3) . '/uploads/turnero/tv_media/';
$filename = basename(parse_url($row['url'], PHP_URL_PATH));
$filepath = $uploadDir . $filename;
if (is_file($filepath)) {
@unlink($filepath);
}
$pdo->prepare("DELETE FROM turnero_tv_media WHERE id = ?")->execute([$id]);
echo json_encode(['ok' => true]);