Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Using template expressions

From: Dreamweaver CS3 Beyond the Basics

Video: Using template expressions

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.

Using template expressions

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.

Now what that is basically saying, the @ symbols and surrounding document styles is saying inside of my parenthesis is a template expression and the template expression itself is just JavaScript and text. And what this expression is doing is saying, please evaluate the value of the document styles and place that value here. So to that effect, it's going and finding the template parameter, document styles, finding the value for that and then replacing this at runtime.

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.

Show transcript

This video is part of

Image for Dreamweaver CS3 Beyond the Basics
Dreamweaver CS3 Beyond the Basics

102 video lessons · 38726 viewers

James Williamson
Author

 
Expand all | Collapse all
  1. 2m 3s
    1. Welcome
      1m 17s
    2. Using the exercise files
      46s
  2. 1h 23m
    1. Reviewing the Coding toolbar
      8m 42s
    2. Customizing the Coding toolbar
      9m 52s
    3. Taking advantage of Code Hinting
      7m 20s
    4. Using snippets and shortcuts
      11m 10s
    5. Using the Quick Tag Editor
      5m 18s
    6. Using Find and Replace
      9m 50s
    7. Regular expressions
      5m 39s
    8. Using Bridge with Dreamweaver CS3
      8m 28s
    9. Round-trip editing with Photoshop CS3
      3m 40s
    10. Leveraging image variables in Photoshop CS3
      7m 32s
    11. Integrating external variables into your workflow
      6m 16s
  3. 37m 26s
    1. Understanding the CSS Styles panel
      7m 59s
    2. Understanding the Cascade
      5m 50s
    3. Understanding Inheritance
      5m 8s
    4. Understanding Specificity
      7m 5s
    5. Managing CSS styles
      5m 4s
    6. Using Design-Time style sheets
      6m 20s
  4. 2h 19m
    1. Using the new CSS template pages
      5m 59s
    2. Understanding DIV tag structure and layout
      12m 0s
    3. Understanding the CSS box model
      10m 0s
    4. Using absolute and relative positioning
      8m 35s
    5. Understanding floating elements
      7m 9s
    6. Clearing floats
      7m 19s
    7. Using floats to control page layout
      3m 45s
    8. Building structure and assigning IDs
      10m 19s
    9. Applying basic styling to structured content
      11m 14s
    10. Positioning container elements
      11m 4s
    11. Enhancing layouts with background graphics
      11m 48s
    12. Creating faux columns with background graphics
      8m 55s
    13. Creating rounded corners with background graphics
      9m 17s
    14. Building navigation with CSS
      16m 57s
    15. Using Dreamweaver's Browser Check feature
      5m 31s
  5. 53m 22s
    1. Creating properly structured forms
      6m 30s
    2. Creating accessible forms
      6m 41s
    3. Using CSS to lay out form structure
      7m 40s
    4. Creating vertical columns for form elements
      7m 48s
    5. Adding user feedback
      5m 52s
    6. Applying advanced styling to forms
      8m 11s
    7. Client-side form validation
      4m 17s
    8. Validating forms with the Spry Validation tools
      6m 23s
  6. 1h 20m
    1. Understanding the Spry framework
      3m 43s
    2. Defining a data source for use in Spry
      3m 56s
    3. Creating a Spry table
      8m 8s
    4. Using the Spry widgets
      8m 11s
    5. Connecting various data sets
      4m 50s
    6. Understanding Spry widget structures
      7m 1s
    7. Applying custom styles to Spry widgets
      6m 24s
    8. Applying additional custom styles to Spry widgets
      8m 46s
    9. Controlling Spry widget behaviors with JavaScript
      6m 0s
    10. Controlling Spry widget animations with JavaScript
      9m 31s
    11. Creating effects with Spry behaviors
      4m 42s
    12. Hand-coding Spry
      9m 11s
  7. 1h 11m
    1. Creating a base template
      8m 6s
    2. Creating editable attributes
      6m 26s
    3. Creating a new page from a template
      7m 42s
    4. Applying a template to an existing page
      4m 36s
    5. Creating nested templates
      5m 24s
    6. Using repeating regions
      6m 34s
    7. Creating editable and non-editable optional regions
      6m 0s
    8. Using template parameters
      7m 26s
    9. Using template expressions
      9m 59s
    10. Using conditional template expressions
      8m 54s
  8. 54m 40s
    1. Examining XML structure
      2m 44s
    2. Creating an XML document
      9m 9s
    3. Using the CDATA structure
      5m 7s
    4. Creating an XSLT file
      4m 33s
    5. Binding data from an XML to an XSLT document
      5m 6s
    6. Inserting repeating regions into an XSL document
      5m 16s
    7. Creating a client-side XSL transformation
      2m 52s
    8. Styling a remote RSS feed
      7m 29s
    9. Creating a server-side XSL transformation
      5m 31s
    10. Writing XSL expressions
      6m 53s
  9. 1h 2m
    1. Overview of building dynamic websites
      1m 35s
    2. Installing PHP, MySQL, and Apache on Mac
      3m 22s
    3. Installing PHP, MySQL, and Apache on Windows
      3m 54s
    4. Creating a MySQL database
      3m 16s
    5. Defining a testing server and database bindings
      6m 14s
    6. Creating a database recordset
      4m 35s
    7. Adding dynamic content to the page
      5m 14s
    8. Creating repeating regions of dynamic content
      7m 6s
    9. Filtering database records
      7m 39s
    10. Using the Live Preview
      10m 22s
    11. Passing URL parameters
      4m 23s
    12. Dynamically generating links
      5m 18s
  10. 57m 9s
    1. Understanding behaviors
      5m 16s
    2. Installing additional behaviors
      3m 39s
    3. Planning to create a custom behavior
      3m 42s
    4. Examining existing behaviors
      5m 32s
    5. Building a behavior function
      7m 23s
    6. Creating an Action file
      6m 48s
    7. Enabling behavior functions
      9m 1s
    8. Initializing the user interface for a behavior
      3m 9s
    9. Loading behaviors in Dreamweaver
      6m 47s
    10. Testing and debugging behaviors
      5m 52s
  11. 27m 12s
    1. Running reports
      7m 41s
    2. Checking and validating links
      3m 40s
    3. Using cloaking
      5m 42s
    4. Using Check In/Check Out
      4m 3s
    5. Using Design Notes
      6m 6s
  12. 20s
    1. Goodbye
      20s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Dreamweaver CS3 Beyond the Basics.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

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.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.