最近TVCMで見かけた「高濃度茶カテキン飲料 炭酸」が気になっています。以前、お茶バージョンを飲んだ主人に聞いたところ「まずい」の一言でしたが、この炭酸バージョンなら飲みやすいかも・・・と挑戦してみようか思い迷っているhiakoです。
「MTテンプレートセットの作成手順(1)」に引き続き、MTのテンプレートセットの作成手順をご紹介します。
テンプレート使用宣言ファイル(Pluginファイル)の制作
では、実際に制作へ取り掛かっていきましょう。MTサイトで自作も出来ますよ~っと紹介してある「テンプレートセットの登録」とは一体どういったものかを検証するために今回は作成したので、シンプルに2カラムのみとしました。
MTサイトからダウンロードしたベースとなるPerl版サンプルを解凍すると、下の画像のように1フォルダ1ファイルがあるかと思います。「my_plugin.pl」というファイルが使用するテンプレートなどを宣言し、それ自身がPluginとなるPerlファイルです。
Perlファイルをテキストエディタで開き、編集してみましょう。(注:ファイル名は変更しないでくださいね。)
package MT::Plugin::MyPlugin; use strict; use MT::Plugin; @MT::Plugin::MyPlugin::ISA = qw(MT::Plugin); use vars qw($PLUGIN_NAME $VERSION); $PLUGIN_NAME = 'MyPlugin'; $VERSION = '0.1'; use MT; my $plugin = new MT::Plugin::MyPlugin({ name => $PLUGIN_NAME, version => $VERSION, description => 'MyPlugin Description.', author_name => 'Plugin Author Name', author_link => 'http://plugin.author/url/', }); MT->add_plugin($plugin); sub init_registry { my $plugin = shift; $plugin->registry({ template_sets => { my_set => { label => "My Template Set", base_path => 'templates/', order => 100, templates => { index => { 'homepage' => { label => 'My Homepage', outfile => 'index.php', rebuild_me => '1', }, }, individual => { 'entry' => { label => 'Blog Entry', mappings => { entry_archive => { archive_type => 'Individual', preferred => '0', }, }, }, }, archive => { 'another_entry' => { label => 'Another Blog Entry', mappings => { entry_archive => { archive_type => 'Individual', file_template => '%c/%f', preferred => '1', }, }, }, 'entry_listing' => { label => 'Blog Entry Listing', mappings => { monthly => { archive_type => 'Monthly', }, category => { archive_type => 'Category', file_template => '%c/index.html', }, }, }, }, system => { 'search_results' => { label => 'Search Results', description_label => '', }, }, module => { 'foo' => { label => 'Foo Module', }, }, }, }, }, }); } 1;
package MT::Plugin::hiako; use strict; use MT::Plugin; @MT::Plugin::hiako::ISA = qw(MT::Plugin); use vars qw($PLUGIN_NAME $VERSION); $PLUGIN_NAME = 'hiakoPlugin'; $VERSION = '1.0'; use MT; my $plugin = new MT::Plugin::hiako({ name => $PLUGIN_NAME, version => $VERSION, description => 'hiako@KIDS-WAYが検証のために作成してみたテンプレートセットプラグインです。2カラムにしか対応しておりません。', author_name => 'hiako', author_link => 'http://www.dc-d.jp/', }); MT->add_plugin($plugin); sub init_registry { my $plugin = shift; $plugin->registry({ template_sets => { hiako1_set => { label => "hiako Template", base_path => 'templates/', order => 20, templates => { index => { 'index_homepage' => { label => 'ホーム', outfile => 'index.html', rebuild_me => '1', }, 'index_blog' => { label => 'ブログのメインページ', outfile => 'index_blog.html', rebuild_me => '1', }, 'index_style' => { label => 'スタイルシート', outfile => 'style.css', rebuild_me => '1', }, 'index_archive' => { label => 'アーカイブインデックス', outfile => 'index_archive.html', rebuild_me => '1', }, 'index_atom' => { label => '最新記事', outfile => 'index_atom.xml', rebuild_me => '1', }, 'index_rsd' => { label => 'RSD', outfile => 'index_rsd.xml', rebuild_me => '1', }, 'index_javascript' => { label => 'Javascript', outfile => 'index_javascript.js', rebuild_me => '1', }, }, individual => { 'archive_entry' => { label => 'ブログエントリー', mappings => { entry_archive => { archive_type => 'Individual', file_template => '%y/%m/%-f', preferred => '1', }, }, }, 'archive_web' => { label => 'ウェブページ', mappings => { page_archive => { archive_type => 'Page', file_template => '%-c/%-f', preferred => '1', }, }, }, }, archive => { 'archive_data_based' => { label => 'アーカイブデータベース', mappings => { monthly => { archive_type => 'Monthly', file_template => '%y/%m/%i', preferred => '1', }, }, }, }, system => { 'system_search_results' => { label => '検索結果', description_label => '', }, 'system_comme_preview' => { label => 'コメント確認', }, 'system_comme_complete' => { label => 'コメント完了', }, 'system_popupimg' => { label => 'ポップアップ画像', }, }, module => { 'module_header' => { label => 'ヘッダー', }, 'module_footer' => { label => 'フッター', }, 'module_footer2' => { label => 'ブログメインページ用フッター', }, 'module_sideber' => { label => 'サイドバー', }, 'module_sideber2' => { label => 'ブログメインページ用サイドバー', }, 'module_navigation' => { label => 'ナビゲーション', }, 'module_webpage' => { label => 'ウェブページの詳細', }, 'module_category' => { label => 'カテゴリー', }, 'module_blog_gaiyo' => { label => 'ブログ記事の概要', }, 'module_blog_shosai' => { label => 'ブログ記事の詳細', }, 'module_blog_meta' => { label => 'ブログ記事のメタデータ', }, 'module_tag' => { label => 'タグ', }, 'module_track_back' => { label => 'トラックバック', }, 'module_comme' => { label => 'コメント', }, 'module_comme_shousai' => { label => 'コメント詳細', }, 'module_comme_input' => { label => 'コメント入力フォーム', }, }, widgetset => { 'widgetset_activity' => { order => 1000, label => 'アクティビティ', widgets => [ '最近のコメント', ], }, 'widgetset_archive' => { order => 1000, label => 'アーカイブ', widgets => [ 'カテゴリアーカイブ', '月別アーカイブ', ], }, 'widgetset_sideber' => { order => 1000, label => 'メインサイドバー', widgets => [ '最近のブログ記事', ], }, }, widget => { 'widget_category_archive' => { label => 'カテゴリアーカイブ', }, 'widget_powered_by' => { label => 'Powered by', }, 'widget_new_comme' => { label => '最近のコメント', }, 'widget_new_ently' => { label => '最近のブログ記事', }, 'widget_monthly_archive' => { label => '月別アーカイブ', }, 'widget_serch' => { label => '検索', }, }, }, }, }, }); } 1;
上記上段がダウンロードしたPerlファイルの中身です。下段が私が作成したPerlファイルの中身です。それぞれ分かりやすいように、変更していく(変更していった)箇所には色をつけました(黄色系の色)。ピンクで色付けした部分も変更できますが、全て同一した文字列でなければいけません(日本語はNG)。また、宣言している使用テンプレート実ファイルはダウンロードしたままでは足りないので、さらに付け足した部分が多くあります。順に説明していきますので、まずはPlugin名などを記述している頭から18行目を見ていきましょう。
5行目までは、おそらく(Perlの知識が乏しいので断定できなくてごめんなさい。)「MTのプラグインをこれから作りますよ~」などの宣言だと思うので、飛ばします。前述もしましたが、ピンク色の部分は同一した文字列であれば、変更しても大丈夫です。
8行目、9行目の
«ダウンロードファイル» $PLUGIN_NAME = 'MyPlugin'; $VERSION = '0.1';
«hiako作成ファイル» $PLUGIN_NAME = 'hiakoPlugin'; $VERSION = '1.0';
で簡単な英語表記なのでお分かりかと思いますが、このプラグインの名前とプログラムバージョンを記述します。
13行目、14行目では
上記で代入したプラグイン名とプログラムバージョンを宣言しています。
15行目~17行目の
«ダウンロードファイル» description => 'MyPlugin Description.', author_name => 'Plugin Author Name', author_link => 'http://plugin.author/url/',
«hiako作成ファイル» description => 'hiako@KIDS-WAYが検証のために作成してみたテンプレートセットプラグインです。2カラムにしか対応しておりません。', author_name => 'hiako', author_link => 'http://www.dc-d.jp/',
上から順に【プラグインの説明】【作成者の名前】【作成者へのリンク】となっています。必須項目ではないので、必要なければ削除してしまってかまいません。また、上2項目については日本語OKです。
ではここからが本題と言っていいでしょう!テンプレートの使用宣言などを記述する22行目以降の説明に移ります。
ここからはさらにブロックに分けて説明していきます。
テンプレートセットのベース部分(テンプレートセット・オプション)
さぁここまでは、Pluginとしての記述でしたが、ここからはテンプレートセットとしての記述が始まります。完成まで道のりはまだ長いですが、がんばりましょう。また、説明がしやすいように私がこのテンプレートセットを作成した際に参考にしたbzbellさんのページと同様に変更箇所ごとに色分けしていきます。
25行目~29行目
«ダウンロードファイル»
template_sets => {
my_set => {
label => "My Template Set",
base_path => 'templates/',
order => 100,
«hiako作成ファイル»
template_sets => {
hiako1_set => {
label => "hiako Template",
base_path => 'templates/',
order => 20,
オレンジ色の文字はテンプレートセットの名前です。デフォルトのタグの中に記述してあるMTタグ『<$mt:BlogTemplateSetID$>』がここで指定したテンプレート名となります。
使用例:
<body id="<$mt:BlogTemplateSetID$>" class="<$mt:Var name="body_class"$> <$mt:Var name="page_layout"$>">
1つの『my_plugin.pl』ファイルに複数のテンプレートセットを作成したい場合には、単一である名前でなければなりませんが、1つのテンプレートセットしか作成しない場合には特に変更する必要はありません。複数のテンプレートセットを作成したい場合には、ダウンロードしたサンプルファイルですと26行目~85行目のブロックを必要な数だけ作成します。このブロック名を変更する場合、日本語はNGです。
水色の文字はテンプレートセットを適用させる際に、プルダウンメニューに出てくるテンプレート名です。日本語名でもOKです。
緑色の文字はMTブログを構成するテンプレート(インデックステンプレート・アーカイブテンプレート・モジュール・・・など)を格納しているフォルダを記述します。今編集している『my_plugin.pl』を基準とした相対パスで記述します。
赤色の文字はテンプレートセットを適用させる際に、プルダウンメニューに出てくる順番です。数が小さいほど上のほうに、大きいほど下に表示されます。デフォルトの「100」のままだと、私の環境では2番目に表示されたので、小さい数に変更して一番上に表示されるようにしました。
テンプレートセット内容の記述
テンプレートセット内容はさらにセクションを分けて記述していきます。各セクションの説明に入る前に、どのようなセクションに分かれているのかをまずご説明します。
テンプレートセット内容のセクションはほぼMT管理画面のテンプレートの様に分かれています。
-
indexセクション – インデックステンプレート
ブログメインページやスタイルシートなどが入ります。 -
individual セクション- 個別アーカイブテンプレート (ブログ記事・ウェブページ)
ホーム以外のウェブページやブログの1記事などが入ります。 -
archiveセクション – アーカイブテンプレート(月別アーカイブなど)
アーカイブページです。 -
systemセクション – システムテンプレート
検索やコメントの確認などが入ります。 -
module – テンプレートモジュール
ヘッダーやサイドバーなどが入ります。
とダウンロードしたサンプルファイルには5セクションしかありませんが、実装するにはwidgetも最低必要だと思います。さらに私はwidgetsetセクションも追加しました。では、各セクションの説明については次のMTテンプレートセットの作成手順(3)で。。。


