August 05, 2005
MTの動的生成でperlプラグインも動作する「mt-dynamic.cgi」
- 更新: 2007 年 03 月 04 日 15:37
- 2005 年 08 月 05 日 02:57 に asiamoth が投稿
- タグ: MovableType, 動的生成, perl, plugin
- カテゴリー: Movable Type
- コメントする
- トラックバック (2)
このブログはMoveble Typeを利用している。そしてperl版のプラグインをいくつか使用しているが、全てのページが動的生成(ダイナミック・パブリッシング)になっている(RSS Feedは除く)。
どうしているかというと、
「MTの動的生成でperlプラグインも動作するCGI」を利用しているからだ。
──と、これだけの説明でこのCGIの素晴らしさが解る人は、かなりのMovable Typer(造語)
。
まず、前提として
perl版のプラグインのままでは、動的に生成できません。プラグインもphpベースで構築されたものが必要になってきます。ですので、perl版プラグインを仕様しているページは動的生成しないようにするか、phpベースに再構築する必要があります。
ということで(現在公開されているMTでは)、perl版のプラグインを利用したテンプレートは動的に生成できない、という仕様になっている。
それを可能にするのが、今回紹介するCGIです。
設置方法
設置方法は、下記を参照してください。必ず、両方の記事を読んでから設置してください。
設置自体は簡単に終わる(と思う)のだが、phptempフォルダを作成することをお忘れ無く。
動作するperl版プラグイン
自分の環境(xrea.comのs61サーバー)で動作が確認できたプラグインは、下記の通り。
Tagwire Plugin Ver. 0.25
MTで四畳半フォークソノミーを実現させるプラグイン
LastModified Ver. 1.3[IfModified](http://www.staggernation.com/mtplugins/IfModified.php "IfModified | Plugins for Movable Type | staggernation.com")現在は[IfModified](http://www.staggernation.com/mtplugins/IfModified.php "IfModified | Plugins for Movable Type | staggernation.com")になっている。最新はVer. 1.4。IfModifiedも正常に動作した。更新日時を表示するプラグイン。簡単に設置できるのでおすすめ。SimpleComments Ver. 1.32
すっきりコメントプラグイン [絵文録ことのは]2003/10/02が詳しい。最新バージョンではPHP版もあるが、Perl版のファイルのみ利用している。
CPEntries Ver. 0.9.3
コメントかトラックバックの最新順にエントリを表示
するプラグイン。mt-sukeroku-plus.pl Ver. 1.00
TextFormatプラグイン。「はてな」や「Pukiwiki」風のフォーマットで記事が書ける。最新はmt-sukeroku2 β3。
Markdown Ver. 1.0.1
これもテキストフォーマットプラグイン。PHP版のPHP Markdownもある。
何より、Tagwire Pluginが動作するのが大きい!!
キャッシュする時間を増やしてみる
mt-dynamicは、動的生成に付きものの一時ファイル(キャッシュ)をphptempフォルダに生成する。一定時間内のアクセスに対しては、一時ファイルから呼び出される。
──ようするに、最初に誰かがページを見るときは動的生成だが、同時にphptempフォルダにhtml(php)ファイルが生成される。その後、一定時間内に他の人が同じページにアクセスすると、phptempフォルダ内のファイルが呼び出される。──という仕組みになっている。
つまり、「再構築がいらない」というメリットと「動的生成はページの表示が遅い」というデメリットのバランスを取る仕組み。
──なのだが、初期設定では「一定時間」が一分間(60秒間)になっているので、あまりキャッシュのありがたみがない。
そこで、mt-dynamic.phpの21行目辺りにある
if ($now - $mtime > 60) {
これを変更し、
if ($now - $mtime > 60*30) {
こんな感じにすると、30分間キャッシュされる。
phpスクリプトも使える
ちょっとした小ネタ。
phpスクリプトもそのまま動作するので、
<?php readfile ('<$MTBlogURL$>hoge.php'); ?>
と、こんな感じで他のファイルも読み込む際、読み込むファイルのパスに、MTのタグが利用できる。
──何が言いたいかというと、通常のPHP版動的生成では
<$MTInclude file="<$MTBlogURL$>hoge.php"$>
と書くことができる。以下を参照。
ダイナミックパブリッシング時には、MTInclude file の挙動が変わり、テンプレートタグが変換されるようになります。
──と言うことだが、mt-dynamicでは動作しない(静的生成も同様)ので、念のため。
あまり使われていないのは何故──?
導入してからしばらく経つけど、何故か利用している人は少ないようだ。
記事を投稿するのにかなりの時間短縮になるので、「再構築時間の長さが気になる」というMovable Typer(造語)におすすめです。
トラックバック
以下2件のトラックバックはこのページのエントリー"MTの動的生成でperlプラグインも動作する「mt-dynamic.cgi」"を参照しています。
このエントリーのトラックバックURL:
» ダイナミック・パブリッシング
- September 21, 2005 09:27 PM
- from でびあんのがらくた箱
過去に何度かMovableTypeのダイナミック・パブリッシングに挑戦してみたが... [続きを読む]
» MTの動的生成でperlプラグインも動作する「mt-dynamic.cgi」
- September 22, 2005 07:19 PM
- from でびあんのがらくた箱
昨日のMTの動的生成でperlプラグインも動作する「mt-dynamic.cgi... [続きを読む]
コメント
コメントを投稿
"MTの動的生成でperlプラグインも動作する「mt-dynamic.cgi」" にコメントを投稿することができます(別ウィンドウが開きます)。