Skin
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.

