お知らせ

初体験 Excel VBA2009年2月21日

拙著新刊の「初体験Excel VBA」が発売されました。
ExcelのVBAの入門書で、主にセルやワークシートをVBAで操作する方法に的を絞って解説しています。
仕事の中で良くありそうな事例を取り上げていますので、Excelをお使いの皆様にお勧めです。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

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

| コメント(10) | トラックバック(4)

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つで再構築できるようにする手順を解説します。

はてなブックマークの情報

トラックバック(4)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/204.

The blog of H.Fujimoto でお馴染みの壱さんが作られた「エントリーのプレビューを行うプラグイン」のカ... 続きを読む

以前、「エントリの投稿画面に個別アーカイブのまんま状態でプレビューできるボタン装... 続きを読む

チームニゴイでございます。 - 本当の「確認」 (2005年8月20日 05:29)

MovableType。記事を書いたときの「確認」、これあくまでも文字の確認や画... 続きを読む

エントリーの編集のとき一応確認するんだけど文字の大きさや画像との間隔が 全く違っていて、プレビューなんだろうけど全くプレ... 続きを読む

コメント(スレッド10件,コメント10件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 さえら : (無題)

おはようございます。
yujiroさんのエントリからとんできました。
これ、いいですね。今までMT-Previewを使ってたんですけど、
やむやむでは 記事の本文もモジュール化しちゃってるので
せっかくのプレビュー機能が肝心なところで使えなくて。。。

No.2 さえら : (無題)

(_-_) ウーン・・・できない。。。
記事部分モジュール化してると、やっぱダメみたいです。
サイドメニューは モジュール化しててもちゃんと表示されるんですけど。

No.3  : (無題)

>さえらさん
こんにちは。

記事部分をモジュール化している場合は、プレビュー用のテンプレートでモジュール化を元に戻して、<MTEntryBody>などのタグを入れるようにしてください。

No.4 やむ : (無題)

壱さん、こんばんわ。
ちょっと前にこちらのエントリーを参考にさせていただきました。ありがとうございます。
ワタシも、さえらさんと同じ箇所で悩んでましたが、コメントにて解決!とっても楽に編集出来るようになりました。
\(@^0^@)/やったぁ♪

No.5 footbrain : (無題)

つい昨日まで問題なく動いていたのに、プレビュー用のページを再構築しなくなってしまいました。

仕方がないので、プラグインのインストールから作業をやり直そうとしているのですが、プレビューをさせようとするとBuild Errorを起こし、プレビュー用のTemplateの再構築をしようとすると、
"Can't call method "created_on" on an undefined value at ****/plugins/RebuildPreview/TagsForPreview.pl line 309."
とエラー表示されます。

どこがおかしいのでしょうか?
教えてください。お願いします。

No.6 footbrain : (無題)

このエラーが起きるようになった直前に行った事は、
今まで使用していたSidebarManagerをWidget Managerに切り替えた事だけでした。

いま、試しにWidget Managerを利用不可にしてみたところ、
プレビューは正常に表示されました。

ということは、Widget Managerに問題があるようですね。
ちなみに、このWidget Managerですが、モジュール内でが使えなかったりで、
かなり出来が悪いように僕には思えます。

原因がわかったので、SidebarManagerに戻す事で回避できそうですが、
根本的な原因は僕には解りません。

よかったら、調べていただけますでしょうか?
Widget Managerのバグだとしたら、報告する必要もありそうですね。

No.7 footbrain : (無題)

たびたびでスミマセン。
「モジュール内でが使えなかったり」の行ですが、
<MTElse>が消えてしまいました。

「モジュール内で<MTElse>が使えなかったり」です。ごめんんなさい。

No.8  Author Profile Page: (無題)

>footbrainさん
こんにちは。
WidgetManagerに、不具合と思われる点が見つかりました。plugins/WidgetManager/lib/WidgetManager/Plugin.pmの以下箇所を書き換えて試してみてください。

・17行目の後に以下の赤字の行を追加
my $args = shift;
my $cond = shift;

・34行目に以下の赤字の部分を追加
$res .= MT::Template::Context::_hdlr_include($ctx,$args,$cond);

No.9 footbrain : (無題)

>壱さん
対応、ありがとうございます。

早速試してみましたが、プレビューは直近のエントリーを表示するだけで、書き換えられる事はありませんでした。

元からあるファイルが更新されずにいるようです。

No.10 footbrain : (無題)

default_widgetsのcategory_archive_list.tmplには、
<MTElse>が使われているので試してみましたが、
これは機能していました。

<MTElse>に関しては全くの別問題のようです。

SidebarManagerとWidget Managerとの違いを調べてみる事にしますが、

いずれにしても、
こちらにこれ以上コメントするのは不適切かもしれませんね。

失礼致しました。

コメントする


Movable Type Developer's Guide Volume 1

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」を発売しました。
詳細は特設ページをご覧ください。