Dave Taylor answers free tech support questions about a wide variety of business and technical topics, including blogging, iphone help, ipod help, AdSense, MySpace, Sony PSP help, Mp3 players, Windows XP, Windows Vista, Linux, SEO, Mac OS X, Facebook, Twitter and LinkedIn.

Can I have conditional text in a Movable Type template?

Dave, I'm awful curious about how exactly you have the PSP book advert that shows up on your pages related to the Sony PSP, but nowhere else on your site. Is that some fancy trick you're doing with Movable Type, or is that some separate bit of programming wizardry you've done?


Dave's Answer:

I was just explaining this to a friend, actually, so it's convenient that you ask! When I decided that I wanted to have some material show up conditionally, I figured that I could write a simple Perl script that I'd invoke from my individual archive files and that script would look at the page, figure out what category it was in, and then output additional HTML in the case of a match.

Problem was, that's a terrible solution because it's hugely processor intensive and given that I serve up 2-3 pages per second on this server, it'd be a significant burden on the system.

Instead, I dug around in the extensive Movable Type Plug-In Library and came across a plugin called Compare. It lets you have conditional code in your templates based on specific equality tests, including testing for what category or categories match the given entry.

Even better, it's all processed once as the page or pages are rebuilt: because Movable Type creates static pages rather than dynamically generating pages out of a database on demand, it's also far more processor efficient, meaning that each and every visitor has a better experience as their requested page is served up faster. What's not to like about that?

Here's how the code inclusion works. First, just the skeleton:

<MTIfEqual a="[MTEntryCategory]" b="Sony PSP, MP3 Players, Etc.">
  conditional code that matches the specific condition
</MTIfEqual>

You can see that it's pretty straightforward, if a bit awkward. Basically just think "if a = b" and you'll get what's going on.

The final block of code in my actual individual archive template ends up looking like this:

<!-- this is a conditional advert that only shows up with the relevant category -->
<MTIfEqual a="[MTEntryCategory]" b="Sony PSP, MP3 Players, Etc.">

<div class="comments-body"
style="border:1px solid #339;background-color:#eef;padding:10px;color:#333;
margin-bottom:35px;margin-left:25px;margin-right:25px;">

<b>Still Have Sony PSP Questions?</b><br />

Looking for all your Sony PSP answers in one place, organized as a convenient
quick reference work? Then you need <a
href="http://www.askdavetaylor.com/buy/pspbook.html">

<span style="background-color:#ff9;font-weight:bold;">

Dave's Everything Guide to the Sony PSP</span></a>,

150-page ebook ready to download right now!
</div>

</MTIfEqual>

Hope that helps you get everything working on your own blog.



Help others find this article at Del.icio.us, Digg, Netscape, Reddit, and Simpy.


Subscribe!

Never miss another useful Q&A article again! Subscribe to AskDaveTaylor with Google Reader.

Comments

This is now much simpler in MT4.x using the tag:

http://www.movabletype.org/documentation/appendices/tags/ifcategory.html

Posted by: Beau Smith at July 30, 2008 3:45 AM

I have a lot to say, but ...
Starbucks coffee cup I have a lot to say, and questions of my own for that matter, but most of all I'd like to say thank you for all your efforts on this Web site by buying you a chai!

I do have a comment, now that you mention it!









Remember personal info?


Please note that I will never send you any unsolicited commercial email. Ever.

While I'm at it, please note that by submitting a question or comment you're agreeing to my terms of service, which are: you relinquish any subsequent rights of ownership to your material by submitting it on this site.









Uniblue: Free Virus Scan


Join Me At:
Aloha Social Media Summit, Oct 2008


Search
Find just the answers you seek from among our 1700+ free tech support articles by using our Lijit search engine.


Help!





Subscribe to
Ask Dave Taylor!

Add to Google Reader
Add to My Yahoo!
Subscribe in NewsGator Online

RDF   XML

Free Updates!
Sign up and get free weekly updates and special offers on books, seminars, workshops and more.


Recent Entries
Join the List!
Join my author info mailing list, where you'll learn about my upcoming books, speaking gigs, and more!


Book Links
© 2002 - 2008 by Dave Taylor. All Rights Reserved.

Note: This web site is for the purpose of disseminating information for educational purposes, free of charge, for the benefit of all visitors. We take great care to provide quality information. However, we do not guarantee, and accept no legal liability whatsoever arising from or connected to, the accuracy, reliability, currency or completeness of any material contained on this web site or on any linked site.

[whiteboard marker tray]