Mehrere lokal gespeicherte htm-Dateien zyklisch und dauerhaft nacheinander in Browser anzeigen

Theo Rehtisch

Lieutenant
Registriert
Sep. 2010
Beiträge
795
Folgendes Szenario, bei dem ich auf eure Hilfe hoffe:

Mehrere Personen nehmen Unterrichts-/Vertretungsplanung in einem speziell dafür vorgesehenen Programm vor. Dieses Programm (Untis) kann den Vertretungsplan als htm-Datei(en) exportieren. Diese Export-Datei(en) sollen auf Bildschirm-Informationssystemen (einfache PCs, wo große Bildschirme angeschlossen sind, Chrome wird darauf im Kiosk-Modus & per Autostart verwendet, Rechner schalten sich zeitgesteuert aus und wieder ein) anzeigen lassen kann.

Export-Dateien heißen immer gleich ("subst_001.htm", "subst_002.htm" usw.). Alle Planer sind angewiesen, die jeweils aktuellste Plan-Datei an immer dem selben Speicherort im lokalen Netz (automatisch verbundenes Share/Netz-Laufwerk) abzulegen, also bei neuer Datei die alte entsprechend zu überschreiben (mit immer gleichem Namen).

Erste Hürde, an der ich als HTML-Noob scheitere: Je nach Umfang des Vertretungsplans kann es sein, daß eben auch mehrere Dateien erstellt werden (subst_001.htm, subst_002.htm, subst_003.htm usw.). Aber immerhin: Mehr als 3 Seiten werden es wohl (hoffentlich) nie werden. Nur als Hintergrund-Info dazu: Untis "erkennt" sozusagen, wenn die Plan-Daten nicht auf eine Seite allein passen & erstellt dem entsprechend mehrere Dateien. Insofern kann ich leider nicht einfach die o.g. "subst_001.htm" nehmen & im Browser anzeigen (das allein bekäme ich problemlos hin) - denn es kann ja sein, daß es auch Seite 2, Seite 3 usw. gibt.

Nächstes Problem: Wenn das mal läuft, wird es auch mal vorkommen, daß an einem beliebigen Tag X auf einmal weniger htm-Dateien vorhanden sind, als am Tag X-1. Sprich: Evtl. gab es gestern 2 Dateien, heute ist der Plan aber weniger umfangreich, demnach existiert am Ende auf dem Share die aktualisierte Datei von heute "subst_001.htm", sowie eben die alte "subst_002.htm" von gestern. Ideal wäre es hier natürlich, wenn sich ein Datums-Abgleich der Dateien einbauen ließe, so nach dem Motto "wenn subst_002.htm mehr als 2 Stunden älter als subst_001.htm, dann nur subst_001.htm anzeigen". Auch hier als Hintergrund: Ich werde die Kollegen nie im Leben dazu animiert bekommen, unnötige/veraltete htm-Dateien zu löschen, ich kann schon froh sein, wenn sie beim Export das korrekte Share "treffen" & sich dort auch daran halten, bei Aktualisierungen wenigstens die alten Dateien zu überschreiben... Lehrer halt ;-)

Meine rudimentären HTML-Kenntnisse reichen dafür bei weitem nicht aus, und auch eine Netz-Recherche half mir da überhaupt nicht.

Kann mir hier einer evtl. den Script-Code zaubern, ausgehend von folgenden Gegebenheiten:

-Dateien liegen immer unter Z:\Vertretung
-Dateien heißen wie gesagt immer subst_001.htm, subst_002.htm, subst_003.htm usw. (wir können gern bei 3 als maximalem Index bleiben), sprich der exakte Pfad der 3 Dateien ist immer "Z:\Vertretung\subst_001.htm" "Z:\Vertretung\subst_002.htm" und "Z:\Vertretung\subst_003.htm"
-schön wäre wie gesagt ein zyklischer Seiten-Wechsel von 1 auf 2 auf 3 und wieder auf 1 auf 2 usw., je Seite eine Anzeige-Dauer von 30 Sekunden

Ich bedanke mich ganz herzlich im Voraus für jeden Hilfe-Versuch!
 
Das könntest du mit PHP machen. Also quasi eine index.php und im Code liest du dann Tag für Tag alle .htm Dateien aus dem entsprechenden Vertretungsverzeichnis. Und dann kannst du mit nem bestimmten Zeitintervall über diese drei Dateien drüber loopen und jeweils die richtige anzeigen :)
 
Toms schrieb:
Das könntest du mit PHP machen. Also quasi eine index.php und im Code liest du dann Tag für Tag alle .htm Dateien aus dem entsprechenden Vertretungsverzeichnis. Und dann kannst du mit nem bestimmten Zeitintervall über diese drei Dateien drüber loopen und jeweils die richtige anzeigen :)
Hm, dazu müsste ich aber PHP erst mal auf den Büchsen installieren, oder?
 
