2004年12月15日

ic_cp05.gifPHPを使いこなす(サイドバーのモジュール化)

当初、この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を書き出すファイルを設定するんですが、その書き出しがうまくいかなかったようなです・・・。

これが出来たらもっとファイルサイズを小さくできるんでしょうが。
ムリでしたー。

いつか、また挑戦したいです!

Posted by michi at 2004年12月15日 14:15 | EDIT
トラックバック

» テンプレートのモジュール化で軽量化! from Site icon Project MultiBurst
このブログもエントリー数が200を超え、 リビルドにものすごい時間がかかるように... [続きを読む]

Tracked on 2005年04月28日 01:35

» モジュール化 from Site icon grumble
最近たいしてエントリー数は多くないんだけど、再構築にかなり時間がかかるようになっ... [続きを読む]

Tracked on 2005年05月27日 13:32
コメント

お疲れさまぁ。あたしも真ん中の記事部分はまだなんだぁ。いつかやってみたいけどね。おととい、再構築や新規投稿のときに 毎回500エラーが出るようになっちゃって、ビビッタわよ~~~。なんとか直ったみたいだけど。もうみなさまと会えないかと思ったわん。ヾ(@°▽°@)ノ あはは

Site icon Posted by さえら at 2004年12月15日 16:49 [RES]

トラックバックありがとうございました
参考にしていただけてなによりです
これからもどうぞよろしくです^^

Posted by Deepsnow [TypeKey Profile Page] at 2004年12月15日 23:42 [RES]

>さえらしゃんv

トホホ。誰か詳しく説明してほし~って感じvvv
再構築の時の500エラーは私もよくあるんだよ(汗)。
だもんで、モジュール化頑張りました!
さえらしゃんはバックアップちゃんととってるんだよねー。私もとらなきゃ~

> Deepsnowさん

同じXREAでしたので、なんか嬉しかったです。
今後ともよろしくお願いいたします!

Posted by ミッチ [TypeKey Profile Page] at 2004年12月16日 12:53 [RES]

Copyright © 2004-2024 micchi by kidoairaku. All Rights Reserved.