« カテゴリの整理(2) | メイン | 太陽系の惑星(2) »

2006年08月25日

アーカイブページの分割

前回のエントリで書いていたアーカイブページの分割をすることができました。結構面倒だったので、ここで簡単に説明しておこうと思います。

ターゲット環境はさくらインターネットのレンタルサーバで動作している Movable Type 3.2-ja-2 です(未だに 3.31 にしてません(^^;)。使用したプラグインは MTPaginate で、php 化することによってアーカイブページの分割が行えるようになります。参考にしたのは以下のサイトです。

MTPaginate プラグインは以下のサイトからダウンロードします。ここで使用したバージョンは 1.26 です。

分割するためには php 化が伴いますが、今までの個々のエントリの拡張子が php になるのは嫌だったので(Permlink がずれてしまう)、php 化するのは「カテゴリー・アーカイブ」と「日付アーカイブ」だけにしました。「個別エントリアーカイブ」に関しては変更をしません。

MTPaginate のインストール
MTPaginate をダウンロードして、MTPaginate.pl を plugins ディレクトリにアップロードします。これはまんまですので間違えることは無いでしょう。ftp 転送する場合にテキストモードにすることは忘れずに、程度だと思います。

出力フォーマットの変更
Movable Type のメニューの 「設定」→「公開」→「アーカイブ・マッピング」の月別とカテゴリーの出力フォーマットを、プルダウンメニューから「カスタマイズする」を選択して次のように変更します。
output_format.png

これで一応、アーカイブページのファイルが index.html から index.php になります。参考にしたサイトでは、「カテゴリー・アーカイブ」は「cat_<$MTCategoryID$>.php」を薦めていますが、ここの blog は日本語のカテゴリが無いので「%c/index.php」にしています。

テンプレートの変更
Movable Type のメニューの 「テンプレート」→「アーカイブ」の「カテゴリー・アーカイブ」と「日付アーカイブ」を変更します。ここでは次のように変更しました。

<MTPaginate>
<MTPaginateContent max_sections="8">
<MTEntries>
 :
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
  <div class="paginate">
    <MTPaginateIfPreviousPage_>
      <a href="<$MTPaginatePreviousPageLink$>">Previous Page</a>
    </MTPaginateIfPreviousPage_>
    <$MTPaginateNavigator style="popup"$>
    <MTPaginateIfNextPage_>
      <a href="<$MTPaginateNextPageLink$>">Next Page</a>, 
    </MTPaginateIfNextPage_>
    <MTPaginateIfMultiplePages>
      <a href="<$MTArchiveLink$>?page=all">All Pages</a>
    </MTPaginateIfMultiplePages>
  </div>
</MTPaginateIfMultiplePages>
</MTPaginate>

ポイントは「MTEntries の前後に埋め込む」って感じですね。

パーミッションの変更
さくらインターネットで重要なのはパーミッションの設定です。私は GAKU さんのZone::WordPressでBlog生活 » php化しましたの設定をそのまま適用しました。mt.cfg の 次の箇所を変更します。

# DBUmask 0022
# HTMLUmask 0022
# UploadUmask 0022
# DirUmask 0022
# HTMLPerms 0777
# UploadPerms 0777

# DBUmask 0022
HTMLUmask 0072
# UploadUmask 0022
DirUmask 0072
HTMLPerms 0777
# UploadPerms 0777

のように変更します。この修正は 2 種類の意味があり、php ファイルとディレクトリに -rwx---r-x のパーミッションをつけるようになります。

この修正で「サイトの再構築」などで新たに php ファイルが作成されたときには正しいパーミッションが設定されようになりますが、現在存在しているディレクトリは現在の値のままとなっているはずです。なので現存するディレクトリには手動で chmod を行う必要がありました。

以上の変更でアーカイブページを分割することができました。これで飽和状態はなんとか脱しました(笑)


投稿者 napier : 2006年08月25日 00:58


トラックバック

このエントリーのトラックバックURL:
http://will.squares.net/mt/mt-modified-tb.cgi/509