Movable Type 備忘録

 

 プラグインなしで月別アーカイブリスト表示

こんにちわ^^

台風まだ来ませんネェ。
別に待ってるわけじゃないんだけど、早く来て、早く去って欲しいと思ってたら、太平洋の方へ逸れたみたい (; ̄∇ ̄A
気象庁:台風情報

さて、先日MovableType 4 ベータ6が公開されて、正式版も 2007/08/08 に延期になったようです。
Movable Type 4 ベータ 6を公開

アップグレードの度にプラグインの動作確認はとっても面倒なので、もうバージョンに依存しないよう、プラグインを可能な限り使わない方向で対応中な bzbell です。

今回は、MTArchiveDateHeader プラグインと MTArchiveDateFooter プラグインを使わなくても、月別アーカイブリストを表示できるようカスタマイズしてみましたのでご紹介します。

プラグインを利用するメリットは、

  • データベースに依存しない
    SQLite や MySQL というように、人(環境)によって使ってるデータベースは異なります。でも、プラグインを利用すればデータベースの違いで使えない・・・ということはなく、みんなが同じ機能を使えるようになりますね。

  • ブログの PHP 化など無関係に使える
    わたしのサイトでは、ブログの PHP 化を行っています。
    でも、人によっては PHP 化してない人もいるわけで、わたしのサイトで紹介するカスタマイズ内容によってはできないこともあります。

    でも、プラグインならそういったことはなく、みんなが同じようなカスタマイズが可能になります。

  • テンプレート・タグによる利用だから使い方はカンタン
    決められた機能の提供なので、使い方はマニュアル通りやれば基本的にはできるものだし、人によって結果が異なるってこともないはずです。

    中にはプラグインの使い方(応用)次第で、人と違った表示をさせたりなどできますが、基本機能はすべての人と共通ですよね。

と、こんなところでしょうか。
じゃぁ、デメリットはというと、

  • MovableType(ムーバブルタイプ)のバージョンに依存
    プラグインは、MovableType(ムーバブルタイプ)で持っている機能を流用して、新しい機能を提供するためのもの・・・と認識しています。
    なので、ベースとなるMovableType(ムーバブルタイプ)の造りや機能が変わったことで、今まで使えたプラグインが使えなくなったりします。

思いつくデメリットはこれぐらいかな。
とはいっても、これがわたしにとっては大問題でして、今表示しているコンテンツが表示できなくなったりするわけですから (; ̄∇ ̄A

ということで、可能な限りプラグインに依存しないテンプレートにしよう!! と決めたわけです ( ̄∇ ̄)b
具体的には以下のような表示になります。

カスタマイズ

このカスタマイズはブログの PHP 化を行っている必要があります。

  1. まず、月別アーカイブリスト用のインデックス・テンプレートを作成します。
    以下のコードをコピペしてインデックス・テンプレートを新規作成します。

    ファイル名は任意(たとえば、monthly-list.php)で構いません。

    月別アーカイブリスト

    1. <MTIfArchiveTypeEnabled archive_type="Monthly">
    2. <div class="module-archive module">
    3.     <div class="module-header">Monthly Archives</div>
    4.  
    5.     <ul id="monthly-archives-block" class="module-content">
    6.     <?php $year = 0; ?>
    7.     <MTArchiveList archive_type="Monthly" sort_order="ascend">
    8.     <?php
    9.         $cur = <$MTArchiveDate language="en" format="%Y"$>;
    10.  
    11.         if ($year != $cur)
    12.         {
    13.             if ($year) echo '</li>'."\n";
    14.             echo '<li>'.$cur.":\n";
    15.             $year = $cur;
    16.         }
    17.  
    18.         echo '<a href="<$MTArchiveLink$>" title="<$MTArchiveDate language="en" format="%y/%m"$>"><$MTArchiveDate language="en" format="%m"$></a>'."\n";
    19.     ?>
    20.     </MTArchiveList>
    21.     <?php if ($year) echo '</li>'."\n"; ?>
    22.     </ul>
    23. </div>
    24. </MTIfArchiveTypeEnabled>

    コピペしたら保存して再構築します。
    そして、ブラウザから今作成したページ(monthly-list.php)を表示確認します。

  2. 次にスタイルシートを変更します。
    以下のスタイルをコピペして、各自の CSS に追加します。

    スタイルシート

    1. /*
    2.  * 月別アーカイブ一覧用スタイル
    3.  */
    4. ul#monthly-archives-block {
    5.     margin: 0;
    6.     padding: 0;
    7.     list-style: none;
    8. }
    9.  
    10. ul#monthly-archives-block li {
    11.     width: auto;
    12.     display: block;
    13.  
    14.     text-indent: -3.8em;
    15.     padding-left: 3.8em;
    16. }
    17.  
    18. ul#monthly-archives-block li a {
    19.     line-height: 1.4;
    20. }

    赤い字の部分は字下げされた時のパディングの位置を指定しています。
    お使いのフォントなどによって異なりますので、各自のテンプレートに合わせて調整します。

以上で、プラグインを使ってたときと同様の月別アーカイブ一覧を表示することができました。とはいってもわたしの場合ですけど (; ̄∇ ̄A

こんな調子で他のプラグインに依存したところも可能な限り取り外していこうと思ってます。

 Trackback Pings(2)

from オサーンの投資生活

普通のテンプレート使ってると、月別アーカイブがやたらと長くなってきます。折りたたみ形式もいいんですが、このブログではbzbellさんの Movablety...

from Naagle[blog] ~釣りと日常を綴るよ~

 過去の釣行記等、長期に跨るエントリーを投稿したので、月別アーカイブの表示が縦に...

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード