お知らせ
2008年1月11日
拙著新刊の「ブログ簡単パワーアップ FC2ブログスーパーカスタマイズテクニック」が発売されました。
FC2ブログのさまざまなカスタマイズ方法を解説しています。
FC2ブログユーザーの皆様はぜひお買い求めください。
他にも多数書籍を執筆しています。
こちらもぜひご覧ください。
エントリーのプレビューを行うプラグイン(その2)
2005年8月22日 新バージョンを公開しましたので、そちらをお使いください。
昨日のエントリーの続きで、プラグインの導入手順の残りを解説します。
8.プレビュー用テンプレートの指定
Movable Typeの管理画面(mt.cgi)にログインして、「利用可能なプラグインの設定」の部分で「Tags For Preview」を探し、そのリンクをクリックします。
複数のBlogを管理している場合は、Blogを選ぶ画面が表示されます。プレビュー表示できるようにするBlogを選んで、「送信」ボタンをクリックします。
次に、インデックステンプレートの名前が一覧表示されます。プレビュー用のテンプレートを選択して、「保存」ボタンをクリックします。
プレビュー用テンプレートを複数作った場合は、それらすべてを選択してください。Windowsなら、Ctrlキーを押しながらクリックすることで、複数のテンプレートを選択することができます。
9.edit_entry.tmplにJavaScriptを追加する
次に、エントリーの編集画面のテンプレートに、JavaScriptを追加します。
MTのディレクトリ→tmplディレクトリ→cmsディレクトリの中に、「edit_entry.tmpl」というファイルがあります。
その先頭の方に、JavaScriptのタグ(<script type="text/javascript"><!--)がありますので、その直後に以下のスクリプトを追加します。
function doRebuildPreview () {
window.open('mt-rebuild-preview.cgi?__mode=start_rebuild&blog_id=<TMPL_VAR NAME=BLOG_ID>&entry_id=<TMPL_VAR NAME=ID>', 'doRebuildPreview', 'width=400,height=250,resizable=yes,scrollbars=yes');
}
10.edit_entry.tmplにPreviewボタンを追加する
次に、edit_entry.tmplに、「Preview on Blog」のボタンを追加します。
まず、edit_entry.tmplの中で、以下の部分を検索します。
<TMPL_IF NAME=POSITION_BUTTONS_TOP> <div id="button-bar"> <input type="submit" name="preview_entry" value="<MT_TRANS phrase="Preview">" />
この部分を以下のように書き換えます(赤字が追加する部分)。
<TMPL_IF NAME=POSITION_BUTTONS_TOP> <div id="button-bar"> <TMPL_UNLESS NAME=NEW_OBJECT> <input class="button" onClick="doRebuildPreview()" type="button" value="<MT_TRANS phrase="Preview on Blog">"> </TMPL_UNLESS> <input type="submit" name="preview_entry" value="<MT_TRANS phrase="Preview">" />
次に、以下の部分を検索します。
<TMPL_IF NAME=POSITION_BUTTONS_BOTTOM> <div id="button-bar"> <input type="submit" name="preview_entry" value="<MT_TRANS phrase="Preview">" />
この部分を以下のように書き換えます(赤字が追加する部分)。
<TMPL_IF NAME=POSITION_BUTTONS_BOTTOM> <div id="button-bar"> <TMPL_UNLESS NAME=NEW_OBJECT> <input class="button" onClick="doRebuildPreview()" type="button" value="<MT_TRANS phrase="Preview on Blog">"> </TMPL_UNLESS> <input type="submit" name="preview_entry" value="<MT_TRANS phrase="Preview">" />
書き換えが終わったら、edit_entry.tmplファイルを、MTのディレクトリ→tmplディレクトリ→cmsディレクトリにアップロードします。
11.プレビューを行う
エントリー編集画面で、下書きにしたエントリーを開きます。
すると、「保存」や「確認」などのボタンの左に、「Preview on Blog」のボタンが表示されます。
そのボタンをクリックすると、8.で指定したテンプレートが自動的に再構築されます。
しばらくすると、「プレビューの準備ができました」と表示され、その下にプレビュー用テンプレートの名前が一覧表示されます。
各テンプレートの名前をクリックすると、別ウィンドウが開き、そのテンプレートのプレビューが表示されます。
これ以後は、エントリーを新規作成して下書きで保存し、11.の作業を行えば、エントリーをプレビューすることができます。
なお、プレビューは以下のように表示されます。
| ページ の種類 | 先頭 |
|---|---|
| メイン | プレビューするエントリーがメインページの先頭に表示されます。 |
| カテゴリー | プレビューするエントリーを含むカテゴリーのページが表示されます。 |
| 月別 | プレビューするエントリーを含む月のページが表示されます。 |
| 週別 | プレビューするエントリーを含む週のページが表示されます。 |
| 日別 | プレビューするエントリーを含む日のページが表示されます。 |
| 個別 | プレビューするエントリーの個別アーカイブページが表示されます。 |
カテゴリーアーカイブと日付アーカイブのページでは、エントリーは通常は日付順で表示されます。
プレビューするエントリーよりも日付の新しいエントリーがある場合は、それも含めて日付順になります。
そのため、プレビューするエントリーがページの先頭に来ない場合もあります。
12.注意事項
このプラグインでは、インデックステンプレートを、各種のアーカイブテンプレートのように動作させるという手法をとっています。
すべてのテンプレートタグで動作を確認したわけではありませんので、中には動作しないタグがあるかも知れません。
なお、Movable Type標準のテンプレートと、小粋空間様のテンプレートでは、当方の環境では動作することを確認しています。
前後の記事
関連するエントリー(2件)
- エントリーのプレビューを行うプラグイン(MT3.2/3.3対応版)(2006年07月11日 12:27)
- エントリーのプレビューを行うプラグイン(その1)(2005年06月30日 09:01)
トラックバック(1件)
このブログ記事を参照しているブログ一覧: エントリーのプレビューを行うプラグイン(その2)
このブログ記事に対するトラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/205.
以前、「エントリの投稿画面に個別アーカイブのまんま状態でプレビューできるボタン装... 続きを読む


コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
こんにちは。
コメント遅くなってすいません(リニューアルで手一杯でした…)。
テンプレートのご紹介、ありがとうございました。
このカスタマイズは是非チャレンジしてみたいと思います。
こんにちは
「小粋空間」さんのサイトからこちらに訪問させていただきました。
早速「Tags For Preview」を自分のMTにインストールして、メインページのエントリータグを変更して保存することろまでは問題なく行ったんですが、メインページの「Tags For Preview」のリンクをクリックすると以下の様なエラーがでます。
エラーが発生しました:
テンプレート「login.tmpl」の読み込みに失敗しました: HTML::Template->new() : Cannot open included file tmpl/login.tmpl : file not found. at extlib/HTML/Template.pm line 1500
HTML::Template::_init_template('HTML::Template=HASH(0x8718e98)') called at extlib/HTML/Template.pm line 1105
HTML::Template::_init('HTML::Template=HASH(0x8718e98)') called at extlib/HTML/Template.pm line 999
HTML::Template::new('HTML::Template','filename','tmpl/login.tmpl','path','ARRAY(0x871fb24)','die_on_bad_params',0,'global_vars',1,...) called at extlib/HTML/Template.pm line 1049
HTML::Template::new_file('HTML::Template','tmpl/login.tmpl','path','ARRAY(0x871fb24)','die_on_bad_params',0,'global_vars',1) called at lib/MT/App.pm line 411
eval {...} called at lib/MT/App.pm line 410
MT::App::load_tmpl('FJ::RebuildPreview=HASH(0x8065a2c)','login.tmpl') called at lib/MT/App.pm line 464
MT::App::build_page('FJ::RebuildPreview=HASH(0x8065a2c)','login.tmpl','HASH(0x871faac)') called at lib/MT/App.pm line 341
eval {...} called at lib/MT/App.pm line 301
MT::App::run('FJ::RebuildPreview=HASH(0x8065a2c)') called at mt-rebuild-preview.cgi line 24
eval {...} called at mt-rebuild-preview.cgi line 17
なんか「login.tmpl」を探しにいっているようなのですが、私には原因がつかめません。
もしおわかりのようでしたらおしえていただけないでしょうか?
よろしくお願いいたします。
>RTさん
こんにちは。
エラーの件ですが、原因は不明です。
ちなみに、「login.tmpl」はMovable Typeのログイン画面のテンプレートで、Movable Typeに標準で入っているはずのものです。
こんにちは。
私もRTさんと同じ現象が起きました。
でもMovableType3.2にグレードアップしたら、このエラーは発生しなくなりましたよ。
ご参考までに。