Now that you understand the process of getting a skin bound to the proper page, this section looks at the different parts of a skin package. The package is a compilation of the files and definitions you will use to tell DotNetNuke how and what to process for your skin when you install it into your application instance. A skin or container package can contain the following file types:
*.htm,*.html: These files can contain the layout representing how you want the various skin objects to be located in your design. These files will be converted to *.ascx files upon installation to the application.
*.ascx: These are skin-definition user controls that are precompiled in the format the skinning engine requires.
*.css: These files contain the style sheet definitions you will use to define the files in your skin or container.
*.gif, *.jpeg, *.jpg, *.png: These file extensions are used in support of the graphics files included in your skin.
*.xml: These file extensions are used to inform the parsing engine how to handle specific skin objects and are also referred to as the manifest file.
*.* Others: You can use any other resource files in your package, but these must be of an allowed file type in the Host-allowed file settings on the Host Settings page.
A package can contain multiple skins and/or containers. This enables you to create complementing skins for a site in one package. Because the layout will allow for various panes that contain the module content at runtime, this is a powerful feature because you may not want the same layout for all pages in a site, but you will probably want common graphics and defined styles throughout the same site. This ability to package multiple skins and containers enables you to install all of the skins for a portal in one installation.
A skin package should make use of a manifest file to identify the various files and elements to be included in the skin. Including this file enables you to combine all the files into one package and give the application the needed instructions for processing the skin to your specifications. Although the manifest file adds some overhead to the skin creation process, it greatly enhances the abilities of the installation process and allows greater control in a single step.
The manifest file as outlined is used only during the skin parsing process. What this XML file actually does is extend, or override, the attributes set in the generated ASCX file at the time of parsing. This enables the designer to assign attributes, such as CSS class names, to a skin object. The finer points of creating manifest files and how they work together with skin objects are discussed later in this chapter because this is an important mechanism for controlling the installation of your skins.