Skins
For some background about skin layers, read the Skin Layers section of the Theming Manual.
Let's take the skins.xml file of plonetheme.sunburst skins.xml as example:
<?xml version="1.0"?>
<object name="portal_skins" default_skin="Sunburst Theme">
<object name="sunburst_images"
meta_type="Filesystem Directory View"
directory="plonetheme.sunburst:skins/sunburst_images"/>
<object name="sunburst_templates"
meta_type="Filesystem Directory View"
directory="plonetheme.sunburst:skins/sunburst_templates"/>
<object name="sunburst_styles"
meta_type="Filesystem Directory View"
directory="plonetheme.sunburst:skins/sunburst_styles"/>
<object name="sunburst_js"
meta_type="Filesystem Directory View"
directory="plonetheme.sunburst:skins/sunburst_js"/>
<skin-path name="Sunburst Theme" based-on="Plone Default">
<layer name="sunburst_images"
insert-after="custom"/>
<layer name="sunburst_templates"
insert-after="sunburst_images"/>
<layer name="sunburst_styles"
insert-after="sunburst_templates"/>
<layer name="sunburst_js"
insert-after="sunburst_styles"/>
</skin-path>
</object>
Here, the line
<object name="portal_skins" default_skin="Sunburst Theme">
indicates we're dealing with the portal_skins object and sets Sunburst Theme as the default active theme. The later has the same effect of selecting Sunburst Theme in the Themes control panel dialog or in the portal_skins properties in the ZMI.
The <object /> nodes define a new Filesystem Directory View (FSDV):
- name
- The name of the skin layer as shown in the contents of portal_skins in the ZMI. It usually matches the name of the directory in the filesystem, but doesn't neccessarily have to.
- meta_type
- Will always be Filesystem Directory View in this context.
- directory
- The path to the directory in the filesystem in the format
[yournamespace].[your theme name]:skins/[Your Skin Directory Name]
Then, we insert the the previously defined skin layers in a theme. First, we specify we're dealing with the skin named Sunburst Theme, which will inherit the list and order of skins layers from Plone Default:
<skin-path name="Sunburst Theme" based-on="Plone Default">
Next, we insert each skin layer in the appropiate place.
<layer name="sunburst_images" insert-after="custom"/>
You can use the insert-after and insert-before attributes with the name of an already present skin layer to control the placement. If you want to insert a layer at the top of the stack, use
<layer name="layer_name" insert-before="*"/>
If you don't specify any insert-after nor insert-before attributes, the specified layer will be inserted at the bottom of the stack.

Author: