jQTouchを用いたMT用iphoneテンプレートセット[設定編]

前回のエントリーにて公開した「jQTouchを用いてMT用iphoneテンプレートセット」についての設定内容です。

iphone用に出力するページについては、テンプレート・モジュールを利用して、独自の設定が行われるようにしてます。
設定を行っている箇所は、追加作成した「iphone_共通設定」(iphone_module_common.mtml)に記述されてます。

仕組みとしては、iphone用サイトで共通して読み込ませている「iphone_HTMLヘッダー」に「iphone_共通設定」をインクルードさせてます。
■iphone_共通設定 -> iphone_HTMLヘッダー -> 出力先
といった具合です。

テンプレート導入初期値として、iphone用サイトは「 i 」ディレクトリ直下を前提としています。
これを他のディレクトリ名に変更した場合は、この「iphone_共通設定」の内容を少し書き換える必要があります。
他にも、「iphone_アーカイブインデックス」の出力先を変えた場合や、アーカイブの出力先を変更したい場合なども、この「iphone_共通設定」を書き換える必要があります。

定義している設定内容

「 i 」ディレクトリの定義・変更

iphone用サイトトップを「i」ディレクトリ以外に変更する場合は、以下の箇所を書き換えます。最後のスラッシュは消さないようにして下さい。

<mt:SetVarBlock name="dir_iphone">i/</mt:SetVarBlock>

iphone用サイトトップの定義

以下の箇所では、iphone用サイトのトップを定義してます。
通常、変更する必要はありません。

<mt:SetVarBlock name="iphoneURL"><$mt:BlogURL$><$MTGetVar name="dir_iphone"$></mt:SetVarBlock>

アーカイブインデックスの定義

以下の箇所では「iphone_アーカイブインデックス」により出力されるURL、ファイル名を定義してます。
iphone_アーカイブインデックス・テンプレートの出力先を変更した場合、こちらの内容も書き換えて下さい。

<mt:SetVarBlock name="archive_index"><$MTGetVar name="dir_iphone"$>archive_index.html</mt:SetVarBlock>

初期設定:i/archive_index.html
$dir_iphone = i/ となります。

エントリーの出力先を定義:後述

以下の箇所は、エントリーの出力先を定義してます。詳細は後述。

<mt:SetVarBlock name="entry_detail_path">details/</mt:SetVarBlock>

サイトのアーカイブURLを定義

以下の箇所では、サイトのアーカイブURLを定義してます。
通常、変更する必要はありません。

<mt:SetVarBlock name="blog_archive_url"><$mt:BlogArchiveURL$></mt:SetVarBlock>
<mt:SetVarBlock name="blog_archive_url_i"><$mt:BlogArchiveURL$><$MTGetVar name="dir_iphone"$></mt:SetVarBlock>

「About」の表示設定

以下の箇所では、ページ右上に表示される「About」の出力表示を調整出来ます。
「1」・・・表示、「0」・・・非表示

<$mt:SetVar name="is_about" value="1"$>

サイトトップでは出すけど他では出さない、等の調整は、iphone_ヘッダー 及び 各テンプレートを書き換えて下さい。

トップの記事数を定義

以下の箇所では、iphone用サイトのトップに表示される最新記事数を定義してます。
数を変更して再構築すると、表示数が指定の数に反映されます。

<$mt:Var name="top_limit" value="7"$>

アーカイブ用URLの生成

エントリーやカテゴリー等、各アーカイブの出力先URLは、優先度チェックを入れずに利用するため、例えば <$mt:EntryPermalink$> のようなタグを使う事が出来ません。
そのため、iphone用のページに対しては、対応するURLを生成する事で、各アーカイブへのリンクURLを定義してます。

また、各アーカイブ用リンクのMTタグで利用している
<$mt:~ replace="$A","$B"$>
については、MTタグにより出力される内容のうち、A 部分を B に置き換える動きをします。
replace | グローバル・モディファイアリファレンス

エントリー・アーカイブ

以下の箇所で、エントリー用URLを定義してます。
※見易さを考慮し改行してます。実際は改行せずに定義します。

