読者です 読者をやめる 読者になる 読者になる

遅延再構築がしたいのです。

MTの動的生成な話は、あちこちに転がってるわけですが どうにも、しっくり来ない

俺が思うところは 「再構築の待ち時間がだりぃ」 なのであって「動的生成したいなー」じゃないし、まかり間違っても「静的生成がイヤだ」ではない

むしろ、静的生成が良いんです。 うちのヘッポコ鯖に負荷かかんないし。

キャッシュ機能使えって? いや、多少マシだけど、やっぱり仕事しなきゃいけないじゃない

キャッシュとか言わないで、正規の .html ファイルで吐けばいいじゃない。 ファイルが無かったらその場で作る、あったら黙ってそれ返す シンプルなのがいい。

動的生成とかしなくていいから、必要なタイミングでそのファイルだけ再構築してくれりゃ良いから

さーて、どうすっかなーと、何となく弄れそうな所から手を付けるか 配布されてるmt-view.cgiはバグだらけで使い物にならん、つーか、古い仕様で取り残されてる感じ。 # mt-view.cgi というか、その中身の MT::App::Viewer 少し関数の引数とか弄ってやれば、動いた。 とりあえず動的生成っぽい事はしてみたわけで、それをファイルにしておきたい。

ViewerからMT::WebPublisher を呼び出してファイル作ってやりゃいい。 なんだ、簡単じゃねぇか、と思ったらMt::FileInfoが厄介だった。 アーカイブファイルの情報(カテゴリーだとかエントリ個別だとか月別だとか)を引っ張ってくるのにMT::FileInfo 使って引き回してるらしい。 それはそのまま mt_fileinfo にマッピングされてるから、そこから情報拾ってくればOK 実際のファイルが無くてもDBに情報が載ってりゃ余裕っすよ ......と、思ったら、ファイル消したらDB上の情報もいつの間にか消えてやんの 誰かが悪さ真面目に仕事してやがる、ファイルが消えたらDB上のファイル情報もアップデート

うーん、しかしパスから情報を生成するのはめんどいなぁと思ったら mt_fileinfo には fileinfo_virtual ってカラムがあって、名前のまま、仮想ファイルに設定すりゃいいんじゃね? ためしに、ダイナミックパブリッシングを使う設定にしてみたら、ちゃんと属性が変わった、ビンゴ これで実ファイルに関係なくファイル情報保持出来るぜと思ったら、やっぱり誰かが真面目に情報消してやがんの

テスト用で色々書いた俺のコードのせいなのか、やっぱりクソ真面目に何かしてる奴が居るのか どっちかはよく分からん。 まぁ、何とかなりそうだから今日はこんなもんでいいや メモ残して未来の俺に託そう、がんばれ

メモ: ViewerとWebPublisher で2回テンプレビルドするの無駄だから、WebPublisherにコールバックかなんかでコンテンツ受け取る WebPublisher->rebuild_file を呼んでみてる所でFileInfoに影響あるかも Worker::Syncは名前があやしいな とりあえず、FileInfoの保持を何とかする