Les modèles - 5 : Modèles imbriqués, transmission de paramètres
Écrit par Bertrand | 28-07-2005

Les articles précédents :
Les modèles - Partie 1 : Introduction aux modèles par yeca
Les modèles - Partie 2 : Tableaux répétés et régions répétées
Les modèles : Partie 3 : Attributs modifiables, régions facultatives
Les modèles : Partie 4 : Expressions et paramètres de modèle

Quand utiliser des modèles imbriqués ?
Imaginons un site comportant plusieurs rubriques : Accueil | Contact | Produits | Membres | Partenaires etc.
Toutes ces rubriques auront le même aspect, c'est-à-dire la même mise en page, et on utilisera donc un modèle global, qui gèrera l'ensemble du site.
Elles sont toutes constituées d'une seule page, à l'exception de la rubrique Produits, qui peut en avoir plusieurs.
Non seulement cette rubrique a plusieurs pages, mais celles-ci doivent aussi recevoir une mise en page commune, marquant ainsi leur identité par rapport au reste du site. Et outre le fait qu'elles partagent un design commun, elles ont besoin d'être mises à jour fréquemment.
On utilisera alors un modèle imbriqué, dérivé du modèle global, et propre à la rubrique Produits.

Autrement dit c'est une manière d'affiner la gestion du site, en contrôlant à la fois le site en entier et des sous-parties du site, sans avoir à reprendre chaque page lorsque des modifications doivent avoir lieu dans l'une ou l'autre des rubrique.

Créer un modèle imbriqué

Commençez par créer un modèle global. Insérez un tableau 3 lignes, 1 colonne et donnez lui une couleur de fond. Placez une région modifiable dans la rangée du milieu. Enregistrez le modèle sous le nom global.dwt

À partir de ce modèle créez par exemple deux pages, accueil.html et contact.html.
Puis créez-en une troisième mais cette fois placez-vous dans la zone modifiable (rangée du milieu), insérez un nouveau tableau de 3 lignes, 1 colonne et donnez lui une couleur de fond différente de la première. Puis dans la rangée centrale de ce nouveau tableau, demandez l'insertion d'une nouvelle région modifiable. Aussitôt Dreamweaver vous affiche ce message :

Faites OK et enregistrez ce document sous le nom imbrique.dwt.

Dreamweaver vous signale que vous êtes dans un modèle imbriqué en affichant un onglet orange en haut à gauche du tableau que nous venons de créer.
Créez deux pages à partir de ce nouveau modèle et appelez-les produit1.html et produit2.html.

Au final, nous avons cette structure :

Puis faites des expériences :

  • Vous avez besoin de modifier la couleur bleue de tout le site ?
    Vous irez modifier le fichier global.dwt : cela entrainera la modification sur TOUTES les pages que vous venez de faire, y compris le modèle imbriqué, et donc les pages Produits.

  • Vous avez juste besoin de modifier les pages de la rubrique Produits ?
    Vous irez modifier uniquement ke fichier imbrique.dwt, seules les pages produit1 et produits seront affectées.

Transmission de paramètres

Quand intervient cette notion de transmission de paramètres ?
Lorsque l'on veut contrôler par exemple l'affichage de régions, non pas à partir du modèle de base mais à partir du modèle imbriqué. Je sais, ça devient tortueux...
Prenons un exemple.

Créez un premier modèle, glissez dedans deux tableaux simples d'une ligne, une colonne, l'un au dessus de l'autre. Dans celui du haut, créez une région modifiable (le seul intérêt de cette zone sera d'éviter les messages de Dreamweaver sur l'absence de régions modifiables).
Sélectionnez ensuite celui du bas et transformez-le en région facultative : Insertion > Objets de modèles > Région facultative.
Laisser l'option Afficher par défaut cochée.

Enregistrez-le en lui donnant un numéro, de façon à savoir que c'est un modèle de première génération, donc le modèle de base.
Appelons le transMod1.dwt.
Créez un fichier à partir de ce modèle et enregistrez-le à son tour comme modèle, en l'appelant transMod2.dwt. C'est donc un modèle de seconde génération, un modèle imbriqué.

Créez une page HTML à partir de transMod1.dwt et appelez la transMod1.html. Puis une deuxième page à partir de transMod2.dwt et appelez la transMod2.html. Voici où nous en sommes :

À présent, voyons comment se comporte notre région facultative dans tous ces différents fichiers. Essayez de contrôler l'affichage du tableau du dessous dans les fichiers en passant par le menu Modifier > Propriétés du modèle.
Pas de problème pour les fichiers suivants : transMod1.dwt, transMod2.dwt, transMod1.html. Nous avons toujours la possibilité d'afficher ou non la région.

Par contre, impossible de contrôler l'affichage de la région dans transMod2.html. L'option Afficher a disparu.

L'héritage des paramètres s'est arrêté aux fichiers directement issus du modèle de première génération.

Alors que faire si justement dans ce fichier nous avions voulu faire disparaitre le tableau du bas ?
C'est ici qu'intervient l'option que nous apercevons en bas de la boite de dialogue Propriétés du modèle.

Grâce à cette option, nous allons pouvoir demander à ce que la région facultative soit transmise au fichier transMod2.html.
Dans le modèle imbriqué (transMod2.dwt), allez dans le menu Modifier > Propriétés du modèle, et cochez cette option. Voici ce que vous devez obtenir :

L'option Afficher... a disparu, remplacée par (passer au travers). C'est ce qu'on appelle le paramètre passthrough, auquel on donne la valeur vraie.

<!-- InstanceParam name="TableauJaune" type="boolean" value="true" passthrough="true" -->

Retournez dans transMod2.html, et observez que maintenant vous pouvez choisir d'afficher ou non le tableau du bas, notre région facultative.

Par contre, dans le modèle imbriqué lui-même, vous ne pouvez plus contrôler l'affichage.

Conclusion

L'utilisation de modèles imbriqués et, qui plus est, la transmission de paramètres, demande une organisation assez rigoureuse et pour tout dire je trouve que tout cela devient assez contraignant au point de vue maintenance...Depuis maintenant deux ans que ces fonctionnalités sont apparues avec DMX, rares sont les personnes qui m'ont dit utiliser les modèles à ce point : je peux les compter sur les doigts d'une main... et si j'étais amputé de deux doigts, le compte y serait encore.

Partie 6 : Modèles dynamiques

 
Dernière mise à jour : 31-07-2005