<MTSetVarTemplate name="EntryIphoneURL">
<mt:SetVarBlock name="entry_url"><$mt:EntryPermalink$></mt:SetVarBlock>
<mt:SetVarBlock name="entry_archive_url_i"><$mt:BlogArchiveURL$><$MTGetVar name="dir_iphone"$><$MTGetVar name="entry_detail_path"$><$mt:EntryID pad="1"$><$mt:BlogFileExtension$></mt:SetVarBlock>
<$mt:EntryPermalink replace="$entry_url","$entry_archive_url_i"$>
</MTSetVarTemplate>

$entry_detail_path = <mt:SetVarBlock name="entry_detail_path">details/</mt:SetVarBlock>
になります。

iphone用エントリー・ページのURL初期値は、
アーカイブURL/i/details/エントリーID(6桁).拡張子 としてます。

エントリー・アーカイブのマッピングを見てみると、以下になります。
i/details/%e%x

つまり、エントリー・アーカイブのマッピングを変更した場合は、上記箇所にて出力先URLを同等のものに変更する必要があります。

カテゴリー・アーカイブ

初期値として、アーカイブURL/i/カテゴリまでのパス を指定してます。
マッピング:i/%c/%i

<MTSetVarTemplate name="CategoryIphoneURL"><$mt:CategoryArchiveLink replace="$blog_archive_url","$blog_archive_url_i"$></MTSetVarTemplate>

アーカイブURLを 「i」付きのURLに置換してます。

月別アーカイブ

初期値として、アーカイブURL/i/月別アーカイブまでのパス を指定してます。
マッピング:i/%y/%m/%i

<MTSetVarTemplate name="ArchiveLinkIphoneURL"><$mt:ArchiveLink replace="$blog_archive_url","$blog_archive_url_i"$></MTSetVarTemplate>

アーカイブURLを 「i」付きのURLに置換してます。

ウェブページ・アーカイブ

以下の箇所で、ウェブページ用URLを定義してます。
※見易さを考慮し改行してます。実際は改行せずに定義します。

<MTSetVarTemplate name="PageIphoneURL">
<mt:SetVarBlock name="blog_url"><$mt:BlogURL$></mt:SetVarBlock>
<mt:SetVarBlock name="page_archive_url_i"><$MTGetVar name="iphoneURL"$></mt:SetVarBlock>
<$mt:PagePermalink replace="$blog_url","$page_archive_url_i"$>
</MTSetVarTemplate>

ウェブページの場合、アーカイブURLの設定に関わらず、サイト直下のマッピングで指定した位置にファイルを出力します。
そのため、通常のサイトURLの箇所を「i」付きのものになるよう置換してます。

その他の定義について

ナビゲーションを定義してます。
各アーカイブでの「前へ(Prev)、次へ(Next)」、フッター上部のトップ、アーカイブ・インデックスへの定義になります。

あとがき

エントリー・アーカイブや月別アーカイブなどの出力先を変更する場合は、以下のマッピング情報をもとに調整すると良いです。
アーカイブマッピングで利用するアーカイブファイル名の定義

パスの設定に関しては、ほんと色んなひとにより違う状況があるので、全部が全部対応出来ないかもしれませんね。。。
もっと良い設定方法があるとは思うので、何か気付いた事があれば、アドバイスとか貰えたら嬉しいです_(..)_

あとがき:どうしようか悩んだところ

MovableTypeのテンプレートセットを作る際には、config.yaml ファイルを用意する事になります。
その際、インデックステンプレートにおいては、以下の箇所の名称を利用して、
<$mt:Link template="~"$> タグを用いてリンクさせる事が出来ます。

index:
  iphone_main_index:
    label: iphone_メインインデックス
    outfile: i/index.html
    rebuild_me: 1

これを利用しても良かったんですが、カッチリ定義し過ぎるよりは、改変する幅があった方が良いかな?と思い、ファイルの出力指定と共通設定で調整出来る形にしてみました。
どっちが良いのかなぁ・・・。

▲ to Top

トラックバック(1)

    Twitter フォロワーの某氏(偽スリランカ人... 続きを読む

▲ to Top