Dreamweaverの活用法、HTML・CSSなどのコーディング技術を発信する、クリエイティブホープのマークアップエンジニアによるBlog(ブログ)です。

プロフィール

(株)クリエイティブホープ
Webインテグレート事業部
Webクラフトユニット
マークアップエンジニア
藤田 洋正(fujita hiromasa)

昼夜を問わずHTML、CSS、ブラウザとの格闘に明け暮れている。

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