Déjà présent depuis FrontPage 2003, un modèle Web dynamique est, comme son nom l'indique, un modèle que l'on peut appliquer sur plusieurs pages Web d'un site, et qui vous permet de générer une même mise en page pour chacune des pages auxquelles il est attaché. Avec par exemple la possibilité de créer des zones modifiables (ou non) afin d'éviter des changements indésirables sur les pages.
Cela peut être un véritable gain de temps quand on a plusieurs pages à gérer et que l'on ne veut pas faire le changement de mise en page sur chacune d'entre elle. Bien que ce ne soit pas exactement la même chose, un modèle Web dynamique partage certains avantages avec les MasterPages que l'on peut créer en ASPX. Mais on peut très bien imaginer en faire un complément pour celui-ci et utiliser les 2 en parallèle.
Un modèle Web dynamique n'est, en fin de compte, rien d'autre qu'un fichier HTML auquel on donnera une autre extension, comportant des commentaires HTML typiques qu'Expression Web sera en mesure de convertir sous forme de zone modifiables. Par exemple :
<!-- #BeginEditable "doctitle" -->
<title>Titre du site</title>
<!-- #EndEditable -->
Entre ces 2 lignes, le code est modifiable sans problème.
Création d'un modèle Web dynamique
La création d'un mdèle Web dynamique (.dwt) est relativement simple. Il suffit de partir d'une page HTML classique et de lui faire la structure ou la mise en page que vous souhaitez voir appliquer sur chacune des pages qui lui seront attachées.
Dans un premier temps, il n'est pas encore nécessaire de s'occuper à vouloir créer des zones modifiables. Cela sera possible une fois que le modèle Web dynamique (.dwt) sera créé.

