2004年12月15日
PHPを使いこなす(サイドバーのモジュール化)
当初、このMTは.htmlで始まったのですが
見渡す限り.phpとなっているMTが目立つ目立つ。
で、私も思いきってMTのPHP化を図りました。
当サイト:「htmlをphpに。そしてページ分割してみる。」
確かに、HTMLファイルと比べると若干ファイルサイズが少なくなりました。
ページ分割という処理にもPHP化必須ということでしたので
PHP化してよかったなと思っていました。
でも!
PHPのすごいところはまだあったんですねー!
せっかくPHP化したならば、テンプレートのモジュール化をしないでどーする!
ってことらしいのです(笑)。
私も初めは、モジュール化って何?状態(笑)。
つまり、こんな感じなんです。
<!-- 左サイドバー開始 -->
<div id="links-left"><!-- カレンダー -->
<? include("/×××/public_html/blog/calendar.php"); ?>
<!-- カレンダー終わり --><!-- PHSの窓から -->
<? include("/×××/public_html/blog/phsmoblog.php"); ?>
<!-- PHSの窓から終わり --><!-- 最新記事 -->
<? include("/×××/public_html/blog/entrylist.php"); ?>
<!-- 最新記事終わり --><!-- 最新コメント -->
<? include("/×××/public_html/blog/commentlist.php"); ?>
<!-- 最新コメント終わり --><!-- トラックバック -->
<? include("/×××/public_html/blog/pingedentrylist.php"); ?>
<!-- トラックバック終わり --></div>
<!-- 左サイドバー終了 -->
これは当サイトの左サイドバーの部分。
今までずらずらと長ーいソースだったところが、
それぞれ、なにやらファイルを読み込んでる1文のみでしょう?
例えば、トラックバックのところのpingedentrylist.phpは何かというと、
<div class="sidetitle">
トラックバック
</div><div class="side">
<MTPings lastn="10">
<MTPingedEntry>
<a href="<$MTPingedEntryLink$>">Re: <$MTPingedEntryTitle$></a>
</MTPingedEntry><br />
└--<a href="<$MTPingURL$>" target="_blank"><$MTPingTitle$></a><br/>
from <$MTPingBlogName$> <$MTPingDate format="%m/%d %X"$><br/>
</MTPings>
</div>
これが入ってます。
今まで各テンプレートで作っていた部分を
今度は、1度作っちゃってそれを毎回呼ぶといった形になるんですねー。
これが、なんだかモジュール化らしいです(笑)。
今回は、左の他に、右のサイドバーも全てモジュール化しました。
(疲れました・・・)
こうした形にしておけば、何がいいのか。
①例えば「トラックバック」という部分のソースをいじりたい時
今までこれが組み込まれている全てのテンプレートを修正しないといけませんでした。
それが、「pingedentrylist.php」というファイル1つをいじれば全てのテンプレートに反映されるんですねー。
②それから、今まで長ーいサイドバーのソースが上記のように短くなったためソレを使っているテンプレートのファイルサイズが小さくなります。
③さらに!記事とは関係ない部分、例えばうちでいうと「こうさぎ」や「検索」「リンク」といった部分は毎回再構築しなくてもいいですよね?
なので、毎回再構築をしない設定にすると、鯖への負荷も減るというわけなんですね。
そんなこんなで、参考にさせていただいたサイト様は
「CROSSBREED」様:「あなたのmovabletype、重たくないですか?(テンプレートモジュール化)」
「深い雪」様:「モジュール化してみる。」
本当にありがとうございました。<(_ _)>
失敗談
CROSSBREED様の記事によりますと、記事の部分のモジュール化もできるそうなんです!
ちなみにちょこっと試してみたんですが・・・・orz
やっぱり素人は手を出しちゃいけない領域だったのでしょうか(汗)。
うまくアーカイブテンプレートのところにEntryBodyを書き出すファイルを設定するんですが、その書き出しがうまくいかなかったようなです・・・。
これが出来たらもっとファイルサイズを小さくできるんでしょうが。
ムリでしたー。
いつか、また挑戦したいです!
» テンプレートのモジュール化で軽量化! from
Project MultiBurst
このブログもエントリー数が200を超え、 リビルドにものすごい時間がかかるように... [続きを読む]
» モジュール化 from
grumble
最近たいしてエントリー数は多くないんだけど、再構築にかなり時間がかかるようになっ... [続きを読む]
お疲れさまぁ。あたしも真ん中の記事部分はまだなんだぁ。いつかやってみたいけどね。おととい、再構築や新規投稿のときに 毎回500エラーが出るようになっちゃって、ビビッタわよ~~~。なんとか直ったみたいだけど。もうみなさまと会えないかと思ったわん。ヾ(@°▽°@)ノ あはは
>さえらしゃんv
トホホ。誰か詳しく説明してほし~って感じvvv
再構築の時の500エラーは私もよくあるんだよ(汗)。
だもんで、モジュール化頑張りました!
さえらしゃんはバックアップちゃんととってるんだよねー。私もとらなきゃ~
> Deepsnowさん
同じXREAでしたので、なんか嬉しかったです。
今後ともよろしくお願いいたします!