今日は、一番量があるブログの本文と追記、サイドバーをモジュール化してみる。
休みなので一気に行ってみよう計画w
ブログの本文と追記のモジュール化
アーカイブテンプレートでアーカイブテンプレートの作成のブログ記事をクリックして以下の様にする。
<$MTEntryBody
gt;
取り合えず、テンプレート名はエントリー・本文として保存する。その後、テンプレートの設定で、新しいアーカイブマッピングを作成し、ブログ記事にチェックを入れず、パスにはカスタム..を選択肢し、
%y/%m/entry%E-body%x
アーカイブテンプレートでアーカイブテンプレートの作成のブログ記事をクリックして以下の様にする。
<$MTEntryMore
gt;
取り合えず、テンプレート名はエントリー・追記として保存する。その後、テンプレートの設定で、新しいアーカイブマッピングを作成し、ブログ記事にチェックを入れず、パスにはカスタム..を選択肢し、
%y/%m/entry%E-more%x
を入力します。
ここで、保存と再構築をクリックし、再構築させます。
ここまでくれば、本文と追記がモジュール化されたので、<$MTEntryBody$>と<$MTEntryMore$>が記述されているテンプレートを修正します。
<$MTEntryBody$>の部分を、
<?php readfile('<$MTBlogArchiveURL
gt;<$MTEntryDate format="%Y/%m"
gt;/entry<$MTEntryID
gt;-body.php');?>
<$MTEntryMore$>の部分を、
<?php readfile('<$MTBlogArchiveURL
gt;<$MTEntryDate format="%Y/%m"
gt;/entry<$MTEntryID
gt;-more.php');?>
です。
ちなみに、MovableType 4.2からMTOS 5へアップグレードした私の環境だと以下の物になります。
インデックステンプレート
最新記事フィード
アーカイブテンプレート
ブログ記事
ブログ記事概要
それぞれ修正後に、再構築します。
これでちゃんと表示されれば、バッチリ。
追記のモジュール化は本当に必要なのか不明だが、まあいいとしよう。
サイドバーのモジュール化
さて、いよいよサイドバーのモジュール化です。
まず、インデックステンプレートに、サイドバー(メイン)とサイドバー(サブ)を作成し取り合えず、
<?php?>
を入れる。中身はサイドバーに表示するウィジェットをモジュール化してから挿入します。
次に、テンプレートモジュールのサイドバーを変更する。
<$mt:WidgetSet name="3カラムのサイドバー(メイン)"
gt;
を
<?php include("<$MTBlogUrl
gt;side-main.php"); ?>
<$mt:WidgetSet name="3カラムのサイドバー(サブ)"
gt;
を
<?php include("<$MTBlogUrl
gt;side-sub.php"); ?>
にする。
さて、これでサイドバー無しの状態になった。これでは寂しいので、ウィジェットAboutを追加してみると。インデックステンプレートの作成をします。名前は適当に、出力ファイル名をside/about.htmlにする。sideというディレクトリーの中にサイドバーのモジュールが納まるのでこのようにしてみた。
じゃあ、早速サイドバー(メイン)に追加。
<?php readfile("<$MTBlogSitePath
gt;side/about.html");?>
あれれ、エラーが出る。
Warning: include() [function.include]: http:// wrapper is disabled in the server configuration by allow_url_include=0 in /var/www/html/blog/archives/index.php on line 566
どうやら、
<?php include("<$MTBlogUrl
gt;side-main.php"); ?>
が問題らしい。セキュリティ上の問題で、includeされるパスにhttp://などが入っているとダメのようです。じゃあって事で、<$MTBlogUrl$>と書いているところを<$MTBlogSitePath$>に変更して、ちゃんと表示されました。
あとは、順次使っている物をモジュール化すれば、第2弾は完了ですね。
追伸:結果再構築が6分30秒まで短縮しました。