Suche:
Virthos-Onlinedokumentation > >   

Nicht-HTML-Dokumente erzeugen

Grundsätzlich ist Virthos dafür gedacht, dynamische Webseiten zu erzeugen, die durch HTML-Templates definiert werden. Virthos Master geht in diesem Punkt noch einen Schritt weiter und erlaubt es, Templates in anderen Formaten bereitzustellen, um damit beispielsweise dynamische Word- oder Excel-Dokumente zu erzeugen. Grundsätzlich sind alle Dateiformate möglich, die auf reinem Text basieren und keine Binärdaten enthalten, sprich: die sich mit einem einfachen Texteditor öffnen lassen (auch wenn der Inhalt einem menschlichen Leser vielleicht nicht unbedingt viel sagt).

Nehmen wir an, Sie möchten eine Excel-Tabelle mit einer Liste aller Seiten erzeugen, die sich innerhalb des Startseitenzweiges befinden. Erstellen Sie dazu in einem Texteditor eine Datei mit folgendem Inhalt:

Nummer|erstellt am|Name {{vtSelect: -origin="/"}}{{vtLoop}}
{{vtID}}|{{vtCreationDate}}|{{vtName:raw}}{{vtEndLoop}}{{vtEndSelect}}

Ersetzen Sie dabei senkrechten Striche (|) durch Tabulatorzeichen.

Speichern Sie die Datei unter dem Namen seitenliste.xls in dem Verzeichnis, in dem sich auch die übrigen Templates des Webauftritts befinden. Rufen Sie anschließend die folgende URL in Ihrem Webbrowser auf:

http://.../virthos.php?-met=seitenliste.xls

Nach einer mehr oder weniger langen Wartezeit (je nach Größe des Webauftritts) beginnt der Webbrowser mit dem Herunterladen der Excel-Datei. Wenn Sie den Internet Explorer verwenden, stellt dieser den Inhalt der Datei möglicherweise sofort dar. Ansonsten können Sie die Datei mit einem Doppelklick in Excel öffnen, um sich die Seitenliste anzuschauen.

Damit der Webbrowser weiß, wie er mit einer Nicht-HTML-Datei, die Sie bereitstellen, umgehen soll, müssen Sie beim Benennen dieser Datei auf die richtige Namensendung achten. Virthos kann viele Endungen automatisch in den richtigen MIME-Typ umsetzen. Die folgende Tabelle zeigt, welche dies sind:

Endung MIME-Typ
css text/css
csv text/comma-separated-values
doc application/msword
htm, html text/html
js text/javascript
pdf application/pdf
rtf application/rtf
sgm, sgml text/x-sgml
txt text/plain
xfdf application/vnd.adobe.xfdf
xls application/msexcel
xml text/xml

Wichtig: Wenn Sie einen freien Platzhalter in einem Nicht-HTML-Template verwenden, sollten Sie diesen in der Regel mit dem Zusatz "raw" versehen, wie im obigen Beispiel beim vtName-Platzhalter geschehen. Andernfalls würden Umlaute und Sonderzeichen in HTML-Entitäten (z. B. ä) umgesetzt, die meistens nicht erwünscht sind. Wenn Sie sicher sind, dass ein Platzhalter keine solche Zeichen enthält (wie im obigen Beispiel bei der Seitennummer oder dem Erstellungsdatum der Fall) können Sie diesen Zusatz auch weglassen.

Hinweise zum Erzeugen von Excel-Tabellen

Das Excel-Dateiformat ist eigentlich ein binäres Format und somit für die Verarbeitung durch Virthos nicht geeignet. Das obige Beispiel zeigt aber, dass man sich behelfen kann. Excel interpretiert nämlich auch reine Textdateien, die mit der Endung .xls versehen sind, korrekt. Umlaute und Sonderzeichen werden in diesem Fall jedoch nur unter Windows korrekt dargestellt, weil Virthos diese Zeichen im ISO-Latin1-Zeichensatz codiert, der weitenteils identisch ist mit dem Windows-Zeichensatz. Die Mac-Version von Excel nimmt dagegen an, dass eine reine Textdatei im Mac-Zeichensatz vorliegt, und stellt die Zeichen somit falsch dar.

Eine Excel-Tabelle als reine Textdatei bereitzustellen, hat noch einen anderen Nachteil: Man kann keine unterschiedlichen Schriftgrößen, -farben und -formatierungen (fett, kursiv etc.) verwenden. Um diesen Nachteil zu umgehen, kann man eine Excel-Tabelle auch im HTML-Format bereitstellen, wiederum mit der Endung .xls. Um herauszufinden, wie eine solche HTML-Datei aufgebaut sein muss, speichern Sie am besten eine bestehende Excel-Datei im HTML-Format ab und analysieren den Quellcode, der dabei entsteht. Wichtig ist, dass Sie bei freien Platzhaltern den "raw"-Zusatz weglassen, denn in diesem Fall ist die Umwandlung von Sonderzeichen in Entitäten ja erwünscht.

Schließlich sei auch noch auf die Möglichkeit hingewiesen, Excel-Tabellen als XML-Dateien bereitzustellen. Die neueren Excel-Versionen können Tabellen im XML-Format lesen und speichern, und im Unterschied zu HTML bleiben dabei alle Aspekte der Tabellen erhalten, beispielsweise auch mehrere Arbeitsblätter. Allerdings ist das von Excel verwendete XML-Format sehr komplex, und das Erstellen eines Templates somit aufwendig.

Hinweise zum Erzeugen von Word-Dokumenten

Auch das Word-Dateiformat ist ein binäres Format und somit für die Verarbeitung als Virthos-Template nicht geeignet. Aber auch hier kann man sich behelfen, denn Word unterstützt – wie viele andere Schreibprogramme auch – das Rich-Text-Format (RTF), das auf reinem ASCII-Text basiert. Selbst Bilder werden durch Textzeichen codiert, was zwar die Dateigröße anwachsen lässt, aber die Verwendung für Virthos-Templates einfach macht.

Im Quellcode ist eine RTF-Datei nicht sehr gut les- und bearbeitbar, denn dieses Dateiformat ist für die maschinelle Verarbeitung gedacht, nicht für die Programmierung von Hand. Aus diesem Grund verfügt Virthos Master über einen speziellen RTF-Modus, der es möglich macht, dass man Word selbst als Template-Editor verwendet: Nehmen Sie ein beliebiges Word-Dokument, fügen Sie ein paar Virthos-Platzhalter (wie üblich in doppelten geschweiften Klammern) ein, und speichern Sie es als RTF-Datei – fertig ist das RTF-Template. Die geschweiften Klammern werden zwar im RTF-Quellcode anders codiert als üblich, aber wenn ein Template mit der Endung .rtf abgespeichert ist, berücksichtigt Virthos dies automatisch.

Leider funktioniert die Sache aber nicht immer so problemlos, denn manchmal fügt Word mitten in einem Virthos-Platzhalter einen Zeilenumbruch oder irgendwelche Formatierungszeichen ein. In Word selbst sieht man nichts davon, aber im RTF-Quellcode – und nur dieser ist für Virthos sichtbar – stimmt die Syntax nicht mehr. Die Folge ist, dass man nach der Verarbeitung in Virthos nicht das gewünschte Ergebnis sieht und die erzeugte RTF-Datei möglicherweise überhaupt nicht mehr geöffnet werden kann.

In einem solchen Fall muss man sich dann doch mit dem RTF-Quellcode beschäftigen und versuchen, die zerstörten Platzhalter zu finden und wiederherzustellen. Zeilenumbrüche innerhalb eines Platzhalters kann man einfach löschen, da sie nur aus historischen Gründen (weil ältere Computersysteme keine überlangen Zeilen verarbeiten konnten) vorhanden sind. Die echten Zeilenumbrüche, die im Dokument vorkommen, werden ohnehin durch spezielle Befehlszeichen oder -wörter dargestellt. Wenn man mitten in einem Platzhalter kryptische RTF-Codes findet, darf man diese nicht einfach löschen, weil die RTF-Datei sonst in der Regel unbrauchbar wird. Stattdessen sollte man sie vor oder hinter den Platzhalter verschieben.

Beachten Sie, dass geschweifte Klammern in der RTF-Syntax eine besondere Bedeutung haben. Sie dienen dazu, Codeblöcke voneinander abzugrenzen. Damit die geschweiften Klammern, die man in Word eingibt, den RTF-Code nicht durcheinanderbringen, wird diesen im Quellcode automatisch ein umgekehrter Schrägstrich ("Backslash") vorangestellt. Ein typischer Virthos-Platzhalter sieht dann so aus:

\{\{Headline\}\}

Bei RTF-Templates, und nur bei diesen, akzeptiert Virthos diese Platzhalter-Schreibweise. Die herkömmliche Schreibweise ohne Schrägstriche würde dagegen nicht nur Word durcheinanderbringen, sondern auch in Virthos nicht funktionieren.

Schließlich noch ein Hinweis zum Umgang mit Sonderzeichen: Der RTF-Standard unterstützt verschiedene Arten der Zeichencodierung, aber leider hat man als Anwender in den seltensten Fällen Einfluss darauf. Wenn Sie mit Word ein RTF-Template erstellen, wird dieses unter Windows in einer anderen Codierung gespeichert als unter Mac OS X. Virthos unterstützt zur Zeit nur die Windows-Codierung, deshalb lässt sich die Mac-Version von Word nicht als Template-Editor verwenden. Gleiches gilt für die meisten anderen Schreibprogramme auf dem Mac. Allerdings werden die unter Windows erzeugten Templates auch auf dem Mac korrekt dargestellt.

< Seiteninhalte zwischenspeichern 11.09.2008, 08:17 Uhr Cookies setzen und auslesen >