spacer
That's me, folks

Partnerprogramme


FindFox

spacer spacer

23 November
2004

[Einen für die Nacht]  Johnny Cash & June Carter: Help Me Make It Through The Night (MP3, 2:58 min., 2,7 MB).

Posted by kantel at 19:39 | Comments (4) | Trackbacks (0) | [Musik]
[Tutorial: Websites bauen mit Frontier, Teil 1]  Frontier ist ein mächtiges Werkzeug, das gerade auf dem Mac als eine Art eierlegende Wollmilchsau fungieren kann. Es ist ein Outliner, eine Textverarbeitung, eine Scriptumgebung, ein Web-Application-Server und vieles mehr. Eines der in meinen Augen interessantesten Teile von Frontier ist aber, daß es auch eine Art Content-Management-System (CMS) on the Desktop sein kann, d.h. es ist ein persönliches CMS, das sich auch leicht zu einem persönlichen Informations-Management (PIM) Werkzeug erweitern läßt.

So eingesetzt, produziert Frontier statische Seiten, die es per FTP auf jeden beliebigen Webserver herunterladen kann. Damit ist Frontier vor allem für diejenigen interessant, die nur über einen einfachen Hosting-Vertrag verfügen. Mehr als einen FTP-Zugang zu einem Webserver benötigt man nicht und kann trotzdem ziemlich komplexe Webseiten mit Frontier erstellen und verwalten.

Im Laufe dieses Tutorials möchte ich schrittweise in die Möglichkeiten von Frontier einführen. Ich habe ein Beispiel aus dem wirklichen Leben gewählt: Die Seiten meines Hundevereins bedürfen dringend eines Relaunches. Ich werde also im Laufe dieser Einführung zeigen, wie man solch ein Projekt mit Frontier durchzieht.

Wo fange ich eigentlich an?

Wenn man Frontier zum ersten Mal startet, ist der Neuling in der Regel verwirrt. Die Benutzeroberfläche ist völlig ungewohnt und man weiß erst einmal gar nicht, wo man anfangen soll. In der Regel sieht man nach dem Start zwei Fenster,

frontierdesktop picture

ein Status-Fenster (About Frontier) und das Fenster »Frontier.root« (falls dies nicht offen sein sollte, einfach im Menü »Windows« den entsprechenden Punkt anklicken). Das zweite Fenster zeigt eine Datenbank und zwar die »Frontier.root«, die wichtigste Datenbank in Frontier überhaupt. Hier ist alles gespeichert, was Frontier ausmacht.

In früheren Versionen von Frontier trug der Benutzer seine Daten ebenfalls in die »Frontier.root« ein. Dies konnte aber zu Problemen bei einem Update führen oder der Benutzer konnte die Root so zerschießen, daß sich Frontier nicht mehr starten ließ und er sich eine »frische« Root bei UserLand runterladen mußte. Damit waren seine eigenen Einträge aber weg.

Daher hat man bei Frontier das Prinzip der Gast-Datenbanken (guest databases) eingeführt. Dies sind Datenbanken, die dem Benutzer »gehören« und in die er seine Daten einträgt. Auch sie enden auf ».root«, aber die eigentliche »Frontier.root« bleibt so weitestgehend unangetastet und bei einem Update lädt man sich einfach die aktualisierte Root herunter und ersetzt sie durch die alte.

