Über die Zusammenarbeit von Zope, doxygen und kde

  • Send this page to somebody
  • Print this page
In diesem Dokument möchte ich meine ersten Versuche mit Zope dokumentieren. Ich werde von Sackgassen und Irrtümern aber (hoffentlich) auch von Lösungen und Triumphen berichten. (Original von tacuma)

Notizen über die Zusammenarbeit von Zope, doxygen und kde

In diesem Dokument möchte ich meine ersten Versuche mit Zope dokumentieren. Ich werde von Sackgassen und Irrtümern aber (hoffentlich) auch von Lösungen und Triumphen berichten. Vieles davon wird noch nicht der Weisheit letzter Schluss sein, aber wenn von den anderen, erfahreneren, ZopeianerInnen Anregungungen, Verbesserungsvorschläge oder Hinweise auf einschlägige Dokumentation kommt (RTFM!), dann kann diese Seite nicht nur für mich, sondern auch für andere (Anfänger) nützlich sein.

Die Aufgabe

Um mit dem Umgang mit Zope vertraut zu werden, habe ich mir selbst die folgende Aufgabe gestellt:

  • Ein (fiktives) Projektteam von ca. 5 - 10 EntwicklerInnen erstellt ein neues Softwareprodukt.
  • Die Kommunikation wird über ein Zope-Portal abgewickelt. (Es ist noch nicht klar, ob hierfür das CMF benutzt werden soll, oder nur nacktes Zope).
  • Die Software selbst ist in C++ geschrieben. Die Dokumentation der Software wird mit doxygen erstellt. Diese Dokumentation soll ebenfalls im Portal verfügbar sein.

Einzelaktionen

Starten/Beenden des Zope-Servers

Das beschriebene System ist eine Linux-Workstation mit Debian 3.0 (Woody) und Kernel 2.4.18. Die Oberfläche ist KDE 3.1.2. Bestandteil der Distribution ist Zope in der Version 2.5.1. Standardmäßig wird Zope bei jedem Booten des Rechners gestartet. Will man Zope nur bei Bedarf vom KDE-Desktop aus starten, sind folgende Schritte durchzuführen:

  • In den Verzeichnissen /etc/rc.d sind alle Links zope zu löschen. Dies sind nur Links auf das Debian-Standardskript zum Starten und Beenden von Zope; Näheres hierzu ist in der Debian-Dokumentation zu erfahren. Zope wird jetzt nicht mehr automatisch gestartet.
  • Für den schnellen Zugriff wird ein Icon auf dem KDE-Desktop erzeugt. Anklicken des Icon öffnet ein Fenster und ruft das nach wie vor vorhandene Zope-Startskript auf. Wird das Fenster geschlossen, wird der Zope-Server beendet.
  • Hierfür benötigen wir ein kurzes Shell-Skript (zope.sh):
                #!/bin/bash
                # Dieses Shell-Skript startet den Zope-Server mittels Aufruf von /etc/init.d/zope.
                # Es ist geeignet für Debian-Systeme, die Zope installiert haben,
                # dieses aber nicht automatisch starten möchten, sondern statt dessen einen
                # (KDE-)Icon auf dem Desktop verwenden.
    
                ZOPE_CMD=/etc/init.d/zope
                ZOPE_CMD_START="$ZOPE_CMD start"
                ZOPE_CMD_STOP="$ZOPE_CMD stop"
    
                function trap_HUP {
                   $ZOPE_CMD_STOP
                   exit
                }
    
                trap trap_HUP SIGHUP  # Zope beenden, wenn das Terminalfenster geschlossen wird
                trap trap_HUP SIGINT  # Zope beenden, wenn im Fenster Ctrl-C gedrückt wird
                trap trap_HUP SIGTERM # Zope beenden, wenn der Rechner runter gefahren wird
    
                $ZOPE_CMD_START
                while true; do
                  sleep 120;
                done
    
  • Das Skript muss auf ausführbar gesetzt werden: chmod +x zope.sh
  • Das KDE-Icon wird erstellt:
    • Kontextmenü des Desktop: [Neu erstellen/Verknüpfung mit Programm]
    • Im Dialogfenster ist noch einzugeben:
      Tab-Reiter: Allgemein
      • Name: Zope-Server
      • Icon: Nach Belieben auf das Icon klicken und ein anderes wählen
      Tab-Reiter: Ausführen
      • Befehl: /zope.sh
      • In Terminal starten: ja
      • Terminal-Optionen: -title "Zope Server"
      • Als anderer Benutzer ausführen: ja
      • Benutzername: root

