Movable Type の PHP モジュール化の仕組みについて(その4:再構築オプション利用方法)

Movable Type の PHP モジュール化の仕組みについて(その4:再構築オプション利用方法)

Posted at March 9,2005 5:35 PM
Tag:[Customize, Module, MovableType, PHP]

この回ではモジュール化による再構築オプションの有効な利用方法について説明します。

「再構築オプション」は各テンプレート編集画面の右上にあるチェックボックスを指します。このオプションはユーザー・マニュアルテンプレートの編集にある通り、チェックボックスにチェックをつけるとエントリー投稿時等に再構築対象となり、逆にチェックを外すとテンプレート編集画面等から再構築をしない限り情報は更新されません。つまりモジュール化において「再構築オプション」にチェックをする・しないが、再構築時間短縮の重要なポイントになります。

ということでチェックするための目安となる表を作ってみました。

モジュール化対象データ再構築が必要な契機チェック要否
ブログタイトル・バナー・バージョン等管理画面等からの変更時不要
カレンダー次表参照
最近のエントリー
カテゴリーリスト
月別アーカイブリスト
最近のコメントコメント投稿時
最近のトラックバックトラックバック受信時

チェック要否の要・不要は主観的な判断です。タイトル等の恒常的に普遍なモジュールは基本的に再構築対象とせず、「最近のコメント」「最近のトラックバック」のモジュールは「再構築オプション」にチェックをつけておかないとコメントが投稿された時にコメント内容がリアルタイムにページに反映されなくなります。
カレンダー?月別アーカイブリストについての再構築要否については再構築契機を細分化できるので、次表に分けてみました。

データ再構築が必要な契機
カレンダーその日の最初のエントリー投稿時
最近のエントリーエントリー投稿時(更新時は不要)
カテゴリーリスト件数表示:エントリー投稿時
件数非表示:新カテゴリーでのエントリー投稿時
月別アーカイブリスト件数表示:エントリー投稿時
件数非表示:月の最初のエントリー投稿時

カテゴリーリスト・月別アーカイブリストの「件数表示・非表示」の意味は次の通りです。
例えば月別アーカイブリストにエントリー件数を表示していない(=件数非表示)場合、ある月のリンク(月別アーカイブページへのリンク)を月別アーカイブリストに追加するためには、その月の最初のエントリー投稿後に「月別アーカイブリスト」のモジュールを一度だけ再構築すればよく、このモジュールは次月まで再構築する必要はありません。ただしエントリー件数を表示している(=件数表示)場合はエントリー投稿後に再構築しないと件数が反映されません。
カテゴリーリストも同様です。

基本的には、タイトル等のスタティックデータ用モジュールを除いた全てのモジュールに再構築オプションをチェックしておけば利便性が良いのですが、レンタルサーバ等で500エラーが頻発する場合、再構築オプションのチェックを外し、エントリー投稿後に必要なモジュールを個別に再構築するのが良いのではないかと思います。
削除動作については管理メニューから再構築が促されるので省略しています。

それぞれのモジュールを個別のインデックステンプレートとして登録すると、数が増えてメニューや管理が煩雑になるので、いくつかのモジュールをまとめてひとつのインデックステンプレートとするのもよいでしょう。またアーカイブページによってモジュールのレイアウトが異なる場合は、レイアウト用の中間的なモジュールを作ると個別モジュールが再利用できて便利です。

その1:概要
その2:具体的動作とMTIncludeとの違い
その3:変更方法
その4:再構築オプション利用方法
関連記事
トラックバックURL


トラックバック

MTのモジュール化。 from TOY COZY MUSEUM 別館
個人的にもとてもタイムリーというか、MTのモジュール化について、「小粋空間」様が非常にワカリやすく数回に分けて解説してくださっていますので、非常に助かっておりま... [続きを読む]

Tracked on March 9, 2005 10:26 PM

モジュール化に挑戦! from Vinyl Lab. Blog
便利そうなテクニックを発見 Movable Typeばかりいじくっている今日この... [続きを読む]

Tracked on June 13, 2005 10:52 PM

MovableType ダイナミックパブリッシング from イベント・レンタル屋の情報共有
大阪本社の松本です。 本日、このブログとは別のMovableTypeで、先日に正式リリースされたバー... [続きを読む]

Tracked on October 8, 2005 12:27 AM

PHP化による各部のモジュール化 from Magic Trap
今回はMovableType3.2-ja-2のテンプレート出力をPHP化した場... [続きを読む]

Tracked on May 13, 2006 4:59 PM
コメント