Daher werden wir erst einmal für unsere Website eine eigene Root anlegen. Wir wählen im Menü »File« das Untermenü »New Database« aus und legen eine Datenbank an, die wir »mywebsites.root« nennen. Diese speichern wir innerhalb des Frontier-Ordners im Unterorder »Guest Databases« in einerm weiteren Unterordner »www« ab. (Falls dieser Unterordner nicht existiert, legen wir ihn an.) Dieser Ablageort für Guest Databases ist Konvention und nicht unbedingt nötig. Ich bin auch nicht sehr glücklich darüber, da unter Mac OS X in den Ordner »Programme« eigentlich keine »Bewegungsdaten« gehören. Ich persönlich habe mir im Ordner »Dokumente« einen entsprechenden »Website«-Folder angelegt, der meine Guest Database enthält. Wie dem auch sei, egal wo wir diese Datenbank anglegt haben: Es erscheint nun ein Fenster mit nur einem Eintrag (»item #1«).

Unsere erste Website

Jetzt sind wir in der Lage, unsere erste Website zu erstellen. Wir achten darauf, daß unser neues Fenster zuoberst liegt (den »Focus« hat) und wählen dann im Menü »Web« den Unterpunkt »New Website...« aus. Diese Website nennen wir »tutorial«. Es erscheint ein drittes Fenster. Unsere Fenster sehen nun so aus:

tutorialwindow picture

Den Eintrag »item #1« benötigen wir nicht mehr, wir können ihn einfach löschen.

Was ist geschehen?

Frontier hat in unserer Datenbank eine neue Tabelle und in dieser Tabelle einige Untertabellen und andere Einträge angelegt. Der Name, der uns sicher bekannt vorkommt, ist »index«. Durch einen Doppelklick können wir diesen Eintrag öffnen und erhalten nun folgendes Fenster:

tutorialindex picture

Das ist ein Editorfenster. Hier können innerhalb von Frontiers Objektdatenbank beliebige Texte gespeichert werden. Für den Anfang reicht es, uns diese Objekte (WP-Text) als einfache Texte vorzustellen, wie sie jeder andere Texteditor auch erzeugen kann. Also tippen wir in dieses Fenster doch einfach einmal folgendes ein:

myfirstwebsite1 picture

Wenn wir jetzt im Menü »Web« auf »Preview Page« klicken, erhalten wir folgendes Browserfenster:

myfirstwebsite2 picture

Die erste Zeile mit dem Gartenzaun (#) ist eine sogenannte Direktive. Sie weist Frontier an, sich zu merken, daß unter dem Namen title der Wert Startseite abgespeichert ist.

In der zweiten Zeile definieren wir eine Überschrift. Hier weisen wir in den geschweiften Klammern {} Frontier an, statt des Namens title den Wert von title — namlich: Startseite — einzusetzen.

Der Rest ist simples HTML. Hier fällt nur auf, daß wir für die Umlaute keine Entity-Codierung (z.B. ü für ü) einsetzen müssen. Das erledigt Frontier automatisch für uns. Allein dieser Umstand könnte viele von der Nützlichkeit von Frontier überzeugen.

Jetzt wieder die Frage: Was ist geschehen?

Der Befehl »Preview Page« hat Frontier angewiesen, den von Euch eingegebenen Text zu »rendern«, das heißt, aus diesem Text eine HTML-Seite für das Web zu erstellen. (Zwar noch kein valides HTML, doch das bekommen wir später. ) Diese Seite liegt — falls Ihr Frontier nicht etwas anderes erzählt habt — im Frontier-Ordner unter Websites im Ordner tutorial unter dem Namen index.html. Es ist eine stinknormale HTML-Seite, ihr könnt sie mit dem Editor Eurer Wahl öffnen, aber auch per FTP auf Euren Server stellen. (Frontier kann auch das automatisch, doch auch dieses bekommen wir später.)

Templates

Doch wo kommt eigentlich der Rest des HTML, das Frontier um unsere Website gebastelt hat, her? Um das herauszubekommen, doppelklicken wir in unserer Tutorial-Datenbank einmal auf den Eintrag #template und erhalten folgendes Fenster:

template1 picture

Die erste Zeile sorgt dafür, daß das HTML vor unserem Text erzeugt wird, die letzte Zeile bringt das HTML nach unserem Text. Und der Eintrag {bodytext} zwischen diesen beiden Zeilen sorgt dafür, daß unser Text erscheint. Das heißt: Jedesmal, wenn wir eine Seite rendern, sucht sich Frontier das zuständige Template und bringt dieses mit unserem zu rendernden Text zusammen.

Natürlich können wir auch Templates ändern. Schreiben wir also in unser Template folgendes herein:

template2 picture

Dann sieht unsere index.html nach einem erneuten Rendern so aus:

myfirstwebsite3 picture

Der Befehl {clock.now()} ist ein Makro, also ein Befehl in der Frontier-eigenen Programmiersprache UserTalk, der Frontier anweist, das aktuelle Datum und die aktuelle Uhrzeit zum Zeitpunkt des Renderns herauszugeben. Makros unterscheiden sich von Direktiven eigentlich nur durch die beiden Klammern, beides sind UserTalk-Ausdrücke, die Frontier während des Renderns auswertet. Während jedoch Direktiven nur einfache Werte enthalten können, können Makros Berechnungen durchführen und auch mit Parametern gefüttert werden. Daher wissen wir jetzt, das auch die erste Zeile unseres Templates ein Makro ist, dem der Parameter (der Wert) der Direktive title übergeben wurde. Doch dazu in einer späteren Folge mehr.

Posted by kantel at 18:14 | Comments (8) | Trackbacks (3) | [Frontier]
[The Boy is Back in Town]  Hier noch einmal eine Erinnerung an das gestrige Bloggertreffen in Köln:

Lei Lei, Li Li und ich

Das Photo hat Heiko Hebig geschossen (und damit dokumentiere ich, daß auch er dabei war — ich hatte ihn bei meinem gestrigen Eintrag in der Hektik vergessen zu erwähnen).

Posted by kantel at 18:03 | Comments (3) | Trackbacks (0) | [Metablogging]

spacer spacer spacer spacer