]> General structure

General structure

There some options for using Foundry. The easiest way is to use a version/package of LibreCCM which includes Foundry. In this case Foundry is installed in the /themes/foundry folder. There should also be a second folder named /themes/foundry-base which includes a basic child theme.

Foundry supports a an parent/child theme approach. This means that the logic part of Foundry (the XSL part) is only installed in /themes/foundry and is updated together with the normal upgrades of CCM. A child only contains the templates, CSS files, static texts and configurations files for a theme. Custom extensions are not supported yet.

A complete Foundry theme consists of the following top level folders and files:

conf
Contains configuration files for the theme
doc
Static parts of the documentation of Foundry, for example this text
fonts
Web fonts for the theme
foundry
This folder contains the logic parts (the XSL) of Foundry. The internal structure is described in the Developer Manual.
images
Static images for the theme
libs
Additional JavaScript libraries. jQuery and some other JavaScript libraries are provided by CCM itself, and can be included using special elements like the load-jquery element.
scripts
JavaScripts needed in the theme.
styles
The CSS styles for the theme. More information about them can be found in the CSS files section.
templates
The layout templates for the theme. A detailed description can be found in the Layout templates section.
texts
Static texts for the theme
user
Custom extensions (XSL) for theme. Not supported yet.

Foundry also supports a parent – child – grandchild structure. This is maybe useful when you have themes which only differ in details like logos but use the same general structure. Most tags which are used to include resources like images, CSS files etc. support the attribute origin which can have three values:

Not set
The resource is loaded from the current theme
master
If the current theme is a master/parent theme the resource is loaded from the current theme. If the current theme is a child theme the resource is loaded from the master theme.
internal
The file is loaded from the foundry. If the theme is a child theme is file is loaded from the Foundry master in /themes/foundry.

The recommend way for creating a team using Foundry is to create a new child theme:

  1. To do so create a new theme using the CCM Theme director.
  2. Copy the contents of the themes/foundry-base folder to the folder created by the new theme in themes/devel-themedir/.
  3. Customise the theme