エントリーのプレビューを行うプラグイン(その1)

2006年7月11日 Movable Type 3.2/3.3対応版を公開しました。

2005年8月22日 新バージョンを公開しましたので、そちらをお使いください。

Movable Typeのエントリー編集画面には、「確認」のボタンがあります。
それをクリックすると、エントリーの内容を確認する画面が表示されますが、「Blog上で実際にどう見えるか」を確認するものではないので、あまり使い良いものではありません。

Blog上での表示を確認する方法として、「MT-Preview」というプラグインを使う方法が知られています。
ただ、このプラグインには、以下のような弱点があります。

  • 個別アーカイブのプレビューしかできない
  • テンプレートをPHP化していると、PHPのスクリプトの部分が動作しない

そこで、より使い良いプラグインを作ってみました。

このプラグインでは、大まかには以下のような手順を取って、エントリーをプレビューできるようにします。

初回の作業

1.プレビューしたいページ(メイン/カテゴリーアーカイブ/日付アーカイブ/個別アーカイブ)のそれぞれについて、通常のテンプレートをコピーして少し手直しし、プレビュー用のテンプレートを作ります。
2.エントリー編集画面のテンプレートを一部書き換えて、プレビュー用テンプレートを再構築するためのボタンをつけます。

エントリー作成時の作業

1.エントリーを入力して下書きで保存します。
2.上記の再構築ボタンをクリックしてプレビュー用のテンプレートを再構築し、それを表示して確認します。

導入の手順はやや長くなりますので、2回に分けて解説します。

1.プラグインのダウンロード

以下のリンクをクリックして、プラグインのファイルをダウンロードしてください。

mt-rebuild-preview.zip

2.ファイルの解凍

1.のZIPファイルを解凍すると、「mt-rebuild-preview」のフォルダができ、その中に以下のファイルができます。

  • mt-rebuild-preview.cgi
  • \extlib\FJ\RebuildPreview.pm
  • \plugins\TagsForPreview.pl
  • \tmpl\cms\rebuild_preview.tmpl

なお、ファイルの文字コードはutf-8にしてあります。
Movable Typeの文字コードを他のものに変えている方は、上記の各ファイルを開いて、Movable Typeの文字コードに合わせて保存しなおしてください。

3.ファイルのアップロード

2.の各ファイルを、アスキーモードでそれぞれ以下のディレクトリにアップロードします。
「MT→extlib→FJ」のディレクトリは、FTPソフトで作成してください。

ファイルアップロード先ディレクトリ
mt-rebuild-preview.cgiMTのディレクトリ
RebuildPreview.pmMT→extlib→FJディレクトリ
TagsForPreview.plMT→pluginsディレクトリ
rebuild_preview.tmplMT→tmpl→cmsディレクトリ

なお、解凍したファイルを、フォルダ構造を変えずにそのままMovable Typeのディレクトリにアップロードすれば、上記のような形になります。

4.パーミッションの設定

mt-rebuild-preview.cgiのパーミッションを、実行可能なもの(一般的には755)に変えてください。

5.メインページのプレビュー用テンプレートの作成

Movable Typeの管理画面(mt.cgi)に入り、メインページのテンプレートを開いて、その内容をすべてコピーします。
次に、インデックステンプレートを1つ新規作成し、上でコピーした内容をすべて貼り付けます。
そして、貼り付けたテンプレートの中で、エントリーの一覧を出力する部分を探し、以下のようにタグを書き換えます。

書き換え前書き換え後
MTEntriesMTEntriesWithDraft
/MTEntries/MTEntriesWithDraft

テンプレートを作り終わったら、「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」のチェックをオフにし、名前と出力先ファイル名を決めて保存します。

なお、出力先ファイル名は、人に推測されにくい名前にしておく方が良いです(推測されやすい名前だと、他の人にプレビューのページを見られる可能性があるため)。

6.各種アーカイブページのプレビュー用テンプレートの作成

アーカイブテンプレートを開いて、その内容をすべてコピーします。
次に、インデックステンプレートを新規作成して、上でコピーした内容をすべて貼り付けます。
そして、アーカイブの種類に応じて、テンプレートの先頭と最後に以下の表のタグを追加します。

アーカイブ
の種類
先頭最後
カテゴリー<MTPretendCategoryTemplate></MTPretendCategoryTemplate>
月別<MTPretendDateTemplate archive_type="Monthly"></MTPretendDateTemplate>
週別<MTPretendDateTemplate archive_type="Weekly"></MTPretendDateTemplate>
日別<MTPretendDateTemplate archive_type="Daily"></MTPretendDateTemplate>
個別<MTPretendIndividualTemplate></MTPretendIndividualTemplate>

テンプレートを作り終わったら、、「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」のチェックをオフにし、名前と出力先ファイル名を決めて保存します。

7.プレビュー用テンプレートの動作の確認

エントリーを新規作成し、下書きで保存します。
そして、上記の5.~6.の各テンプレートを再構築して、Webブラウザで表示してみてください。
下書きにしたエントリーが正しくプレビューできれば、ここまでの設置は成功しています。

なお、翌日は、エントリーの編集画面をカスタマイズして、プレビュー用テンプレートをボタン1つで再構築できるようにする手順を解説します。