Zope - ein einfaches Content Management System

Brano Ivakovic

... [ Seminar "Java und Werkzeuge für das Web" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ...

Übersicht: Bedienung und Grundlagen



Erste Schritte

Installation, Start und Anmeldung

Windows: Zope für Windows kommt als selbstinstallierende .exe-Datei. Der Installationsprozess erstellt einen Namen für die Zope-Installation sowie ein Zielverzeichnis. Anschließend muss ein neues 'Initial User' (Anfangsbenutzer) Zope-Benutzerkonto zur ersten Anmeldung eingerichtet werden. Unter Windows NT oder Windows 2000 kann Zope als Dienst ausgeführt werden, was sich für einen öffentlichen Server empfiehlt. Unter Windows 95, 98 oder ME funktioniert dies nicht.
Unix / Linux: Nach dem Herunterladen der Binärdaten für die Zielplattform (Die aktuellste stabile Version (Februar 2003) ist die Version 2.6.1) ist das tarball-Archiv zu entpacken:
$ tar xvfz Zope-2.6.1-linux2-x86.tgz
. Dies entpackt Zope in ein neues Verzeichnis. Nun ist das Zope-Verzeichnis einzugeben und das Zope-Installationsskript auszuführen:

    $ cd Zope-2.6.1-linux2-x86
    $ ./install


Das Installationsprogramm erstellt u.a. ein initiales Benutzerkonto, dessen Name und Kennwort später mit dem zpasswd.py-Skript geändert werden kann und konfiguriert Zope so, dass es unter einer UNIX-Benutzer-ID läuft. Für die Ausführung unter einer anderen Benutzer-ID ist die Befehlszeilenoption -u anzuwenden. Weitere Informationen zur Installation finden sich unter  doc/INSTALL.txt. Details zum Installationsprogramm liefert die Hilfsoption -h: $ ./install -h.
Kompilieren von Zope aus dem Quelltext: Wenn keine Binärdateien für eine Zielplattform verfügbar sind, kann Zope aus dem Quelltext kompiliert werden. Dazu ist es erforderlich, Python aus dem Quellcode für die jeweilige Plattform zu installieren (Python kann von der Python.org-Web-Site bezogen werden), daneben muss ein C-Compiler vorhanden sein. Die aktuellste Python-Version ist oft neuer als die offiziell in Zope unterstützte. Informationen zur benötigen Python-Version, um Zope zu kompilieren, finden sich in den Release Notes auf der Web-Site. Die heruntergeladene Zope-Quelltext-Version ist ebenfalls ein tarball-Archiv (Extraktion: s. oben). Im entstandenen Zope-Verzeichnis ist das Zope-Installationsskript auszuführen:

    $ cd Zope-2.6.1-src
    $ python wo_pcgi.py


Das Installationsprogramm kompiliert Zope und erstellt eine Installation, wobei auch hier Informationen ausgegeben werden u.a. Name und Kennwort des Anfangsbenutzers. Es ist wichtig, diese Informationen zu vermerken, um sich in Zope anzumelden.


Start:
Nach erfolgter Installation und Aufruf der Stapeldatei 'start.bat' (unter Unix $ ./start &) werden Protokollinformationen ausgegeben, u.a. der Port, auf dem Zope läuft. Über den Systemsteuerungspunkt "Dienste" kann Zope auch als Dienst gestartet und beendet werden, was über das Ereignisprotokoll nachvollzogen werden kann. Mit dem Start wird auch der Zope-eigene Webserver hochgefahren, oder es kann eine Anbindung an einen evtl. bereits vorhandenen Web-Server erfolgen.

Anmeldung:
Die Anmeldung erfolgt über einen Web-Browser. Zopes Benutzerschnittstelle basiert auf HTML und kann mit jedem modernen HTML-Browser angesteuert werden (z.B. Mozilla, Microsoft Internet Explorer ab Ver. 3.0, Netscape Navigator). Zur Anmeldung muss die Management-URL von Zope eingegeben werden, das ist Zopes Basis-URL mit angehängtem /manage. Ist Zope auf einem lokalen Rechner installiert, so dass er auf dem Standard-Port 8080 läuft, ist die Management-URL: http://localhost:8080/manage. In der Regel funktioniert diese URL, aber es ist u.U. ein Login auf einer anderen Maschine notwendig, deren URL in der Logging-Information ausgegeben wird:

      ------
      2000-08-07T23:00:53 INFO(0) ZServer Medusa (V1.18) started at Mon Aug  7 16:00:53 2000
              Hostname: himbeere
              Port:8080
      ------
      2000-08-07T23:00:53 INFO(0) ZServer FTP server started at Mon Aug  7 16:00:53 2000
              Authorizer:None
              Hostname: himbeere
              Port: 8021
      ------
      2000-08-07T23:00:53 INFO(0) ZServer Monitor Server (V1.9) started on port 8099

Der erste Protokolleintrag zeigt, dass Zope auf einer Maschine mit dem Namen 'himbeere' und der Web-Server auf Port 8080 läuft, mit der Management-URL http://himbeere:8080/manage. Nach Eingabe der Zope Management-URL im Browser ist ein Benutzername und Kennwort anzugeben. Hier sollten die Daten des Anfangsbenutzers eingegeben werden, die während der Installation erstellt wurden. Um diese zu ermitteln, muss Zope heruntergefahren, das Kennwort des Anfangsbenutzers mit dem zpasswd.py-Skript geändert und Zope neu gestartet werden. 


Steuerung: Das Management-Interface

Nach erfolgreicher Anmeldung erscheint das Zope Management Interface:

Das Management-Interface  
Abb. 4: Das Zope Management Interface

Im Management-Interface wird die Objekt-Struktur einer Web-Anwendung als Baum-Hierarchie dargestellt. Der Navigationsbereich im linken Rahmen zeigt den Stammordner und seine Unterordner an. In diesem Fall ist der "manager" angemeldet. Bei der Anmeldung ist der Name des Anfangsbenutzerkontos statt "manager" zu sehen. Der Arbeitsbereich im rechten Rahmen zeigt den Inhalt eines Ordners bzw. zu verwaltende Objekte an. Die Reiter öffnen unterschiedliche Ansichten und Verwaltungsfunktionen des aktuellen Objektes, dessen Symbol und URL direkt darunter stehen ("Folder at /" bedeutet: Aktuelles Objekt ist ein Ordner und seine zu Zopes Basis-URL relative Objekt-URL /). Über die URLs kann komfortabel in den Objekten navigiert werden. Beispiel: Bei der Ordnerstruktur /Zoo/Reptilien/Schlangen kann der Ordner unter /Zoo durch Klicken auf das Wort Zoo in der URL des Ordners geöffnet werden.
Der oberste Rahmen enthält folgende Auswahlliste: Preferences: Setzen von Standardvorgaben für eine Zope-Sitzung, Logout: Abmeldung, Quick Start Links: Links zu Dokumentations- und Gemeinde-Ressourcen. Die Abmeldung erfolgt durch Logout im oberen Rahmen und Abbruch der erneuten Anmeldeaufforderung oder über das Beenden des Browsers. 


Das Objektkonzept

Alle Elemente einer Zope-Site sind in Wirklichkeit Objekte, und Zope-Webanwendungen werden prinzipiell vollständig aus Objekten erstellt. Ein Zope-Objekt ist als ein Stück Software oder eine Binärdatei vorstellbar. Zope-Objekte können sein: Dateien, Ordner als Objekt-Container, Dokumente, Datenbankverbindungen, Programmmethoden, Skripte u.a. und alle Objekte werden in der ZODB gehalten, die u.U. eine sehr große Datei im NT- oder UNIX-Dateisystem bildet. Das Besondere an der ZODB ist, dass sie z.B. für einen FTP- oder WebDAV-Client aussieht und sich verhält wie ein Dateisystem. Im Allgemeinen übernehmen Zope-Objekte drei Arten von Aufgabenbereichen: Einige Objekte

Objekte erstellen: Durch "Select type to add..." aus der Produktauswahlliste wird dem aktuellen Ordner ein neues Objekt hinzugefügt. Objekte werden immer auf dieselbe Weise erstellt: Auswahl des Ordners, dem ein neues Objekt hinzugefügt werden soll,  Auswahl der Art des hinzuzufügenden Objektes in der Auswahlliste,  Ausfüllen des Erstellformulars und Bestätigung
=> Zope erstellt ein neues Objekt im aktuellen Ordner.
Jedes Zope-Objekt hat eine Kennung, die bei der Erstellung angegeben werden muss. Die Kennung bestimmt die Benennung der Objekte und ihre URLs. Im nächsten Abschnitt werden die grundlegenden Objekte behandelt.

Objekttypen

 Benutzer
Zope unterstützt folgende Arten von Benutzern: Manager, Andere und Notfallbenutzer (s. ausführlich in der Sektion "Content Management-Aspekte")
Ordner (Folder)
Ordner sind die Bausteine von Zope. Sie dienen der Gruppierung anderer Objekte und können ineinander verschachtelt sein. Der Einsatz von Ordnern verleiht einer Zope-Site Struktur, die sehr wichtig ist, da viele Aspekte (von Sicherheit über Verhalten zu Darstellung) von der Ordnerstruktur der Site beeinflusst werden. Der besondere Ordnertyp "Temporärer Ordner" dient der zeitlich begrenzten Speicherung von Objekten (standardmäßig temp_folder im Stammordner).
(DTML-) Dokumente
DTML-Dokumente werden verwendet, um mehrfach nutzbare Web-Seiten und Dokumentenabschnitte wie Sidebars zu erstellen. Sie können Scripting-Befehle in DTML enthalten. Ein DTML-Dokument kann auch ausschließlich aus HTML-Elementen aufgebaut sein, und es können sogar ganze Zope-Sites mit HTML-Dokumenten und Ordnern erstellt werden. Dynamik entsteht jedoch erst aus der Mischung von HTML und DTML. DTML-Dokumente können auf mehrere verschiedene Arten betrachtet werden: 1. Im Management-Interface über den View-Reiter, 2. Direkter Aufruf über das Web durch Besuch des URL-Standorts. Die URL eines DTML-Dokuments basiert auf seiner ID-Kennung. Befindet sich z.B. ein Ordner Fred im Unterordner der Onkel, dann wäre seine URL: http://localhost:8080/Onkel/Fred 3. Darstellung durch andere DTML-Objekte: Der ausgewertete Inhalt eines Dokuments wird in den Inhalt eines aufrufenden Dokuments eingefügt: Dies ist ein grundlegendes Konzept in Zope
Dateien
Dateien enthalten nicht ausdrücklich unterstützte Rohdaten wie Programme, Audio- oder Videodaten, Flash-Dateien, Applets, Tarball-Archive u.a. Dateien können auch textuellen Inhalt speichern, der kein DTML-Scripting benötigt. Jedes Datei-Objekt hat einen bestimmten Inhaltstyp (Content Type) als Standard-Internet-MIME- Kennzeichnung für einen Dateityp. Abb. 5 zeigt, wie Zope nach dem Hinzufügen einer Datei den Inhaltstyp aufgrund des Dateinamens errät.
Bilder
Zope-Bilder sind spezielle Zope-Objekte, die GIF-, JPEG- und PNG-Grafiken darstellen. Bildobjekte haben dasselbe Management-Interface wie Dateiobjekte und Zusatz- funktionen (u.a. Bildvorschau). Die häufigste Verwendung ist das Einbinden in Web-Seiten. Das gute Vorgehen (im Sinne des Content-Management) ist die Einbindung eines Tags an der Stelle, wo das Bild erscheinen soll: <dtml-var "bilder.bildname">, mit "bildname" als Id des Bildes. Beim Aufruf wird dieses Tag in ein normales Image-Tag mit Höhen- und Breitenangabe umgewandelt. Eine andere mögliche, weniger gute Art ist die Verwendung des klassischen HTML-Tags IMG: <img src="logo">
Soll dieses Logo auf jeder Seite in der linken oberen Ecke erscheinen, muss in der Methode standard_html_header ein Verweis darauf erstellt werden:

     => Im Quelltext: Der var-DTML-Code wird in ein IMG-Tag mit Breiten- und Höhenangabe umgewandelt:        

Zope-Bilder verhalten sich genauso wie auf einem normalen Web-Server gespeicherte Bilder. So kann z.B.mit der absoluten URL "http://imageserver:8080/Vögel/Sittich.jpg" ein Bild in jede Web-Seite auf jedem Web-Server eingebunden werden.
Methoden
Methoden, insbesondere DTML-Methoden, sind für die Modellierung von "Prozessen" zuständig. Sie haben keine Eigenschaften und bekommen ihren Kontext vom aufrufenden Objekt. DTML-Methoden können als "Inhalt-erzeugende Prozesse" und Python- oder Perl-Skripte als "Inhalt-verarbeitende Prozesse" beschrieben werden. Externe Methoden sind Skripte mit unbeschränktem Zugriff auf Sicherheitskritische Bereiche (z.B. Dateisystem).
Seitenvorlagen
Seit Zope 2.5 gibt es einen Objekttyp namens "Page Templates", der über HTML-Vorlagen die Definition dynamischer Darstellungen für eine Web-Site ermöglicht. Über "Page Templates" in der Produktauswahlliste können auch vorhandene HTML-Dateien hochgeladen und in Seitenvorlagen umgewandelt werden. Der HTML-Code der Vorlage wird dadurch dynamisch, dass spezielle XML-Namensraum-Elemente eingefügt werden, die das dynamische Verhalten für die Seite definieren. 

Tab. 3: Objekttypen

Content-type
Abb. 5: Die Eigenschaft "Content Type"

Kann Zope den Dateitypen nicht erkennen, wird der Standardwert, die allgemeine Inhaltsart application/octet-stream verwendet. Der Inhalt einer Datei kann über das Öffnen der Ansicht Upload geändert werden. Textdateien kleiner als 64kB können mit dem Management-Interface bearbeitet werden. Eine Datei kann über den Reiter View oder durch URL-Aufruf betrachtet werden. Intern ist der Reiter View lediglich eine Methode, um vom Zope-Management-Interface aus zur URL einer Datei zu gelangen.

Objekteigenschaften

Eigenschaften (Properties) sind eine Möglichkeit, Informationen mit Objekten in Zope zu verknüpfen, wie z.B. die Inhaltstyp-Eigenschaft namens Content-Type oder Metadaten wie Autor, Titel, Status etc. Eigenschaften können Zeichenfolgen, Nummern, Listen oder andere Datenstrukturen sein und werden über die Ansicht Properties verwaltet: 

Eigenschaften  
Abb. 6: Die Ansicht zum Verwalten von Eigenschaften


Eine Eigenschaft besteht aus einem Namen, einem Wert und einem Typ. Neben Standard-Eigenschaftstypen wie string, int, long, float unterstützt Zope auch lines (Folge von Zeichenfolgen), tokens (Folge von Wörtern), text (eine string-Eigenschaft mit Anpassung der Zeilenumbruch-Zeichen), selection (zur Erstellung von Auswahllisten) und multiple selection (Mehrfachauswahllisten).


... [ Seminar "Java und Werkzeuge für das Web" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ...