MovableTypeのメモ

らら
らら

はじめに

ちょこちょこ、過去にやったものをさがすのが面倒なので・・

ウェブページで、日本語タイトルと英語タイトル または、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でフラグ処理

下記みたいになると・・・タグの修正が大変・・・


	<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文だったり、変数つかうといいですよってこと・・

なんだ、かんだで、社内用に・・

関連記事