Pour se faire, il faut aller dans :
Fichier > Enregistre sous...
à partir du fichier que vous voulez convertir en modèle Web dynamique. Une fois la fenêtre Enregistrer sous affichée, il faut sélectionner dans la liste déroulante du Type de fichier le choix Modèle Web dynamique (.dwt).
Après l'avoir enregistrer, votre modèle Web dynamique se retrouve alors dans votre Liste des dossiers.
Je pense qu'il est intéressant de préciser qu'à la création d'un modèle Web dynamique, une zone modifiable se créer automatiquement autour du titre de votre page de la même façon que l'exemple de l'introduction :
<!-- #BeginEditable "doctitle" -->
<title>Titre du site</title>
<!-- #EndEditable --> Créer et renommer une zone modifiable
Après avoir créer un modèle Web dynamique, il faut définir une zone modifiable pour pouvoir appliquer des changements sur les pages auxquelles il est attaché.
En ouvrant votre modèle Web dynamique (.dwt), on peut remarquer que tout est encore accessible. La restriction ne s'applique évidemment qu'aux pages attachés à votre modèle.
Mais avant toute chose, il est important de préciser que par défaut, toute votre page n'est pas modifiable. C'est donc à vous d'aller définir différentes zones qui pourront être changées sur les pages attachés à votre modèle Web dynamique.
En effet si vous appliquez un changement sur une zone non modifiable dans vos pages attachées :
- D'une part cela ne sera pas forcément possible suivant que vous êtes en mode Design ou en mode Code
- D'une autre part tous les changements effectués seront écrasés ou annulés par le modèle Web dynamique si vous viendriez à faire un changement sur celui-ci.
Pour créer une zone modifiable, vous avez plusieurs solutions :
1) Pour le faire via l'interface d'Expression, il faut avant passer votre fenêtre principal en mode Création (ou Fractionné). En effet, il faut que le site ou les changements effectués sur votre page soit généré dans votre fenêtre Design pour pouvoir placer une zone modifiable sur votre page.
Ensuite, vous sélectionner le bloc ou la zone que vous voulez rendre modifiable et puis vous faites :
Clic droit > Gérer les zones modifiables...
Ou en allant sur :
Format > Modèle Web dynamique > Gérer les zones modifiables...
La fenêtre des zones modifiables affichée, vous lui donnez un nom dans le champ Nom de la zone, puis vous cliquez sur le bouton Ajouter (qui se sera dégrisé après lui avoir donné son nom). Votre nouvelle zone apparaît donc dans votre liste de zones modifiables.
Dans votre code HTML, on peut voir alors apparaître à l'endroit de votre zone :
<!-- #BeginEditable "MonContenu" -->
<p>(MonContenu)</p>
<!-- #EndEditable -->
2) Pour le faire directement dans votre code, il suffit simplement d'ajouter à l'endroit où vous voulez une zone modifiable les 2 commentaires pour la délimiter :
<!-- #BeginEditable "Titre de la zone modifiable" -->
<p>Contenu de ma zone modifiable</p>
<!-- #EndEditable -->
Si vous passer par le gestionnaire de zones modifiables, vous pourrez constater que la zone a bien été prise en compte.
Si vous avez besoin de renommer une zone avec un nom plus explicite pour vous, vous pouvez le faire via le gestionnaire de zones modifiables en sélectionnant la zone et en la renommant dans le champ Nom de la zone.
Ou sinon, vous pouvez le faire aussi depuis le code. Le titre de la zone est délimité par les guillemets.
Créer et éditer un fichier à partir du modèle Web dynamique
Il est possible de créer un nouveau fichier HTML directement depuis votre modèle Web dynamique. Et pour se faire, il y a 2 possibilités :
Fichier > Nouveau > Créer à partir du modèle Web dynamique
Ou
Clic Droit (sur le modèle Web dynamique) > Nouveau à partir du modèle Web dynamique
De ce fait, cela génère votre fichier parmi les onglets de votre interface, mais il n'est pour l'instant pas encore répertorié dans votre site Web via la Liste des dossiers. Il vous suffira simplement de l'enregistrer dans votre site Web pour le voir apparaître dans votre liste.
A l'ouverture de votre fichier, vous pouvez remarquer :
- Dans la fenêtre Code, la plupart des lignes de code sont jaunâtres et les autres non.
- Dans votre fenêtre Design, certaines parties de votre site Web sont grisées et d'autres sont encadrées.
Bien sûr, il s'agit là des différentes zones que vous avez défini en créant vos zones modifiables. Les parties grisées ou jaunâtres étant les zones non modifiables.
D'ailleurs, un signe interdit apparait lorsqu'on survole une zone non modifiable grisée dans la fenêtre Design.
On peut voir en haut du code que la page est attaché au fichier .dwt, ce n'est ni plus ni moins que le chemin relatif de ce dernier (entre les guillement) :
<!-- #BeginTemplate "Modele.dwt" -->
[...]
<!-- #EndTemplate -->
Depuis la fenêtre Code, il est malgré tout possible de faire des modifications dans les parties jaunâtres et donc en principe non modifiable. Mais à partir du moment que vous sauvegardez votre fichier HTML attaché à votre modèle Web dynamique, Expression Web vous préviendra que des modifications ont été faites dans des zones non modifiables.
Malgré ce choix à la sauvegarde de votre fichier, si mettez à jour tout vos fichiers attachés à votre modèle, toutes les modifications seront perdus hormis celles appliquées en zones modifiables.
Donc autant dire que ce n'est pas conseillé de faire des modifications où ce n'est pas permis, sauf si vous détachez le fichier de son modèle Web dynamique correspondant. Celui-ci restera tel quel mais ne sera plus mis à jour au travers de votre modèle Web dynamique si vous viendriez à faire une modification sur celui-ci.
Attacher et détacher un modèle Web dynamique
Outre la méthode du chapitre d'avant, il est possible d'attacher ou de détacher une page à un modèle Web dynamique. Et pour cela, il faut procéder de la façon suivante :
1) Pour détacher un fichier d'un modèle Web dynamique, il faut avant tout sélectionner votre fichier dans votre Liste des dossiers ou alors être tout simplement sur cette page dans votre fenêtre principale.
Et ensuite, aller dans :
Format > Modèle Web dynamique > Détacher du modèle Web dynamique
Une fenêtre progression apparaîtra pour afficher le détail de la manipulation.
2) Pour attacher un fichier à un modèle Web dynamique, la manipulation est légèrement plus complexe que simplement détacher un fichier du modèle Web dynamique.
Il faut pour cela, de la même façon que pour détacher, sélectionner votre fichier dans votre Liste des dossiers ou être sur cette page dans votre fenêtre principale. Puis aller dans :
Format > Modèle Web dynamique > Attacher un modèle Web dynamique...
Une fenêtre Attacher un modèle Web dynamique apparaît pour vous permettre de sélectionner votre modèle et cliquez ensuite sur Ouvrir dès que cela est fait.
Un prompt vous préviendra si vous avez du contenu dans votre page que celui-ci sera à mettre dans une zone modifiable si vous désirez le garder. Cliquez sur Oui. Le fait de cliquez sur Non annulera la manipulation.
Ensuite une autre fenêtre Faire correspondre les zones modifiables fera son apparition, tout en listant les parties à sauvegarder si vous le désirez.
Dans le cas où ne voudriez pas garder son contenu, cliquez sur le bouton Modifier et sélectionner dans la liste déroulante de Nouvelle zone le choix (Aucun).
Sinon de la même manière, vous pouvez choisir la zone modifiable où sera placé l'ancien contenu du Corps (Entre <body></body>) de votre page.
Après validation, vous pouvez retourver votre ancien contenu dans cette zone modifiable. A vous donc de faire un peu le ménage pour garder ce que vous avez besoin.
Pour vérifier que votre page est bien associé au modèle Web dynamique que vous lui avez choisi, il suffit de jeter dans les premières lignes de code de votre page pour trouver :
<!-- #BeginTemplate "Modele.dwt" -->
Ou plus radicalement tout en étant sur votre page, vous allez dans :
Format > Modèle Web dynamique > Ouvrir le modèle Web dynamique
Cela vous ouvrira le modèle correspondant.
Néanmoins, je vous déconseille de placer entre les balises <html></html> directement dans votre codes les lignes
<!-- #BeginTemplate "Modele.dwt" -->
[...]
<!-- #EndTemplate -->
Car à la mise à jour de votre page, le modèle Web dynamique écrasera tout sans exception.
Mettre à jour vos pages attachées à votre modèle Web dynamique
Bien que cela se fasse automatiquement à la sauvegarde du modèle Web dynamique après une modification, il est bien sûr possible de le faire manuellement et d'une manière plus précise.
1) Pour mettre à jour seulement la page sélectionnée, il faut aller dans :
Format > Modèle Web dynamique > Mettre à jour la page sélectionnée
Cela aura pour effet de ne seulement mettre à jour que la page que vous avez ouvert dans votre fenêtre centrale ou celle sélectionnée dans votre Liste des dossiers.
Cela fonctionne également si vous en sélectionnez plusieurs dans votre Liste des dossiers et que vous faites la manipulation. Cela n'affectera que les pages sélectionnés et elles se mettront à jour selon leur modèle Web dynamique respectif.
2) Pour mettre à jour les pages associées d'un modèle Web dynamique, il faut aller dans :
Format > Modèle Web dynamique > Mettre à jour les pages associées
Il est nécessaire alors de sélectionner votre modèle Web dynamique dans votre Liste des dossiers ou encore de l'ouvrir dans votre fenêtre centrale.
Cela fonctionne de la même manière si vous sélectionner plusieurs modèles Web dynamique dans votre Liste de dossier. Cela n'affectera que les pages associées des modèles Web dynamique sélectionnés.
3) Pour mettre à jour toutes les pages d'une seule traite, il faut aller dans :
Format > Modèle Web dynamique > Mettre à jour toutes les pages
Ici peu importe ce que vous avez d'ouvert dans votre fenêtre centrale ou que vous avez sélectionné dans votre Liste de dossiers, cela mettra à jour toutes les pages étant attachées à un de vos modèle Web dynamique. Elles se mettront à jour selon leur modèle Web dynamique respectif.
Plus de détails sur les modèles Web dynamique
Dans cet article, je parle souvent de fichier HTML, mais celui-ci peut être tout aussi bien appliqué sur un fichier ASPX ou encore PHP sans aucun problème. On pourrait d'ailleurs le considérer, en quelque sorte, comme un équivalent de la MasterPage pour ce dernier et qu'on peut très bien envisager de le coupler avec un moteur de template.
Lors de l'enregistrement du fichier créé à partir du modèle Web dynamique, il suffit de lui donner l'extension que vous souhaitez (.html, .aspx, .php).
Un autre détail qui peut avoir aussi son importance : Un modèle Web dynamique ne peut pas être surposé à un autre modèle Web dynamique. Bien que cela puisse paraître tentant, il s'agit là d'une limitation de cet outil. Il ne peut y avoir qu'un seul niveau sous un modèle Web dynamique, autrement dit ses pages attachées.