Verwendet man eine Zope-Installation, die "an der Distribution vorbei" aufgespielt wurde, dann ist das obige Skript zope.sh entsprechend zu modifizieren (Beispiel):

         ZOPE_CMD_START="/opt/Zope-2.6.0-linux2-x86/start -w 8180"
         ZOPE_CMD_STOP="/opt/Zope-2.6.0-linux2-x86/stop"

Die Portnummer 8180 ist hier gewählt, weil die voreingestellte 8080 oft für Proxies, Firewalls oder ähnliches belegt ist.

Verwaltung/Koordination der Entwickler

Hierfür ist das CMF sehr geeignet. Jeder Entwickler wird ein Teilnehmer der Site und meldet sich selbst an. Die Vorgehensweise hierfür ist selbsterklärend, allerdings muss es ein Dokument geben, das den organisatorischen Ablauf und Nutzungskonventionen erklärt.

Integration der 'doxygen'-Dokumentation

Ich habe mich dazu entschlossen, die Dokumentation außerhalb von Zope zu erzeugen und dann in die Zope-Site hochzuladen.

Benutzung von WebDAV
In KDE3 existiert ein IO-Slave für WebDAV, so dass im Prinzip alle KDE-Programme WebDAV verwenden können. Die Dokumentation wurde von doxygen erzeugt und liegt im Verzeichnis html. Diese wird folgendermaßen auf den Zope-Server kopiert:
  • Erstellen eines webdav-URL als Lesezeichen:
    • Im Konqueror wird der Befehl [Lesezeichen/Lesezeichen bearbeiten] im Menü aufgerufen.
    • Im Lesezeichen-Editor (KEditBookmarks) wird der Befehl [Einfügen/neues Lesezeichen erstellen] im Menü aufgerufen. Es wird eine neue leere Zeile eingefügt.
    • Nach einem Doppelklick in der Spalte "Lesezeichen" gibt man einen sinnvollen Namen für das neue Lesezeichen ein (z.B. "lokaler Zope-Server-webdav").
    • Nach einem Doppelklick in der Spalte "Adresse" gibt man die URL ein: "webdav://localhost:9673/" Es ist wichtig, dass der Pfad mit einem "/" endet, weil sonst das Navigieren in Unterverzeichnisse nicht funktioniert.
  • Im Konqueror den Befehl [Fenster ... teilen] im Menü aufrufen.
  • In einem der beiden Fensterhälften zum obigen Lesezeichen navigieren.
  • Das Verzeichnis html von der einen Hälfte in die andere ziehen. Nach der Eingabe eines gültigen Zope-Namen und Passwort werden die Dateien rekursiv auf den Zope-Server geladen.
  • Alternativ zum Hantieren mit geteilten Fenstern kann auch im Kontextmenü des Verzeichnisses html "kopieren" gewählt werden, dann navigiert man zum Lesezeichen und wählt dort im Kontextmenü "einfügen".

Hinweis: Die Lesezeichen des Konqueror sind unabhängig von denen des KDE-Dateiauswahldialogs. Wenn man also versucht, eine geänderte Datei direkt im Editor mit dem Befehl [Datei/Speichern unter] auf den Zope-Server zu laden, so ist das Webdav-Lesezeichen des Zope-Server nicht verfügbar. Falls man es hier ein zweites mal anlegt, wird man anschließend enttäuscht feststellen, dass der Dateiauswahldialog hier nur lokale Speicherorte zulässt, obwohl die Funktionalität offensichtlich vorhanden ist (s.o). Dies ist ein Fehler in KDE, denke ich.

Integration in die Zope-Site
Die erzeugten HTML-Seiten der Dokumentation sind nicht im Hinblick auf die Integration mit Zope angepasst. In dem betreffenden Verzeichnis innerhalb von Zope existiert auch kein Dokument index_html. Diese wird jetzt noch folgendermaßen angelegt:
         
         

           

           

This is not the real starting page. If your browser doesn't support redirection, feel free to use the link

Was noch zu tun bleibt

Zum obigen Desktop-Icon: Analog zum Geräte-Icon, das für mounted / unmounted unterschiedlich aussieht und im Kontextmenü die Befehle zum mounten anbietet, möchte ich etwas entsprechendes für den Zope-Server haben. Dies scheint aber ohne (KDE)-Programmierung nicht möglich zu sein.

Der Zope-Dummy bittet um ihre Mithilfe

  • Ist das dargestellte Vorgehen sinnvoll?
  • Wie sieht index_html aus, wenn die moderneren Page Templates statt DTML Documents benutzt würden?
Created by dzugng
Last modified 09.04.2005 15:22