Les Espaces clients
Définition
Les espaces clients permettent de définir dans les modèles de pages des zones dans lesquelles il sera possible de mettre du contenu différent pour chaque page. Typiquement un formulaire sur une page de contact et un texte sur une page de présentation. Le duo Modèles de pages / Espaces clients vous permet de facilement et rapidement avoir un site riche en contenu et cohérent graphiquement.
Un modèle de page peut comporter autant d'espace client que vous le souhaitez.
Exemples
Exemple d'une page en édition avec un modèle possédant 2 espaces clients (encadrés en vert) :
Exemple d'une page en édition. Dans cet espace client sont disposées plusieurs rangées. Il est possible d'en rajouter d'autres, de les supprimer, ou de modifier leur contenu :
Ce qu'il faut retenir
Une page possède 2 parties distinctes :
La forme :
Une page utilise un "modèle de page" (c'est en quelque sorte le "squelette" de la page), lui même comportant un ou plusieurs "espaces clients".
Chaque espace client permet de contenir une ou plusieurs "rangée de contenu".
Le contenu :
Le contenu est renseigné par le rédacteur du site, en utilisant les "rangées de contenu".
Il suffit de les éditer et de rentrer le contenu souhaité (texte, images, etc...).
Comment ça marche
Le tag <atm-clientspace />
Dans un modèle de page, les espaces clients sont définis par le tag <atm-clientspace />.
On remarque qu'il s'agit d'un tag autofermant, possédant 2 attributs :
- module : il s'agit du nom de code du module. Généralement on utilise le module "standard", qui est le module principal d'Automne : gestion des pages. Mais il est possible d'indiquer tout autre module.
- id : il s'agit de l'identifiant de l'espace client au sein du modèle de page. Il doit être unique. Lorsque vous insérez des rangées de contenu dans cet espace client, Automne associe les rangées à cet identifiant unique.
Ce qui nous donne par exemple : <atm-clientspace module="standard" id="first" />
Nous vous conseillons de nommer vos espaces clients selon leur priorité dans le modèle :
- "first" pour l'espace client le plus important
- "second" pour le deuxième espace client
- "third" pour le troisième
- ... et ainsi de suite...
La raison principale est que pour basculer d'un modèle de page à un autre il est nécessaire que les modèles soient compatibles. C'est à dire qu'ils possèdent des espaces clients dont les identifiants (id) correspondent.
Si une page est associée à un modèle de page qui possède 2 espaces clients et que l'on bascule vers un modèle qui n'en possède qu'1 seul, il s'en suivra une perte des données du second espace client.
En nommant ainsi les espaces clients, vous êtes sûrs que les données appartenant à l'espace client de plus grande importance soient conservées en cas de basculement de modèle.
Régénération d'une page
Techniquement, lors de la régénération d'une page, Automne va rechercher les rangées associées à cette page et à l'espace client, et remplace le tag par le contenu correspondant.
Voici un exemple de tags "espace client" au sein d'un modèle :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title><atm-constant name="APPLICATION_LABEL" /> : <atm-title /></title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<atm-meta-tags />
</head>
<body>
<div id="page">
<div id="rightBox">
<atm-clientspace module="standard" id="first" />
</div>
<div id="leftBox">
<atm-clientspace module="standard" id="second" />
</div>
</div>
</body>
</html>
Exemple concret
Module : pnews (créé avec le générateur de modules polymod)
Tag : <atm-clientspace module="pnews" id="homepagenews" type="homepage" />
A partir de ce tag, Automne va appeler le module correspondant au nom de code "pnews".
Il s'agit d'un module polymod, possédant les classes et fonctions nécessaires pour traiter ce tag.
Ce tag est interprété de cette manière par le module polymod : le module est configuré pour comprendre ce tag, et retourne le contenu du fichier suivant :
/automne/templates/mod_[code du module]_[attribut "type" du tag clientspace].php
Dans notre exemple, Automne va automatiquement insérer à la place du tag le contenu du fichier /automne/templates/mod_pnews_homepage.php.
Cet exemple utilise le module polymod, générateur de module sous Automne. Le comportement face au tag clientspace est déjà préconfiguré.
Il est cependant possible d'avoir un comportement différent avec un autre module.
Haut
Ajouter une contribution