Dreamweaverのテンプレートタグで条件分岐を行う方法
2009年
1月 9日
今回は、TemplateBeginMultipleIfというDreamweaverのテンプレートタグを使用して、
条件分岐を定義する方法について解説します。
ページによって異なるヘッダーを表示する方法を例にします。
いくつか方法がありますが、
今回はTemplateBeginMultipleIfを使用して実装します。
3つのタイプのヘッダーを用意しました。
■A.ロゴがh1でマークアップされており、ナビゲーションが有るヘッダー
<div id="header">
<div class="logo">
<h1 class="logo_001"><a href="/"><img src="/shared/images/header_logo.gif" alt="ロゴ1" width="260" height="38" /></a></h1>
<!-- /logo --></div>
<ul class="link">
<li class="menu_001"><a href="#">会社概要</a></li>
<li class="menu_002"><a href="#">採用情報</a></li>
<li class="menu_003"><a href="#">お問い合わせ</a></li>
</ul>
<!-- /header --></div>
■B.ロゴがdivでマークアップされており、ナビゲーションが有るヘッダー
<div id="header">
<div class="logo">
<div class="logo_001"><a href="/"><img src="/shared/images/header_logo.gif" alt="ロゴ1" width="260" height="38" /></a></div>
<!-- /logo --></div>
<ul class="link">
<li class="menu_001"><a href="#">会社概要</a></li>
<li class="menu_002"><a href="#">採用情報</a></li>
<li class="menu_003"><a href="#">お問い合わせ</a></li>
</ul>
<!-- /header --></div>
■C.ロゴがdivでマークアップされており、ナビゲーションが無いヘッダー
<div id="header">
<div class="logo">
<div class="logo_001"><a href="/"><img src="/shared/images/header_logo.gif" alt="ロゴ1" width="260" height="38" /></a></div>
<!-- /logo --></div>
<!-- /header --></div>
まず、head内に下記のソースを記述します。
下記の記述を行った場合、ヘッダーのタイプの初期値はAとなります。
<!-- TemplateParam name="headerType" type="text" value="A" -->
次にbody内のヘッダーを表示したい箇所に下記のソースを記述します。
<!-- TemplateBeginMultipleIf -->
<!-- TemplateBeginIfClause cond="headerType == 'A'" --> 表示する内容 <!-- TemplateEndIfClause -->
<!-- TemplateBeginIfClause cond="headerType == 'B'" --> 表示する内容 <!-- TemplateEndIfClause-->
<!-- TemplateBeginIfClause cond="headerType == 'C'" --> 表示する内容 <!-- TemplateEndIfClause -->
<!-- TemplateEndMultipleIf -->
「表示する内容」と記述した箇所にそれぞれのヘッダーのソースを記述し、テンプレートとして保存すれば作業は終了です。
ソースは下記のようになります。
<!-- TemplateBeginMultipleIf -->
<!-- TemplateBeginIfClause cond="headerType == 'A'" -->
<div id="header">
<div class="logo">
<h1 class="logo_001"><a href="/"><img src="/shared/images/header_logo.gif" alt="ロゴ1" width="260" height="38" /></a></h1>
<!-- /logo --></div>
<ul class="link">
<li class="menu_001"><a href="#">会社概要</a></li>
<li class="menu_002"><a href="#">採用情報</a></li>
<li class="menu_003"><a href="#">お問い合わせ</a></li>
</ul>
<!-- /header --></div>
<!-- TemplateEndIfClause -->
<!-- TemplateBeginIfClause cond="headerType == 'B'" -->
<div id="header">
<div class="logo">
<div class="logo_001"><a href="/"><img src="/shared/images/header_logo.gif" alt="ロゴ1" width="260" height="38" /></a></div>
<!-- /logo --></div>
<ul class="link">
<li class="menu_001"><a href="#">会社概要</a></li>
<li class="menu_002"><a href="#">採用情報</a></li>
<li class="menu_003"><a href="#">お問い合わせ</a></li>
</ul>
<!-- /header --></div>
<!-- TemplateEndIfClause-->
<!-- TemplateBeginIfClause cond="headerType == 'C'" -->
<div id="header">
<div class="logo">
<div class="logo_001"><a href="/"><img src="/shared/images/header_logo.gif" alt="ロゴ1" width="260" height="38" /></a></div>
<!-- /logo --></div>
<!-- /header --></div>
<!-- TemplateEndIfClause -->
<!-- TemplateEndMultipleIf -->
以上の作業を行うことによって、テンプレートから作成したhtmlのテンプレートプロパティにA~Cの値を設定し、
ページによって異なるヘッダーを表示することが可能です。
このブログ記事に対するトラックバックURL
http://blog.creativehope.co.jp/mt/mt-tb.cgi/74