こんばんは・・・。
とてもとても為になる連載に感謝しています。モジュール化について、根本的なトコロが解ってなかったワタシには、一筋どころか二筋、三筋(笑)・・・の眩しい光が差し込んだようで、とても助かりました。今後も解りやすい解説に期待しております。

[1] Posted by toycozy : March 9, 2005 10:27 PM

>toycozyさん
こんばんは。
記事参照&トラックバックありがとうございます。
2回ほどで終わるつもりだったのですが、意外に書くことがいっぱいあって結構な量になってしまいました。(笑)
とりとめのない内容になってしまいましたがお読みくださりありがとうございます!

[2] Posted by yujiro : March 10, 2005 1:43 AM

いつもお世話になっています。
このコンテンツ内容とは少ししか関連性がないのですが、どうしても解決しない問題があるので質問させてください。

こちらで配布されているテンプレートを使用していないのでマナー違反かもしれませんが、再構築時に500エラーが出て困っています。
色々試したのですが、どうもアーカイブ・エントリーの再構築時のみエラーが出るようです。アーカイブ・エントリーからエラーが出るので全てを再構築する、と選んだときも500エラーが出てしまします。
他の個別のアーカイブにおける再構築は正常にできます。
サーバーはロリポップを使用しています。ロリポップに問い合わせたところ、サーバーは正常に作動していることくらいしかわからないとのことでした。
エントリー数は全25件、カテゴリーは5つに分けています。
25件までは普通に全体の再構築を行えたのですが、26件目からは500エラーが出るようになりました。
何日か奮闘して、どうしようもないのでまた新しくブログを作ってはじめからやり直したのですが、やっぱり26件目から全体の再構築時に500エラーが表示されてしまします。
一体どこを直せばよいのかアドバイスお願いします。

[3] Posted by みずほ : April 25, 2006 4:35 PM

>みずほさん
こんにちは。
本日投稿したMovable Type で再構築エラーになる場合の原因と対処が参考になれば幸いです。
それではよろしくお願い致します。

[4] Posted by yujiro : April 26, 2006 5:21 PM

yujiroさん、こんにちは。

ありがとうございます。サイドバーの過去記事を削除して解決できました。よくよく違う記事でのコメントを見れば、同じ質問をしている人がたくさんいたのですね。

お手数をおかけしましてすいません↓

[5] Posted by みずほ : April 26, 2006 6:27 PM

>みずほさん
こんばんは。
ご連絡ありがとうございました。
解消されたようでなによりです。
ではでは!

[6] Posted by yujiro : April 27, 2006 1:17 AM

yujiroさん

こんにちは。
この記事も非常に参考になりました。
PHPモジュール化のおかげでカスタマイズが劇的に楽になりました。ありがとうございます。


私も稚拙ながら関連する記事を書いたのでこの記事にトラックバックさせて頂こうと思ったのですが、その際に403エラーを返してきました。現在は受け付けてないのでしょうか?

[7] Posted by MT : May 13, 2006 5:10 PM

連投すみません!

こちらのトラックバックを確認したら反映されていました。お騒がせしました。

[8] Posted by MT : May 13, 2006 5:12 PM

>MTさん
こんばんは。
コメント&トラックバックありがとうございました。
エラーがたまに返送されるようですのでお許しください。
ではでは!

[9] Posted by yujiro : May 14, 2006 1:43 AM

はじめまして。
現在PHP化を検討しているのですが、
Perlで作られたプラグインが使用できなくなるという情報をよく目にするため、
踏み切れずにいます。
例えば、「最近のエントリー」のような全ページ共通ではあるが、
エントリーを追加した場合に更新されるべき内容の部分を
インデックステンプレートとして書き出しておいて、PHPで読み込むようにしたいと考えています。

このような用途だけであれば、
Perlで作成されたプラグインを使用できそうな感じがするのですが、
そのような記述はどのサイトでも確認できないため、踏み切れない状態です。

よろしければ教えていただけないでしょうか。

[10] Posted by 匿名 : January 29, 2009 8:50 PM

>匿名さん
こんばんは。
ご質問の件ですが、細かい説明は省略しますが、ダイナミックパブリッシングを使用しなければ、PHP化(スタティックパブリッシングでファイルの拡張子を.php にするだけ)でもプラグインは利用できます。
ご質問の方法も大丈夫だと思います。
それではよろしくお願い致します。

[11] Posted by yujiro logo : January 31, 2009 3:41 AM

> yujiro さん
ありがとうございます。
ダイナミックパブリッシングさえ使用しなければ
perlのプラグインも使用できるとのことで安心しました。
PHP化、やってみようと思います!!

[12] Posted by 匿名 : February 2, 2009 11:26 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)