Definition of the graphic charter (skin.xml)


This file is optional, but strongly recommended, as it allows you to define a graphic charter and offer preview images (see Template and graphic charter management).

Format

skin.xml

<skin>    
    <label i18n="true|false">...</label>    
    <description i18n="true|false">...</description>    
    <thumbnails>    
        <small>path_to_16px_image_relative_to_resources_dir</small>    
        <medium>path_to_32px_image_relative_to_resources_dir</medium>    
        <large>path_to_48px_image_relative_to_resources_dir</large>    
    </thumbnails>    
</skin>    

All tags are optional.

Labels and descriptions can be internationalized. By default, the catalog used is the graphic charter catalog located in the cms/skins/[skinName]/i18n / folder.

Preview images are placed in the cms/skins/[skinName]/resources folder and named with a relative path. (for example: img/picto_16.png).

Charter heritage

As of Ametys 4.3, it is possible to inherit from a charter

L'élément <skin> peut recevoir 2 attributs

  • abstract : true or false. An abstract chart cannot be used like a classic chart. It can only be inherited to easily create sub-charts.
  • extends: identifier of a charter which this charter inherits. 

Inheritance works like this:

  • In an inherited charter, any file absent from the charter will be searched for in the parent charter.
  • When a list of files or folders is required, the files in the parent charter are added to those in the new charter. It is therefore possible, for example, to :
    • add a template (but not remove one, by removing the ability to assign it to a page, for example)
    • add a view to a service (but not remove it: to do this, you need to disable the view in its declaration file xml)
    • etc...
  • It is possible to override only imported files (for example, a common.xsl or variables.scss) without needing to override the files doing the importing.
  • The i18n keys are accumulated between catalogs, so you can overload only the key that interests you.
    Please note: as soon as you start working oni18n , it is strongly recommended that you create all the catalogs (even empty ones) for all the languages of the parent charter.
  • At configuration file level, inheritance support is configured on a file-by-file basis. Please refer to the documentation for each configuration file for further details. Apart from this, an existing file in the charter "replaces" the file in the parent charter: in XSL or CSS it is possible to import the replaced file, see below.

Multiple inheritance works: simply list the parent charters, separating them by commas.
The first parent charter in the list has the most weight.

Recursive inheritance works: if my charter inherits from a charter that inherits.

For example, if C1 inherits from C11 and C12, and C11 itself inherits from C111, then a file will be searched in the following order: C1, C11, C111 then C12.

File overload XSL

By positioning a XSL file, you replace the one in the inherited chart.

In most cases, therefore, it's best to start by importing this "parent" XSL .

<xsl:import href="skin:SKINPARENTE://chemin/vers/la.xsl"/>

After that, you can override any templates you like.

Rule overload CSS / SCSS

To add rules CSS :

  • create and import a new CSS file (this involves adding the import to another CSS file or from a XSL file).
  • or overload an existing CSS file (recommended):
    as for XSL position the file in place of the parent charter file, import the parent charter file and add the new rules. CSS
// SCSS
@import "skin:SKINPARENTE://chemin/vers/la.scss";
// CSS
@import "../../skins/SKINPARENTE/chemin/vers/la.css"
  • if you wish to eliminate rules CSS, you must replace the parent file without importing it and duplicate what you wish to keep. The smaller the file, the better.

Further information

In the same folder cms/skins/[skinName]/conf/, there are 4 other configuration files: 

Back to top