Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
Our nested template now contains a template parameter that we can use to change elements on our page. Now to do that, we are also going the have to use something known as a template expression. We have already used template expressions when we created our main template. So, I am just going to open that up and we will take a quick look at that. And if you remember, in our main template certain attribute values are editable, and if we look at the code of our main template, on line number 8 we have a link tag and we have the following template expression. I am just going to highlight this so you will know exactly which one I am talking about. It has the two @ symbols and the parenthesis and it says _document and then inside that, it says document styles.
So that means that any template parameter that we create manually, we can use expressions to go ahead and pass that value anywhere along our page. So I am going to go ahead and close the main template and if I had made any changes I would definitely say no to any saving, but no changes were made there. So that's what we need to do now. We are going to create some template expressions on our page that allow us to take the parameter that we created and just sort of plug that in and I am going to switch back over to Design View. I am still in the cheek_artists_bios page. This is our nested template that we are creating, and there are a few things that change in each biography page.
That would be the Banner Graphic, the artist name, the picture of the artist, the information of the artist, and the Gallery link. If you are thinking about using template parameters and template expressions earlier on in the process, it can really affect your planning and I just want to point a few things out about these. When I highlight over the Banner Graphic, the source actually says artist_banner. Well, I am going to switch over to my Files panel, I'll open up the images directory and I am going to open up the banners. I will expand this out a little bit so that we can see the names and you can see that each of our banners has joe_banner, jen_banner, josh_banner. So it's just their name and then _banner. Each graphic is exactly the same just with the name of the artist in front of it.
If I look at the headshot of Aimee, the name of that is Aimee_head. So once again, the name of the artist comes right before _head. The template parameter we created is the name of the artist. So in both the case of the banner graphic and the head graphic, I can simply take the artist name and replace what's already there using template expressions. I can do the same thing down at the bottom with the gallery link. If you look in the Properties inspector you can see that the link is linking to Aimee. htm. Well, each of the gallery pages just simply uses the artist's names, so Aimee, Ben, Josh, Chris, so forth and so on.
So again, that's another opportunity for us to use template expressions. To take that even further, the link is always going to say Aimee's Gallery or Ben's Gallery or Chris's Gallery, so that's another place that we can use this template expression. So once you start thinking about template parameters and then maybe plugging in those values onto your page, it becomes really easy to see how proper planning can just make that so much easier. I am going to switch over to Code View and we are going to start inserting a couple of template expressions on the page. Even though in Design View, you can use the Properties inspector to pass template expressions along for the link attributes and things of that nature. I really prefer to this in code. That way, I know it's is one correctly.
So I am going to scroll up until I find my banner graphic and it's around line 29. Now I need to change this and replace the name artist with a template expression. So I am going to highlight just the word artists, and this is the template expression that I am going to type in. I am going to type in the two @ symbols and then a parenthesis and I am going to type in currentArtist. Now remember that has to be spelled exactly the way you spelled the template parameter and notice that it is case sensitive. I will close my parenthesis.
I will close the template expression by using the two @ symbols. It will evaluate the value of current artist in a page and it will plug that value in at this location. Now there is one problem that you need to be aware of when template expressions are used in the middle of a link like this. When we build client pages based off of a template page, Dreamweaver automatically updates the link reference so that it is document relative to your new page. Well, that's not going to happen if you have a template expression. Placing a template expression anywhere in your code instantly makes that code uneditable by anything else. So we need to go ahead and make sure that our link is going to be document relative to the bios page, and when you are in the bios page, you have to go up a directory, find the Images and then we can find our banner.
So we are going ../_images/_banners. So that's the proper path that's exactly what we need. If your template directory was maybe located someplace else or the bios page was several levels down, we would need to take that into account. I am going to scroll down to line 33 where we have Aimee's headshot. Rather than having to type this again, I am just going to copy the template expression from above and paste it in the place of Aimee's name again. Now you could make a snippet out of this if you were going to be using the same template expression over and over again.
Again, I have got to make sure that the path is correct and the bios page will go up a directory to get to our root and we will go in the Images directory and to artist and find that graphic. So that is perfect. Now the next thing that we are going to add a template expression to is at the very bottom of our main content. So I am going to scroll down until I find the galleries/aimee.htm. Now remember, earlier when we made the main content editable region, we left the link outside of the editable region and this is why. If you want to use a template expression inside an editable region, you are in for a rude surprise.
A template expression will automatically make a region non-editable. That's why for a lot of developers, when they have a nested template and they don't want somebody to edit one of the regions in the root level template, they will just go ahead and pass this expression in, double @@ signs, double parenthesis, double @@ signs. That will take an editable region and turn off the editing capabilities of it. So that's a nice little trick there. But we will go ahead and highlight Aimee's name and paste in that template expression again. So now, it's going to look at the artist name and it's going to plug it in directly there. Again, we have to make sure that the link is relative to the bio documents, which is up a directory. Into the Galleries Directory and find the file, and it is. So that's perfect.
Okay, we are almost finished but we have one more template expression that we need to do. As I mentioned before, it would be really nice if the name of the link didn't have to be edited either. And since we are passing a parameter that includes the artist's first name, well, that's really simple to do. So we will highlight Aimee's name and we will go ahead and paste it in our template expression there as well. So we will go ahead and save this and we get that little error message. So now that we have saved it, let's build a couple of pages off of that and see our template parameter and template expressions in action. I am going to go ahead and close my template and I am going to go to the File and choose New. I will create a brand new page, so I am going to choose Page from template and we will do the cheek_artists_bios. We will click Create, and I am just going to save this page in the bios folder and I am actually going to replace the existing Aimee file. So I will title it Aimee. htm and when it prompts me, I will say Yes to replacing that.
Now if I switch over to Design View, notice that the banner graphic and the headshot come in exactly where I expected them to come in. Now why is that? Remember the default value of the template parameter is Aimee, so Aimee is being substituted in the source for the banner graphic and for the headshot. If I switch over to Code View and scroll down, I can see that Aimee is being used for the Gallery link and oh, oh, we see that Aimee is being used here for the Gallery Text too, but it's lower case, so that might be a problem. I will switch back to Design View, we will scroll down and actually, it's upper case here and that's the magic of CSS. So we have written a specific style for this link that's telling it to capitalize anything that it might find and that is going to compensate for the fact that all the artists name are lower case in the parameter.
Let's try changing the parameter value and seeing what that does for us. So I am going to close this file, we will go to File > New and we will create a new one based off of the bios template, click Create. Let's do a save here, and we will save this one in the same folder and we will save this one as ben.htm and again, it will prompt us if we want to replace, say Yes. And it's supposed to be Ben Wilson, but all of Aimee's information has come in. I am going to replace the artist name with Ben Wilson, and now I need to change the parameter to see if it will update all of the rest of the page. So I am going to go up to Modify > template Properties, the only parameter that we have in our nested templates is the current artist, so I am going to change that from Aimee to Ben, click OK.
Now notice, the banner graphic changes, the headshot changes and if we scroll down, now instead of Aimee's Gallery, it says Ben Gallery and Ben's link has updated as well. Perfect! That's exactly what we were hoping for. Well, now that we have seen how helpful template expressions can be, our next exercise will take template expressions one step further by adding some conditional logic to the markup, so that it makes decisions based upon whether a parameter is present or not.
Get unlimited access to all courses for just $25/month.Become a member
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.
Your file was successfully uploaded.