はじめに
ちょこちょこ、過去にやったものをさがすのが面倒なので・・
ウェブページで、日本語タイトルと英語タイトル または、hero画像とかを個別にだす
本当なら・・ifで。ずらずら書いて・・と・・
もしくは、カスタムフィールドでタイトル英語とかつけてもいいけど・・
<mt:SetVarBlock name="page_folder"><mt:PageFolder><$mt:FolderBasename$></mt:PageFolder></mt:SetVarBlock>
<mt:SetVarBlock name="htmlfile"><$mt:EntryBasename$></mt:SetVarBlock>
<mt:if name="page_folder" eq="company">
<mt:if name="htmlfile" eq="index">
<h2>For Companies</h2>
</mt:if>
<mt:else name="page_folder" eq="service">
<mt:if name="htmlfile" eq="index">
<h2>For Service</h2>
</mt:if>
<mt:else name="page_folder" eq="product">
<mt:if name="htmlfile" eq="index">
<h2>For Product</h2>
<mt:else name="htmlfile" eq="item">
<h2>Product List</h2>
</mt:if>
</mt:if>
連想配列を使うと・・・こんな感じ
<mt:SetVarBlock name="page_folder"><mt:PageFolder><$mt:FolderBasename$></mt:PageFolder></mt:SetVarBlock>
<mt:SetVarBlock name="htmlfile"><$mt:EntryBasename$></mt:SetVarBlock>
<mt:ignore>english_id フォルダ名_htmlファイル名</mt:ignore>
<mt:SetVar name="english_title{company_index}" value="For Companies">
<mt:SetVar name="english_title{service_index}" value="For Service">
<mt:SetVar name="english_title{product_index}" value="For Product">
<mt:SetVar name="english_title{product_item}" value="Product List">
<mt:SetVarBlock name="english_id"><mt:Var name="page_folder">_<mt:Var name="htmlfile"></mt:SetVarBlock>
<!--
<mt:Var name="english_id">
-->
<h2><mt:Var name="english_title{$english_id}"></h2>
フォルダーの英語部分を先頭に大文字にするだけは・・こんな感じ・・
<mt:GetVar name="page_folder" capitalize="1">
あとは、ifでフォルダー毎でデザインかえる場合など。
Include moduleでテンプレートモジュールで下記みたいに、フォルダー名の日本語ほうで呼び出すのも、下記みたいに短くできます。
ただ、テンプレートモジュールの量が増えますが・・手法としてはほかで応用できるかと思います。
<mt:SetVarBlock name="page_folder_name"><mt:PageFolder><$mt:FolderLabel$></mt:PageFolder></mt:SetVarBlock>
<mt:Include module="$page_folder_name">
ifつかうと・・
<mt:if name="page_folder" eq="company">
<mt:Include module="ヘッダー1">
<mt:else name="page_folder" eq="service">
<mt:Include module="ヘッダー2">
<mt:else name="page_folder" eq="product">
<mt:Include module="ヘッダー3">
</mt:if>
ウェブページで、日本語タイトルが長い時・・
エンドユーザーに、BRつきのタイトルとなしのもの2つれてくださいとは、なかなか言えない時・・
本来、BRとかいれてしまうと、音声読み上げ、SEOに影響するので、デザイン段階で、改行しないようにするのがよいです。
ただ、タイトル変更されると・・・
<mt:SetVarBlock name="page_title"><$MTPageTitle$></mt:setvarblock>
<mt:page_title setvar="cnvtitle">
<mt:If name="cnvtitle" eq="サンプルサンプルサンプルサンプル">
<h2><mt:var name="cnvtitle" replace="サンプルサンプルサンプルサンプル","サンプルサンプル<br class="spOnly">サンプルサンプル"></h2>
<mt:ElseIf name="cnvtitle" eq="テストテストテストテスト">
<h2><mt:var name="cnvtitle" replace="テストテストテストテスト","テストテスト<br class="spOnly">テストテスト"></h2>
<mt:else>
<h2><mt:page_title></h2>
</mt:if>
カテゴリ毎で絞り込む
コンテンツタイプでもcategory=ってやっちゃうのでメモ
コンテンツタイプ
<mt:Contents content_type="コンテンツタイプ名" field:カテゴリのコンテンツフィールドユニークID="カテゴリ名">
ループ
</mt:Contents>
記事の場合
<MTEntries category="カテゴリ名">
ループ
</MTEntries>
MTでフラグ処理
<MTEntries category="カテゴリ名">
ループ
</MTEntries>
下記みたいになると・・・タグの修正が大変・・・
<mt:if name="page_folder" eq="company">
<mt:if name="htmlfile" eq="index">
<div>
<img src="a.jpg">
<h2>見出し</h2>
<p>コメントコメントコメントコメント</p>
</div>
</mt:if>
<mt:else name="page_folder" eq="service">
<mt:if name="htmlfile" eq="index">
<div>
<img src="a.jpg">
<h2>見出し</h2>
<p>コメントコメントコメントコメント</p>
</div>
</mt:if>
<mt:else name="page_folder" eq="product">
<mt:if name="htmlfile" eq="index">
<div>
<img src="a.jpg">
<h2>見出し</h2>
<p>コメントコメントコメントコメント</p>
</div>
<mt:else name="htmlfile" eq="item">
<h2>見出し</h2>
</mt:if>
<mt:else>
<h2>見出し</h2>
</mt:if>
下記みたいにフラグで処理すると
HTMLタグの部分は1か所に・・・
<mt:Var name="flg" value="0">
<mt:SetVar name="comment" value="">
<mt:if name="page_folder" eq="company">
<mt:if name="htmlfile" eq="index">
<mt:Var name="flg" value="1">
<mt:SetVar name="comment" value="コメントコメントコメントコメント">
</mt:if>
<mt:else name="page_folder" eq="service">
<mt:if name="htmlfile" eq="index">
<mt:Var name="flg" value="1">
<mt:SetVar name="comment" value="コメントコメントコメントコメント">
</mt:if>
<mt:else name="page_folder" eq="product">
<mt:if name="htmlfile" eq="index">
<mt:Var name="flg" value="1">
<mt:SetVar name="comment" value="コメントコメントコメントコメント">
<mt:else name="htmlfile" eq="item">
<mt:Var name="flg" value="0">
<mt:SetVar name="comment" value="コメントコメントコメントコメント">
</mt:if>
</mt:if>
<mt:if name="flg" eq="1">
<div>
<img src="a.jpg">
<h2><mt:PageTitle></h2>
<p><mt:Var name="comment"></p>
</div>
<mt:else>
<h2><mt:PageTitle></h2>
</mt:if>
フラグのことに一緒に下記とか。画像を変えたりとかも
<mt:Var name="img" value="a.jpg">
ifの制御
下記で書くと4行
<mt:if name="page_folder" eq="company">
<mt:Var name="flg" value="1">
<mt:else>
<mt:Var name="flg" value="0">
</mt:if>
下記の書き方だと。。3行
先のデフォルト値入れておいて、条件のときだけ値をセット
これはフラグ処理のときに有効・・・
<mt:Var name="flg" value="0">
<mt:if name="page_folder" eq="company">
<mt:Var name="flg" value="1">
</mt:if>
下記にしちゃうと2個でます。。
<h2>見出し</h2>
<mt:if name="page_folder" eq="company">
<h2>カスタム見出し・・</h2>
</mt:if>
直接出力する場合は、下記の書き方が正解・・
<mt:if name="page_folder" eq="company">
<h2>見出し</h2>
<mt:else>
<h2>カスタム見出し・・</h2>
</mt:if>
さいごに
まぁ。if文だったり、変数つかうといいですよってこと・・
なんだ、かんだで、社内用に・・