Serving a different image for each page in CMSMS

In one of the sites I’m working on, there is a large featured image that is different for each product page, but is the same for the rest of the pages on the site.

Heres how I did it.

1. In each page where you need a different featured image, go to the options tab, and set the Image variable

2. This variables is accessible in the menu manager as $node->image. To use them in a template, you can use the tag {page_image}. However, I needed to be able to check if there was an image because if there is no image set, I wanted to be able to have a default image. Since {page_image} is a tag and not a variable, you can’t just do isset(page_image). Instead, you first need to assign it’s output to an image.

You can do that like this:

{capture name="is_page" assign='is_page_image'}{page_image}{/capture}

3. Now that we have a variable, we can check if the page we’re on has an image, and then display the image. If it doesn’t, we can display our default image.

{if ($is_page_image ne '')}
<a href="#"><img src="uploads/images/{page_image}" alt="{title}" width="870" height="382" /></a>
{else}
<a href="#"><img src="images/img-ad.jpg" alt="default image description" width="870" height="382" /></a>
{/if}

4. Done! Now on each page, the page image is displayed, and if there isn’t one, a default image is displayed.

If you enjoyed this post, make sure you say hi on Twitter, subscribe to my RSS feed or subsribe to posts by email!

Related posts:

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

No comments yet... Be the first to leave a reply!