Dies ist eine alte Version des Dokuments!
letzte inhaltliche Überarbeitung: 01.01.2008
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? ===0 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. </p>
<a name="beschreib_03"><h3>1.3 Welche Version?</h3></a>
<p>
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.
</p> <p>
<span class="kursiv">"ZMS"</span> 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.
</p>
<a name="install"><h2>2. Installation</h2></a> <a name="install_01"><h3>2.1 Auspacken und Kopieren</h3></a>
<p>
Nach dem Download des <span class="kursiv">"ZMS"</span> entpackt man das Archiv und kopiert das entstandene Verzeichnis <span class="kursiv">"ZMS"</span> mitsamt den Unterverzeichnissen in den <span class="kursiv">"Product"</span>-Pfad des Zope-Home-Verzeichnisses (bei mir unter SuSE 8.1: /opt/zope/lib/python/Products). Ein eventuell vorhandenes <span class="kursiv">"ZMS"</span>-Verzeichnis sollte vorher gelöscht werden, da man nicht ausschließen kann, dass einige der alten Dateien nicht mehr im neuen <span class="kursiv">"ZMS"</span> enthalten sind und somit nicht überschrieben werden.
</p>
<a name="fehlerbehebung"><h2>3. Kleine Probleme beseitigen</h2></a> <a name="fehlerbeh_01"><h3>3.1 Fehlende Icons:</h3></a>
<p>
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 <span class="bold">"content"</span> gelangt man zur Management-Ansicht der neu angelegten "ZMS-Site".
</p> <p>
Hier fehlt als erstes (was man gar nicht gleich bemerkt) das "ZMS-Logo" <span class="kursiv">banner.gif</span> 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 <span class="kursiv">"Zugriff->Rollen->Einfügen"</span> bemerkt).
</p> <p>
Der Fehler wird in der Datei <span class="bolditalic">$ZMS-BASE/zmsobject.dtml</span> in Zeile 119 bis 121 verursacht (bei meiner Installation ist <span class="bold">$ZMS-BASE = /opt/lib/zope/python/Products/zms</span>).
</p> <p>
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.
</p>
<a name="fehlerbeh_02"><h3>3.2 Fehlende Linktips an Management-Icons:</h3></a>
<p>
Beim Benutzen störte mich als Anfänger, dass an den Icons der Management Benutzer-Oberfläche keine Linktips 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 <span class="bold">"alt=..."-Befehlsstring</span>, änderte an dieser Kopie <span class="bold">"alt" in "title"</span> - und siehe da ich hatte meine gewünschten Linktips.
</p> <p>
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 Linktip versehen werden.
</p> <p>
Nur als Orientierung hier die betroffenen Dateien (es sieht viel aufwändiger aus als es eigentlich war): <ul> <li>$ZMS-BASE/dtml/object/managetabs.dtml</li> <li>$ZMS-BASE/dtml/metapattern/manage_customizeform.dtml</li> <li>$ZMS-BASE/dtml/zms/manage_main.dtml</li> <li>$ZMS-BASE/dtml/zmscontainerobject/manage_main_btn.dtml</li> <li>$ZMS-BASE/dtml/zmssysfolder/manage_importexport.dtml</li> </ul>
</p>
<a name="fehlerbeh_03"><h3>3.3 Fehlendes Rollen-Icon:</h3></a>
<p>
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 <span class="bold">"content"</span> gelangt man zur Management-Ansicht der neu angelegten "ZMS-Site".
</p> <p>
Im Management-Dialog <span class="bold">"Zugriff"</span> 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.
</p> <p>
In der Datei <span class="bolditalic">$ZMS-BASE/dtml/zms/manage_users.dtml</span> muss die Zeile 701 (hier nur wegen der Fensterbreite mit Zeilenbrüchen dargestellt)
<pre class=„code“> <dtml-call „REQUEST.set('extra',<img src=%sicon_roles.gif \ align=absmiddle border=0 alt>'%MISC_ZMS)> </pre>
vor die Zeile 698 verschoben werden.<br> Die jetzige Zeile 699 (vorher Zeile 698) ist folgendermaßen um ein <span class="bolditalic">extra=extra</span> zu ergänzen (auch wieder ohne Zeilenumbruch!):
<pre class=„code“> <dtml-var „f_headline(_,_,headline=getLangStr('ATTR_ROLES',\ manage_lang),extra=extra)“><br /> </pre> </p> <p>
Nach einem Neustart des Zope-Servers sollte das fehlende Symbol angezeigt werden. Das Fenster sieht gleich viel ausgeglichener aus;-))
</p>
<a name="fehlerbeh_04"><h3>3.4 Navigationsleiste - Link-Problem:</h3></a>
<p>
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.
</p> <p>
Zum Beispiel diese Rubrik mit den Unterrubriken/-elementen:<br> <span class="bold">Tips -> Linux -> Meine Erfahrungen</span><br> In diesem Fall zeigte der Link auf das Element <span class="bold">"Meine Erfahrungen"</span>.
</p> <p>
In der Datei <span class="bold">$ZMS_Root/bodyTop_Channels</span> <span class="bolditalic">($ZMS_Root = Zope-Management-Interface/diese-zms-site)</span> in <span class="bold">Zeile 9</span> ist der erste <span class="bold">"REQUEST"-Aufruf zum Erzeugen des Links</span> mit <span class="bold">",deep=0"</span> zu ergänzen. Dann werden die richtigen Links (nur zum nächsten untergeordneten Element/Rubrik) erzeugt.
</p> <p>
Die gleichen Schritte müssen nun auch in der Datei <span class="bold">$ZMS_Root/bodyContent_Micronavigation</span> in <span class="bold">Zeile 11</span> ausgeführt werden, da auch die "Micronavigation" (zum schnellen Zurückwechseln in übergeordnete Ebenen):<br> <span class="bold">ersten "REQUEST"-Aufruf</span> zum Erzeugen des Links mit <span class="bold">",deep=0"</span> zu ergänzen. Dann werden die richtigen Links (nur zum nächsten untergeordneten Element/Rubrik) erzeugt.
</p> <p>
Da hier die Linktips durch das Element "title" fehlen, habe ich auch diese nachgepflegt. Dazu muss man in der gleichen Zeile <span class="bold">hinter dem String <span class="kursiv">class="navMicro"</span></span> ein Leerzeichen und das folgende "title"-Element einfügen:<br> <span class="bold">title="<dtml-var "getTitle(REQUEST)">"</span>.
</p> <p>
Diese Funktion (Link-Tips) habe ich auch noch in der Datei <span class="bold">$ZMS_Root/bodyContent_Macronavigation</span> hinter den <span class="kursiv">"REQUEST"-Aufrufen zur Erstellung der Navigations-Links</span> auf der linken Seite des Fensters (Hauptnavigation) auf die gleiche Weise "nachgerüstet".
</p>
<a name="sicherg_konfig"><h3>3.5 Sicherung der Änderungen</h3></a>
<p>
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.
</p> <p>
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 <span class="bold">im *.zexp-Format exportieren (kompiliertes Zope-Export-Format)</span> und als <span class="bold">neue Designvorlage</span> benutzen. Ich habe das aber selbst noch nicht versucht, weiß also nicht genau wie das ausgeht.
</p> <p>
Im Zope-Management-Interface kann man über den Punkt Import (u.a. auch *.zexp-)Dateien importieren. Diese müssen im <span class="bold">$ZOPE_BASE/import-Verzeichnis</span> 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ünlichem) Namen und einem Zope Neustart gelingt dieser Import. Man hat aber kein bloßes Design importiert sondern die komplette ZMS-Site.
</p> —————??????————————— <p>
Zum Anzeigen des exportierten "Designs" in der Vorlagen-Auswahl muss man die Datei mit der Endung <span class="bold">".zexp"</span> aus dem Verzeichnis <span class="bold">$ZOPE_BASE/var</span> (wohin sie beim Export standardmäßig gelegt wird) in das Verzeichnis <span class="bold">$ZMS_BASE/import</span> kopieren. Der Dateiname muss der Vorgabe aus dem ZMS folgen und folgende <span class="bold">Form aufweisen: myZMStheme%NR%.zexp</span>. %Nr% soll eine fortlaufende Nummer sein (Achtung keine Überschneidung mit schon vorhandenen Designs). Zusätzlich muss ein <span class="bold">Screenshot</span> des Designs im <span class="bold">$ZMS_BASE/images-Verzeichnis</span> abgespeichert werden. Der Name muss folgendes <span class="bold">Format benutzen: Screen_myZMStheme%NR%.jpg</span>, da anhand dieser Bildernamen die Links zur Auswahl erzeugt werden.