RebildAt1stViewを書き直した。PHPで動き、Perlでビルドする。
公開日 : 2010-06-05 22:09:09
Dakiny さんの呼びかけに壱さんが反応する形で何だかスレッドまで立ってますね。以下、引用は主に壱さんのエントリから。
今後のMTへの要望(その1・再構築編)
1.「再構築の重さ」で多くのユーザーを失った
まぁ、これが直接の原因かどうかは僕にはわかんないんですけどね。静的パブリッシングだから採用されるっていうケースも多いのは事実です。個人ブログとしてではなく、そこそこの規模のCMSが前提ですが。
2.MT標準のダイナミックパブリッシングは不十分
多くのプラグインはダイナミックパブリッシングには対応していません。
また、テンプレート内にPHPを記述することもよくありますが、そのテンプレートをダイナミックパブリッシング化する際には、PHPの部分をSmartyの記法に書き換える必要があります。
これらのことから、既存のブログをダイナミックパブリッシングに変えるのは困難です。
実質的に、ダイナミックパブリッシングは使えないと言って良いでしょう。
不十分なのは単にプラグインの書き手の手抜きではあるわけですよね。Power CMS for MTは基本ダイナミック全対応が前提です。確かに2つの言語で書くことの負担はあるわけですが。SAKKさんに落ち度があるとしたら、ドキュメントとかサンプルの少なさですね。ことダイナミックに関しては。
まぁ、前置きはいいです。黙ってコードを書けよってことだよ。
RebildAt1stViewを書き直した
- MTディレクトリの直下のtools以下に「rebuild-from-fi」を設置して実行可能なパーミッション(755とか)を与える
- plugins/以下にRebuildAt1stViewディレクトリをコピー(DBのアップグレードあり)
- mtmlディレクトリのmtview_php.mtmlを出力ファイル名mtview.php、_htaccess.mtmlを出力ファイル名.htaccessとしてテンプレートに登録、再構築
- 適用したいインデックス/アーカイブテンプレート編集画面で「このテンプレートの再構築を最初のリクエスト時に行う」にチェックを入れます
- 再構築(チェックを入れてたら一瞬で終わる筈>再構築は単なるファイル削除だから)
- 最初にリクエストがあった時点でファイルがなければ再構築されファイルが出力されます(で、ビルドされたファイルの内容がブラウザに返されます)
処理はPHPで行います。PHPがPerlスクリプトを介してビルドするから、Perlプラグインがそのまま使えます。吐き出されたファイルがPHPだったら、それもちゃんと処理されます。
何かうまく説明出来ないけどね、Perl版ダイナミックだけどPHPで動いててPHPが使えるソリューション、ってことだね。