Ce fichier permet de définir un gabarit et les zones qui lui sont associées Il se place dans le répertoire cms/skins/[skinName]/templates/[templateName], il est optionnel mais fortement recommandé afin de décrire au minimum la zone "default" utilisé par défaut par certains plugins Ametys.

Format

template.xml

<template>
    <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>
    <zones>
        <zone id="..." inherit="..." type="primary|secondary">
		    <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>
        </zone>
    </zones>
</template>

Tous les libellés et les descriptions sont internationalisables. Le catalogue utilisé par défaut est celui de la charte graphique se trouvant dans le dossier cms/skins/[skinName]/i18n/.

Les images de prévisualisation et les pictogrammes doivent se trouver dans le dossier resources/ du gabarit : cms/skins/[skinName]/templates/[templateName]/resources/. Elles sont ensuite appelées via un chemin relatif : img/thumb_16.png.

Héritage

Les zones ont une notion d'héritage. Par défaut, les zones ne sont pas héritées, de sorte que si une zone ne contient aucun contenu ou service, elle reste vide. Il est possible d'intégrer une notion d'héritage qui permet, lorsqu'une zone est vide, de récupérer les contenus et/ou services de son parent.

Pour cela, utiliser l'attribut inherit sur la balise zone. Sa valeur peut-être :

  • vide, il hérite alors des contenus ou services insérés dans la zone portant le même nom de son parent.
  • le nom d'une zone, il hérite alors des contenus ou services insérés dans la zone de son parent portant ce nom
  • le nom d'un gabarit vers le nom d'une zone, il hérite alors des contenus ou services insérés dans la zone portant ce nom, si son parent utilise ce gabarit.

Cas 1 - Pas d'héritage

 

<zone id="z1"/>

L'attribut inherit n'existe pas, il n'y a pas d'héritage

Cas 2 - Héritage simple

 

<zone id="z1" inherit=""/>
<zone id="z1" inherit="z1"/>
<zone id="z1" inherit="*->z1"/>

La zone z1 hérite de la zone z1 de la page mère. Pour éviter les erreurs dans les journaux, tous les gabarits doivent définir la zone z1.

Cas 3 - Héritage à partir d'une autre zone

 

<zone id="z1" inherit="z2"/>

La zone z1 hérite de la zone z2 de la page mère. Pour éviter les erreurs dans les journaux, tous les gabarits doivent définir la zone z2.

Cas 4 - Héritage selon le gabarit

 

<zone id="z1" inherit="t1->z1,t2->z2"/>

La zone z1 hérite de :

  • la zone z1 si la page mère utilise le gabarit t1,
  • la zone z2 si la page mère utilise le gabarit t2.

Cas 5 - Héritage conditionnel

 

<zone id="z1" inherit="*->z1,t2->z2,t3->"/>

La zone z1 hérite de :

  • la zone z2 si la page mère utilise le gabarit t2,
  • rien si la page mère utilise le gabarit t3,
  • la zone z1 dans tous les autres cas.

Type de zones

Déclaration

Lors de la déclaration d'une zone, il est possible de préciser le type en attribut : primaire (primary) ou secondaire (secondary).

Par défaut les zones sont primaires.

Les zones primaires sont les zones principales du gabarit. En général il n'y en a qu'une, mais l'ordre de déclaration compte sinon.

Il doit toujours y avoir au moins une zone primaire.

Utilisation

Sur les version 3.7 et plus récente d'Ametys, l'assistant de création de page tient compte du type de zone pour placer le contenu/service principal : ils sont placés sur la première primaire.

De même lors de l'affectation d'un nouveau gabarit via le menu, la première zone primaire est sélectionnée par défaut.

Zone "default"
Une zone d'identifiant "default" est toujours la plus prioritaire.
Ainsi par compatibilité, les chartes 3.5 qui n'ont aucune zone primaire mise en avant mais disposant d'une zone "default" fonctionneront comme attendu.
A noter, qu'il est toujours intéressant d'avoir comme zone primaire principale "default" : ceci pour d'autres fonctionnalités ou plugins.

Retour en haut

Manuel de paramétrage et d'intégration