拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
エントリーのプレビューを行うプラグイン(その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標準のテンプレートと、小粋空間様のテンプレートでは、当方の環境では動作することを確認しています。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
yujiro
こんにちは。
コメント遅くなってすいません(リニューアルで手一杯でした…)。
テンプレートのご紹介、ありがとうございました。
このカスタマイズは是非チャレンジしてみたいと思います。
RT
こんにちは
「小粋空間」さんのサイトからこちらに訪問させていただきました。
早速「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にグレードアップしたら、このエラーは発生しなくなりましたよ。
ご参考までに。