Files
whatsapp/modules/turnero/api/reorder_tv_media.php
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

38 lines
1.0 KiB
PHP

<?php
/**
* modules/turnero/api/reorder_tv_media.php
* Guarda el orden y la duración (para imágenes) de la playlist de la Pantalla TV.
* POST JSON: { items: [{ id, orden, duracion_segundos }, ...] }
*/
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) ?? [];
$items = is_array($body['items'] ?? null) ? $body['items'] : [];
if (!$items) {
echo json_encode(['ok' => false, 'error' => 'items requerido']);
exit;
}
$stmt = $pdo->prepare(
"UPDATE turnero_tv_media SET orden = ?, duracion_segundos = ? WHERE id = ?"
);
foreach ($items as $i => $it) {
$id = (int)($it['id'] ?? 0);
if (!$id) continue;
$dur = max(1, (int)($it['duracion_segundos'] ?? 8));
$stmt->execute([$i, $dur, $id]);
}
echo json_encode(['ok' => true]);