![]() ![]() |
Sie sind hier: ZWikiSeiten > CPSkins CPSkinsMit Skins arbeiten (Entwurf)Dokumentation (Entwurf): Wie schreibt man einen Skin und wie benutzt man das Skin-Tool (Werkzeug) des CMF. Created by paul . Last modified 2001-06-12 07:06:54. �bertragen von Volker Bachschneider Das Erscheinungsbild von Portalen bearbeitenEinleitungDieses Dokument gibt einen �berblick �ber das Konzept von Skins, eine der neuen Technologien die mit dem CMF eingef�hrt werden, damit Anpassungen erm�glicht werden. Unterstellt wird die Vertrautheit mit Zope-Konzepten wie DTML und dem Zope-Suchwerkzeug. Das Skin-ToolMit dem Zope CMF (Content Management Framework) wurde ein neues Konzept namens Tools (Werkzeuge) eingef�hrt. Diese Tools stelle Dienste f�r Inhaltsobjekte bereit und geben den Inhaltsobjekten die M�glichkeit ihren Inhalt zu repr�sentieren. Eins dieser Tools ist das Skin-Tool, portal_skins. Es trennt das spezifische Verhalten eine Web-Site von den Objekten im System. Dadurch wird eine h�herer Grad der Anpassung m�glich, ohne da� �nderungen in den Kernklassen der Objekte n�tig w�ren. Die Probleme die gel�st werdenViele in Python geschriebene Zope-Klassen sind direkt mit ihrem Management-Bildschirm verkn�pft. Das verbindet die Objekte jedoch zu stark mit ihrer Darstellung. Gelegentlich k�nnen ZClasses, die von Python-Klassen abgeleitet werden, so angelegt werden, das die ganze Logik in die Basisklasse genommen wird, deren Darstellung aber in DTML-Methoden der ZClass. Dabei entsteht jedoch ein Problem bei der Weitergabe: normalerweise w�rde ein CMF-Entwickler die Darstellung seiner Web-Site in einer ZClass anpassen. Mit einem neuen CMF-Release besteht jedoch Gefahr, das diese Anpassungen �berschrieben werden. Folgende Probleme m�ssen daher gel�st werden:
Die Probleml�sungWie nun l�st das Skin-Tool diese Probleme? Hier kommen einige Dinge zusammen: Eine Definition der Layer (Schichten)Ein ordnungsgem��er Skin ist eine Definition von Layern. Was sind diese Layer?Die Definition von Layern ist eine Liste ordner�hnlicher Objekte, die DTML, Bilder, Ordner, Properties (Eigenschaften) usw. enthalten. Ein Skin unter dem Titel Die Layer k�nnen an zwei Orten verankert sein:
Der Rest dieses Dokumentes erkl�rt die Feinheiten der Anpassung einer CMF-Site, die sich aus den obenstehenden Grundlagen ergeben. Mit Anpassungen beginnenEin n�herer Blick auf das Skin-ToolUnterstellt wird, da� eine Instanz einer CMF-Site eingerichtet wurde und man sich im Zope Management Interface (ZMI / Administrationsansicht) befindet Im Folgenden wird das Skin-Tool n�her betrachtet, um zu erschlie�en woraus es sich standardm��ig zusammensetzt / was es in der Grundinstallation enth�lt. Zun�chst wechselt man im ZMI in das 'portal_skins'-Objekt der CMF-Site. In der Grundansicht Unter dem Properties-Tab des 'portal_skins'-Objekt, wird angezeigt, wie die Skins momentan konfiguriert sind. Standardm��ig sind drei Skins vordefiniert: Inhalte der StandardordnerEs gibt einen Grundbestand von Objekte im Dateisystem die mit dem Skin-Tool installiert werden. Dieser Abschnitt besch�ftigt sich mit denen Inhalten. ImagesDieser Ordner enth�lt ausschlie�lich Bilder (keine Icons), die in den Standard-Skins verwendet werden. contentDieser Ordner enth�lt DTML-Methoden und Icons f�r den Basisumfang an Inhaltsobjekten (aus dem 'CMFDefault'-Paket). Also f�r Dinge wie Dokumente, Dateien, usw. Zus�tzlich einige DTML-Methoden f�r alle Inhaltsobjekte, wie etwa die Formulare zum Bearbeiten der Metadaten und andere Formulare die den Standard-Workflow unterst�tzen. controlDieser Ordner enth�lt DTML-Methoden mit allgemeinen Ablaufskripten. Beispielsweise customEin gew�hnlicher Zope-Ordner, um mit Anpassungen anzufangen. Ebenso k�nnen andere Zope-Ordner f�r diesen Zweck im Skin-Tool angelegt werden, f�r erste Schritte kann man jedoch auch hier beginnen. genericDas grunds�tzliche Erscheinungsbild der Web-Site. Hier sind etwa no_cssWird vom 'No CSS'-Skin verwendet. Der Ordner enth�lt ein Property-Objekt der das Style-Sheet der normalen DTML-Skins abschaltet. nouvelleWird vom 'Nouvelle'-Skin verwendet. Der Ordner enth�lt das topicWenn CMF-Topic installiert ist, sollte es auch diesen Ordner geben. Er enth�lt alle Objekte die f�r Topics (Sammler) spezifisch sind. Das Obenstehende ist hoffentlich eine gewisse Hilfe beim Auffinden der Dinge, die man auf der eigenen Web-Site anzupassen w�nscht. Ich habe mir einige grunds�tzliche Regeln zum Auffinden dieser Dinge zu eigen gemacht:
Eine einfache Anpassung (Veraltet: DTML)Lassen Sie uns eine relativ einfache Anpassung machen. Wenn Sie sich auf einer Web-Site befinden, auf der noch keine News-Objekte publiziert wurden, gibt die Standard- Pr�fen Sie in einem anderen Browserfenster, ob die Portal-Seite Ihrer CMF-Site in der Einen neuen Skin definierenNeue Skins lassen sich recht einfach definieren. Im wesentlichen handelt es sich nur um die Fortsetzung des bislang Beschriebenen und die Anwendung von �blichen Zope Techniken. Neue Ordner im Skin-Tool anlegenObwohl man alle Anpassungen in Hier sollen keine ausf�hrlichen Beispiele gezeigt werden, worin der Nutzen zus�tzlicher Skins und Ordner liegt. Nur so weit: Ein Beispiel w�re ein "Druckerfreundlicher" Skin - der alle Seitendekorationen wegl�sst oder ein Skin, der spezielle Browsereigenschaften nutzt. F�r jeden dieser Skins kann man einen neuen Ordner in Anpassungen in die neuen Ordner hineinnehmenDas Vorgehen ist das gleiche, wie schon weiter oben beschrieben - ausgehend von einem Ordner mit Objekten im Dateisystem w�hlt man ein Objekt und dann in der Ordnerliste den neuen Ordner. Skins definieren und anpassenErinnern Sie sich, da� ein Skin als Liste von Layern definiert wird und diese Layer Ordner in Das macht man unter dem Properties-Tab von Skins durchsuchen die angegebenen Reihenfolge der Layer von links nach rechts. In einer Basiskonfiguration, die Wenn Sie neue Ordner zur Anpassung der Skins angelegt haben, k�nnen sie die Ordner entweder in die Listen der bereits definierten Skins aufnehmen, oder Sie definieren einen neuen Skin. Im ersten Fall empfiehlt es sich die neuen Ordner am Anfang einzuf�gen. Im zweiten Fall, empfiehlt es sich die Liste eines existierenden Skin in den neuen Skin zu kopieren (etwa Weitere Hinweise: Siehe auch PortalSkinsCheckliste
|