Ein Lösungsansatz könnte sein, in den Dateien im <HEAD>-Bereich folgendes einzufügen:
<meta http-equiv="refresh" content="30; URL=subst_002.htm">
30 steht für deine 30 Sekunden. Und bei URL müsste dann statt subst_002.htm natürlich immer die jeweils nächste Datei stehen die angezeigt wird.

Das kann man auch automatisiert machen. Sprich ein Skript basteln, welches nachguckt wie viele subst_*.htm Dateien da drin sitzt und in alle dann automatisch die passende "Refresh-Zeile" einträgt.
 
  • Gefällt mir
Reaktionen: areiland und Toms
Das kann nicht gut funktionieren denn wenn sich die Anzahl der HTML Seiten ändert hast du eventuell eine alte html3 und 2 aktuelle.
Am beste wäre wenn deine Software alles in nur 1 Datei schreibt.
Diese kopierst du dann irgendwo hin und lässt sie anzeigen.
 
Das ist mir klar - und das ist ja eben auch das Problem, welches sich leider unumgänglich so darstellt und für welches ich eine Lösung suche...
 
Am besten installierst du einen ganz einfachen lokalen Webserver.
Über AJAX kannst du dann Datei-1 anfragen und anzeigen, dann prüfen ob es eine Datei-2 gibt und diese anzeigen usw.
Wenn es keine Datei-3 und Datei-4 gibt, wird nur zwischen 1 und 2 gewechselt.
Wenn der Webserver auf deine Anfrage antwortet ist im Header auch ein Last-Modified Feld. Damit kannst du dann prüfen ob z.B. Datei-3 älter als 1 und 2 ist und dann nicht anzeigen.

z.B. Caddy ist sehr simple, gibt aber noch etliche andere Alternativen
https://caddyserver.com/features
 
Zuletzt bearbeitet:
Handelt es sich um Untis.at? Im online manual findet man etwas ueber "Monitor HTML output".

online manual > Modules > Info-Timetable > HTML-based output options > Monitor HTML output > Refresh times

Auto export waere dann auch moeglich. Dann muss das keiner per Hand machen. :D
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Theo Rehtisch
Sparta8 schrieb:
Am besten installierst du einen ganz einfachen lokalen Webserver.
Über AJAX kannst du dann Datei-1 anfragen und anzeigen, dann prüfen ob es eine Datei-2 gibt und diese anzeigen usw.
Wenn es keine Datei-3 und Datei-4 gibt, wird nur zwischen 1 und 2 gewechselt.
Wenn der Webserver auf deine Anfrage antwortet ist im Header auch ein Last-Modified Feld. Damit kannst du dann prüfen ob z.B. Datei-3 älter als 1 und 2 ist und dann nicht anzeigen.

z.B. Caddy ist sehr simple, gibt aber noch etliche andere Alternativen
https://caddyserver.com/features
Leider nicht praktikabel.

r15ch13 schrieb:
Handelt es sich um Untis.at? Im online manual findet man etwas ueber "Monitor HTML output".

online manual > Modules > Info-Timetable > HTML-based output options > Monitor HTML output > Refresh times

Auto export waere dann auch moeglich. Dann muss das keiner per Hand machen. :D
Ja, darum geht es, dort ist der Export beschrieben - der aber in den beschriebenen Problemen resultiert (mal eine, mal zwei, mal drei Dateien).
 
Dann ist der Auto-refresh Teil doch schon mit exportiert (wahrscheinlich als meta-tag wie andy_m4 vorschlug). Sonst waere das ja nicht automatisch exportierbar ohne dass jedesmal jemand eine Datei entfernen muesste.
Vielleicht koenntest du den Inhalt mal posten (ohne missionskritsche Details natuerlich).
 
Klar, der Export ist immer schon gegeben. Aber nicht automatisch und ohne, daß jemand was bewusst entfernt hätte. Die Stundenplaner exportieren (derzeit noch) manuell/händisch.

Aber ich hab mir mal die Hilfe dort noch mal genauer angesehen. Es steht zwar nix davon dort, daß beim automatischen Export (welchen ich den Planern noch "beibringen" müsste, daher das obige "dezeit noch") evtl. automatisch die alten/vorherigen Pläne gelöscht werden, aber zumindest den Versuch wäre es wert. Zumal ich in der Hilfe folgendes gelesen hab:

"The export directory that you specified now contains both the complete HTML pages required for display as well as the default.htm file. "

Scheint also so, als würde man auch so exportieren können, daß man am Ende nur die default.htm per Autostart/Kiosk-Mode aufrufen müsste & der Rest dann allein läuft... ich ging mir das mal an. Danke auf jeden Fall für den Link zur Hilfe!
 
Zurück
Oben