Inhaltsverzeichnis
Tipps => CMS
letzte inhaltliche Überarbeitung: 01.01.2008
Zope => ZMS - Zope(Content)ManagementSystem) (1)
1. Beschreibung
1.1 Was ist ZMS?
ZMS ist ein OpenSource-Content-Management-System für den Application-Server Zope. Es ist als „Product“ von der Homepage der Urheber Homepage für ZMS Fa. Hoffman+Liebenberg, Gesellschaft für Informationsmanagement downloadbar. Als „Product“ bezeichnet man ein sehr einfach in den Zope-Server integrierbares komplettes Softwarepaket, mit dem man die Funktion des Zope-Servers erweitern kann. Diese modulare Erweiterbarkeit ist auch gleichtzeitig einer der Vorteile, die für den Einsatz von Zope sprechen.
1.2 Was kann ZMS?
ZMS wurde im bzw. für den medizinischen, wissenschaftlichen Bereich entwickelt. Es dient u.a. als E-Learning-, Wissensmanagement- und Intranet-Plattform.
ZMS ist in mehreren Sprachen (u.a. auch deutsch) verfügbar und beherrscht das Verwalten von mehrsprachigen Sites.
ZMS kann die dynamischen Seiten zur Präsentation auf einem statischen Webserver komplett exportieren. Diese Funktion ist für mich sehr wichtig, da ich vorhabe, nachdem ich mich umfassend eingearbeitet habe, meine private Site und die HP und das Intranet meines AG's auf das ZMS umzustellen.
1.3 Welche Version?
Da es für SuSE 8.1 nur eine etwas ältere Zope-Version 2.5.1 und dazu entsprechend Python in Version 2.1.3 gibt, benutze ich diese auch. So erhalte ich mir die automatische Einbindung von Zope in den Apache-Webserver und das (meist mit Problemen verbundene) Selbstkompilieren des Zope-Servers.
„ZMS“ ist zur Zeit in der stabilen Version 2.1.2.1-final für Zope 2.6 (funktioniert aber auch mit meinem Zope 2.5.1) und 2.2.-Beta für Zope 2.7, Python 2.3, UTF-8.
2. Installation
2.1 Auspacken und Kopieren
Nach dem Download des „ZMS“ entpackt man das Archiv und kopiert das entstandene Verzeichnis „ZMS“ mitsamt den Unterverzeichnissen in den „Product“-Pfad des Zope-Home-Verzeichnisses (bei mir unter SuSE 8.1: /opt/zope/lib/python/Products). Ein eventuell vorhandenes „ZMS“-Verzeichnis sollte vorher gelöscht werden, da man nicht ausschließen kann, dass einige der alten Dateien nicht mehr im neuen „ZMS“ enthalten sind und somit nicht überschrieben werden.
3. Kleine Probleme beseitigen
3.1 Fehlende Icons:
Nach dem erfolgreichen Einfügen einer „ZMS-Instanz“ (oder -site) wechselt man in das neu angelegte Verzeichnis (hier als Beispiel „myzms2“ genannt). Durch klicken auf das Verzeichnis „content“ gelangt man zur Management-Ansicht der neu angelegten „ZMS-Site“.
Hier fehlt als erstes (was man gar nicht gleich bemerkt) das „ZMS-Logo“ banner.gif in der Kopfzeile. Die fehlenden Management-Icons rechts oben auf den „Karteikarten“ bemerkt man hingegen gleich. Auf den folgenden Seiten kommen weitere Icons hinzu, die teilweise als „Funktionsträger“ für Links benutzt werden, hinzu. Sobald hier die Icons nicht gefunden werden kann man die zugehörige Funktion nicht aufrufen (speziell bei „Zugriff→Rollen→Einfügen“ bemerkt).
Der Fehler wird in der Datei $ZMS-BASE/zmsobject.dtml in Zeile 119 bis 121 verursacht (bei meiner Installation ist $ZMS-BASE = /opt/lib/zope/python/Products/zms).
In diesen Zeilen muss jeweils nur der führende Schrägstrich vor „misc_“ entfernt werden. Voila - nach dem nächsten Neustart von Zope sind die wichtigen Icons vorhanden.
3.2 Fehlende Linktips an Management-Icons:
Beim Benutzen störte mich als Anfänger, dass an den Icons der Management Benutzer-Oberfläche keine Linktipps auftauchten, wenn man mit der Maus darüberfährt. Ich suchte also in den Verzeichnissen des ZMS nach Dateien in denen die jeweiligen Bildnamen der Icons vorkamen. An der jeweiligen Stelle in der Datei kopierte ich den „alt=…“-Befehlsstring, änderte an dieser Kopie „alt“ in „title“ - und siehe da ich hatte meine gewünschten Linktipps.
Dabei stellte ich aber fest, dass nicht alle „alt=…“-Werte konsequent mit „Language“-Variablen (getLangStr(…)) versehen sind (z.B. System). Dadurch kann es vorkommen, dass bei Veränderung der Managementsprache, die betroffenen Icons weiterhin mit dem englischen Linktipp versehen werden.
Nur als Orientierung hier die betroffenen Dateien (es sieht viel aufwändiger aus als es eigentlich war):
- $ZMS-BASE/dtml/object/managetabs.dtml
- $ZMS-BASE/dtml/metapattern/manage_customizeform.dtml
- $ZMS-BASE/dtml/zms/manage_main.dtml
- $ZMS-BASE/dtml/zmscontainerobject/manage_main_btn.dtml
- $ZMS-BASE/dtml/zmssysfolder/manage_importexport.dtml
3.3 Fehlendes Rollen-Icon:
Nach dem erfolgreichen Einfügen einer „ZMS-Instanz“ (oder -site) wechselt man in das neu angelegte Verzeichnis (hier als Beispiel „myzms2“ genannt). Durch klicken auf das Verzeichnis „content“ gelangt man zur Management-Ansicht der neu angelegten „ZMS-Site“.
Im Management-Dialog „Zugriff“ zur Verwaltung der Benutzer und Rollen, fehlt im Bereich der Rollen das Icon im Kopf der Spalte, welches in der Benutzerspalte vorhanden ist. Dies hat keine negativen Auswirkungen. Es ist nur ein Layout-Fehler.
In der Datei $ZMS-BASE/dtml/zms/manage_users.dtml muss die Zeile 701 (hier nur wegen der Fensterbreite mit Zeilenbrüchen dargestellt)
<dtml-call "REQUEST.set('extra',<img src=%sicon_roles.gif align=absmiddle border=0 alt>&'%MISC_ZMS)>vor die Zeile 698 verschoben werden.
Die jetzige Zeile 699 (vorher Zeile 698) ist folgendermaßen um ein extra=extra zu ergänzen (auch wieder ohne Zeilenumbruch!):
<dtml-var "f_headline(_,_,headline=getLangStr('ATTR_ROLES',manage_lang),<span class="bold">extra=extra</span>)"><;br />;
Nach einem Neustart des Zope-Servers sollte das fehlende Symbol angezeigt werden. Das Fenster sieht gleich viel ausgeglichener aus;-))
3.4 Navigationsleiste - Link-Problem:
In der waagerechten „Channel“-Navigationsleiste wurden bei mehreren Elementen in einer Rubrik die Links so erstellt, dass der Link immer bis zum letzten Element im diesem Pfad zeigte.
Zum Beispiel diese Rubrik mit den Unterrubriken/-elementen:
Tips → Linux → Meine Erfahrungen
In diesem Fall zeigte der Link auf das Element „Meine Erfahrungen“.
In der Datei $ZMS_Root/bodyTop_Channels ($ZMS_Root = Zope-Management-Interface/diese-zms-site) in Zeile 9 ist der erste „REQUEST“-Aufruf zum Erzeugen des Links mit „,deep=0“ zu ergänzen. Dann werden die richtigen Links (nur zum nächsten untergeordneten Element/Rubrik) erzeugt.
Die gleichen Schritte müssen nun auch in der Datei $ZMS_Root/bodyContent_Micronavigation in Zeile 11 ausgeführt werden, da auch die „Micronavigation“ (zum schnellen Zurückwechseln in übergeordnete Ebenen):
ersten „REQUEST“-Aufruf zum Erzeugen des Links mit „,deep=0“ zu ergänzen. Dann werden die richtigen Links (nur zum nächsten untergeordneten Element/Rubrik) erzeugt.
Da hier die Linktipps durch das Element „title“ fehlen, habe ich auch diese nachgepflegt. Dazu muss man in der gleichen Zeile hinter dem String class=„navMicro“ ein Leerzeichen und das folgende „title“-Element einfügen:
title=„<dtml-var „getTitle(REQUEST)“>„.
Diese Funktion (Link-Tips) habe ich auch noch in der Datei $ZMS_Root/bodyContent_Macronavigation hinter den „REQUEST“-Aufrufen zur Erstellung der Navigations-Links auf der linken Seite des Fensters (Hauptnavigation) auf die gleiche Weise „nachgerüstet“.
3.5 Sicherung der Änderungen
Die in Punkt 3.4 gemachten Änderungen gelten leider immer nur für das jeweils aktuelle ZMS-Projekt (oder ZMS-Site). Wird ein neues Projekt mit Hilfe der mitgelieferten Designvorlagen erstellt muss man diese Anpassungen (Pkt. 3.4) immer wieder von neuem durchführen.
Will man diese sowie auch andere Layoutelemente an die eigenenen Wünsche anpassen und sie in einem weiteren Projekt/Site benutzen, muss man die veränderte Site im *.zexp-Format exportieren (kompiliertes Zope-Export-Format) und als neue Designvorlage benutzen. Ich habe das aber selbst noch nicht versucht, weiß also nicht genau wie das ausgeht.
Im Zope-Management-Interface kann man über den Punkt Import (u.a. auch *.zexp-)Dateien importieren. Diese müssen im $ZOPE_BASE/import-Verzeichnis liegen. Wenn man dies mit der gerade exportierten Datei des veränderten „Designs“ macht erhält man Fehlermeldungen, dass die Adresse bereits benutzt wird. Erst nach dem Löschen der voerherigen ZMS-Site mit gleichem (ursprünglichem) Namen und einem Zope Neustart gelingt dieser Import. Man hat aber kein bloßes Design importiert sondern die komplette ZMS-Site.
—————??????—————————
Zum Anzeigen des exportierten „Designs“ in der Vorlagen-Auswahl muss man die Datei mit der Endung “.zexp“ aus dem Verzeichnis $ZOPE_BASE/var (wohin sie beim Export standardmäßig gelegt wird) in das Verzeichnis $ZMS_BASE/import kopieren. Der Dateiname muss der Vorgabe aus dem ZMS folgen und folgende Form aufweisen: myZMStheme%NR%.zexp. %Nr% soll eine fortlaufende Nummer sein (Achtung keine Überschneidung mit schon vorhandenen Designs). Zusätzlich muss ein Screenshot des Designs im $ZMS_BASE/images-Verzeichnis abgespeichert werden. Der Name muss folgendes Format benutzen: Screen_myZMStheme%NR%.jpg, da anhand dieser Bildernamen die Links zur Auswahl erzeugt werden.