In CMS Ametys , a template is used to define the different parts of a page. For more information, see Template definition.

Creating a template style sheet

The file cms/skins/[skinName]/templates/[templateName]/stylesheets/template.xsl file defines the template display; for example :

<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  

    <xsl:template name="template">  
<html>  
<body>  
<h1>Mon joli gabarit</h1>  
<zone name="default" level="2"/>  
</body>  
</html>  
</xsl:template>  
</xsl:stylesheet>  
  • <zone> définit une zone identifiée par son nom, qui correspond à l'identifiant défini dans le fichier cms/skins/[skinName]/templates/[templateName]/template.xml
  • l'attribut "level" définit les niveaux de titres du contenu qui sera inséré dans la zone : dans cet exemple, le titre du contenu sera affiché avec une balise <h2>. Le corps du contenu peut contenir jusqu'à 3 niveaux de titre : h3, h4 et h5.

Add zone attributes (from Ametys 4.3.3+)

Pour ajouter des attributs au <div> généré, définissez les attributs à ajouter sur un sous-élément <body>.
Par exemple :

<zone name="right" level="1"> 
   <body data-ametys-mobile-tab="true" data-ametys-mobile-tab-text="Titre"/> 
</zone> 

The HTML generated will be:

<div id="ametys-cms-zone-right" data-ametys-zone="right" data-ametys-mobile-tab="true" data-ametys-mobile-tab-text="Titre"> 
</div> 

Pour identifier une zone (dans une règle css par exemple), il est préférable à partir de Ametys 4.3.3+ de s'appuyer sur l'attribut data-ametys-zone plutôt que l'identifiant du <div>

Common XSL files

Some template sections are defined in common style sheets, and are used for page templates as well as for the definition of content and service views. These template sections are also used by CMS (the declaration of CSS style sheets in the HTML document header, for example), so it is necessary to give them the same name.

<xsl:template name="head">  
<head>  
<meta http-equiv="X-UA-Compatible" content="IE=9" />  
    <title><xsl:call-template name="get-title"/></title>  

<xsl:call-template name="meta" />  
<xsl:call-template name="og-meta" />  

<xsl:call-template name="common-css" />  
<xsl:call-template name="additionnal-css" />  

<xsl:call-template name="common-rss" />  
<xsl:call-template name="additionnal-rss" />  

<xsl:call-template name="common-script" />  
<xsl:call-template name="additionnal-script" />  
  
                <!-- Search  -->  
                <xsl:call-template name="search-head"/>  
                 
                <xsl:call-template name="google-analytics"/>  
    </head>  
</xsl:template>  
  • "meta" generates page metadata HTML
  • "common-css" generates all links to CSS common
  • "additional-css" is redefined in each template to include template-specific CSS .

Example of a template file.xsl using these common files:

<xsl:template name="template">  
    <html>  
        <head>  
            <xsl:call-template name="meta" />  
            <title>  
                <xsl:if test="/cms/page" ><xsl:value-of select="/cms/page/@title" /> - </xsl:if><i18n:text i18n:key="SKIN_HOMEPAGE_TITLE" i18n:catalogue="skin.{$skin}"/>  
            </title>             
            <xsl:call-template name="common-css" />             
            <xsl:call-template name="additionnal-css" />  
        </head>         
        <body>  
          <xsl:call-template name="main-navigation"/>  
          <xsl:call-template name="banner"/>  
          <div id="wrapper">  
            <div id="content">  
              <xsl:call-template name="content-template"/>  
            </div>  
          </div>  
          <xsl:call-template name="footer"/>  
        </body>  
    </html>  
</xsl:template>  

Overloading useful templates

The template-default.xsl file contains some very useful templates. They can be easily overloaded in templates XSL .

For more information, see Template writing.

Back to top