Eigenen Skin erstellen
Um nun das Plone Skin Tools für unsere Bedürfnisse anzupassen, wurde die Datei src/vs.theme/vs/theme/profiles/default/skins.xml folgendermaßen erstellt:
<?xml version="1.0"?> <object name="portal_skins" allow_any="False" cookie_persistence="False" default_skin="vs.theme"> <object name="vs_theme_custom_images" meta_type="Filesystem Directory View" directory="vs.theme:skins/vs_theme_custom_images"/> <object name="vs_theme_custom_templates" meta_type="Filesystem Directory View" directory="vs.theme:skins/vs_theme_custom_templates"/> <object name="vs_theme_styles" meta_type="Filesystem Directory View" directory="vs.theme:skins/vs_theme_styles"/> <skin-path name="vs.theme" based-on="Plone Default"> <layer name="vs_theme_custom_images" insert-after="custom"/> <layer name="vs_theme_custom_templates" insert-after="vs_theme_custom_images"/> <layer name="vs_theme_styles" insert-after="vs_theme_custom_templates"/> </skin-path> </object>
Damit werden die drei Verzeichnisse vs_theme_custom_images, vs_theme_custom_templates und vs_theme_styles registriert und ein neuer Skin vstheme, der auf Plone Default basiert und zudem die drei oben genannten Layer enthält, als Standard-Skin angegeben.
Anmerkung: Sollen die Layer allen Skins zugewiesen werden, kann dies einfach so angegeben werden:
<skin-path name="*"> ... </skin-path>
Entfernen von Layern
Layer können auch einfach wieder entfernt werden mit:
<object name="vs_theme_custom_templates" remove="True "/>
Dies kann z.B. für ein uninstall-Profil verwendet werden.
Elemente in einem Skin-Layer überschreiben
Wollen Sie z.B. das Logo durch ein eigenes im gif-Format ersetzen, sollten Sie zunächst in der Datei src/vs.theme/vs/theme/skins/vs_theme_styles/base_properties.props die Angabe für logoName ändern:
logoName:string=logo.gif
Anschließend können Sie Ihr Logo in src/vs.theme/vs/theme/skins/vs_theme_custom_images/ einfügen.
Anmerkung 1: Um die DTML-Variable fontFamily in einer CSS-Datei verwenden zu können, darf sie nicht mit &dtml-fontFamily; eingebunden werden sondern mit <dtml-var fontFamily>;, da ansonsten das Zeichen " als " interpretiert würde.
Anmerkung 2: Sollen PageTemplates überschrieben werden, die auch Meta-Angaben in einer .metadata-Datei enthalten, dann sollte auch diese Datei mitkopiert werden.