Published: 
Movable Type

今日は、一番量があるブログの本文と追記、サイドバーをモジュール化してみる。

休みなので一気に行ってみよう計画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秒まで短縮しました。

0