update kiosk

This commit is contained in:
2026-10-21 12:24:12 +02:00
parent 5444ea943a
commit d6d424cae8
3 changed files with 320 additions and 9 deletions
+14 -1
View File
@@ -22,6 +22,7 @@ class Kiosk
'andamento' => 'Andamento 14 giorni',
'fermi' => 'Fermi della settimana',
'coda' => 'Lavoro in arrivo',
'meteo' => 'Meteo e previsioni',
'sicurezza' => 'Giorni senza infortuni',
'obiettivi' => 'Obiettivi',
'comunicazioni' => 'Comunicazioni',
@@ -51,7 +52,8 @@ class Kiosk
const DEFAULTS = [
'company' => 'Zibo',
'slide_seconds' => '15',
'slides' => 'linee,oggi,andamento,fermi,coda,sicurezza,obiettivi,comunicazioni,benvenuti,turni,menu',
'slide_durations' => '',
'slides' => 'linee,oggi,andamento,fermi,coda,meteo,sicurezza,obiettivi,comunicazioni,benvenuti,turni,menu',
'scarto_target' => '3',
'last_incident' => '',
'record_days' => '',
@@ -91,6 +93,16 @@ class Kiosk
return $t;
}
/** Secondi per tipo di slide (vuoto = durata predefinita). */
public static function durations(array $s)
{
$out = [];
foreach ((array)json_decode((string)$s['slide_durations'], true) as $k => $v) {
if (isset(self::SLIDES[$k]) && (int)$v > 0) $out[$k] = max(4, min(300, (int)$v));
}
return $out;
}
/* ===================== DATE ===================== */
private static function tz()
@@ -366,6 +378,7 @@ class Kiosk
'settings' => [
'slide_seconds' => max(6, min(120, (int)$s['slide_seconds'] ?: 15)),
'slides' => array_values(array_filter(explode(',', $s['slides']))),
'durations' => (object)self::durations($s),
'scarto_target' => (float)str_replace(',', '.', $s['scarto_target']),
'city' => $s['city'],
'lat' => $s['lat'],