Zur Aufbereitung von wichtigen Daten auf einem LCD kann man wunderbar Drupal benutzen. Hat man genügen Fläche zur Verfügung, kann man einige Zusatzinformationen / Elemente plazieren. So ist es ohne weiteres möglich Videos, Bilder anzubinden oder auch News zu präsentieren. Dank diverser Webtechniken und diversen Drupal Modulen, kann der Inhalt dann auch ohne jegliche HTML / PHP Kenntnisse über den Browser angelegt und verwaltet werden.
Layout
Normalerweise besteht eine einfache Seiten nur aus einem einzelnem Content. Zur Positionierung von beliegen anderen Elemente sollte man das Module Panel nutzen. Nach Auswahl eines Layouts (z.B. 3 Spalten) kann man die gewünschten Inhalte auf einer Seiten dynamsich positionieren.
Seitennavigationen auslesen
Auf einer Seiten, die für reine Infozwecke bereitgestellt wird, kann man getrost auf die Seitennavigationen / Sidebars verzichten, hier reicht uns der reine Seiteninhalt. Zum Ausblenden von Regionen / Sidebars auf bestimmte Seiten kann man das Module Context nutzen. Per einfacher URL Regeln definieren wir, dass wenn eine URL auf /infotafel endet, sidebarleft, sidebarright und co. ausgeblendet werden.
Das Anhängen /infotafel von ist in den meisten Fällen ohne weiteres möglich auch in Verbindung mit Panels. Die Adresse im Browser für einen Node nur mit dem Content würde dann so aussehen http://localhost/node/159/infotafel.
Kopfbereich ausblenden
Im Drupal Standard Theme Garland ist es nicht so einfach den gesamten Headerbereich auszublenden ohne das Layout komplett zu "zerstören". Viel einfacher geht das, in dem wir einfach mittels jQuery an den Anfang des Seiteninhaltes (Seitentitels) bzw. einer Tabelle scrollen. Vom Scrollvorgang sieht man übrigens nichts. Zum Einbinden müssen wir ein jQuery Plugin (jquery.scrollTo) einfügen und global bzw. für eine einzelne Seite einbinden. Dazu per PHP-Code z.B. über PHP-Filter im Node den folgenden Code einbinden, die jquery.scrollTo-min.js muss natürlich runtergeladen und abgelegt werden.
if (strpos($_SERVER['REQUEST_URI'],'infotafel')>0) { #page reload drupal_set_html_head('<meta http-equiv="refresh" content="1000">'); #scroll to node title (disable header workaround) drupal_add_js('sites/all/libraries/jquery/plugins/jquery.scrollTo-min.js'); drupal_add_js(" $(document).ready(function(){ //scroll to table, so headers are not visibly $.scrollTo('#node-224 .tableHeader-processed'); }); ",'inline'); #disable sticky headers http://drupal.org/node/378156 drupal_add_js('$("table.no-sticky thead").addClass("tableHeader-processed");', 'inline', 'footer'); } echo theme('table', array_keys(current($t)), $t, array('class' => 'no-sticky'));
Hier deaktiviere hier zusätzliche noch, dass Tabellenüberschriften von theme_table() gepinnt werden und ein Neuladen der Seite alle x Sekunden mittles drupal_set_html_head()
Videoplaylist
Zur Wiedergabe von Videos lässt sich ein Flashplayer wie z.B. Flowplayer mit der Playlist Funktion einbinden. Die Videos müssen hierzu in h264 (Videos in H.264 umwandeln für Webwiedergabe im Flashplayer) oder flv konvertiert werden. Diese werden dann an einen Node angehangen und in einer Endlossschleife abgespielt (z.B. mittels CCK Feld). Wie man einen Flashplayer zur Videowiedergabe in Drupal einbindet gibts hier: Videos in Drupal einbinden und wiedergeben.
Das schöne am Flowplayer ist, dass man ihn mit jQuery konfigurieren und auf Events reagieren kann. So lassen sich alle Controls ausblenden und eine Endlosschleife konfigurieren:
//Loop playlist items
$f("player").playlist("div.clips:first", {loop:true});Bildergallery
Eine Bildergallery kann man am einfachsten mit jQuery realisieren, hiermit wird in einem bestimmten Zeitraum eine Bildwechsel durchgeführt. In Drupal gibt es ein wunderschönes und einfaches Plugin mit dem Namen:views_slideshow. Da man eine Bilderplayliste zur Wiedergabe per View zusammenstellen kann, spielt es fast keine Rolle woher die Bilder herkommen. Auch die Größe der Bilder kann mittels ImageCache Present (für gleiche Größe) angepasst werden. Zur Filterung der Bilder erstellt man einfach einen neuen Node, hängt die Bilder per FileField an und filtert sie dann mittels Nodeid innerhalb unseren View raus. Es gibt noch genug andere Möglichkeiten.
Plasma TV, Nein danke
Dummerweise kriegt man irgendwelche Hardware gestellt, die nicht geeignet ist um Standbilder bzw. kaum veränderten Inhalt darzustellen. So wird die Seite auf einem Plasma TV ausgegeben, natürlich brennt das Bild dort ein und der Fernseher schaltet sich auch ab. Was sich logischerweise nicht ausstellen lässt, so nutzen wir einfach ein vbs Skript welches alle paar Minuten die Seiten nach oben und unten Scrollt. Das Skript per Autostart starten lassen, es läuft in einer Endlosschleife durch...
WScript.Sleep(300000)
Do While true = true
Set ws = Wscript.CreateObject("Wscript.Shell")
ws.SendKeys "{UP}", true
WScript.Sleep(1000)
ws.SendKeys "{DOWN}", true
WScript.Sleep(900000)
LoopBrowser und Betriebssystem
Um den Firefox bzw den Browser ohne jegliche Menü zu starten AutoHide Plugin für Firefox installieren und die Firefox Verknüpfung mit dem Paramter fullscreen erweitern.
"C\Programme\Mozilla Firefox\firefox.exe" -fullscreen
Mauszeiger verstecken mittels nomousy
C:\Programme\Nomousy\nomousy.exe -hide
Die Scrollleiste vom Browser am rechten Rand lässt sich mit CSS ausblenden. Das funktioniert allerdings nicht mit dem IE 6/7. Mit Firefox und co sollte das aber gehen :)
in css:
body { overflow: hidden; }
mittels jquery:
$('body').css('overflow', 'hidden');


