« | »

2004.10.07

モジュール化してみる。

昨日の地震は凄かったです
本棚からマンガ三国志、1~7巻が飛び出てきました
ちなみに、ちょうど孫堅が死んだ所です。


先日に引き続き、いじってみます
まずはPHPにしてないと動かないので
挑戦する方は、そちらから

モジュール化ってなんだ?
って事ですが、見るのが一番でしょう

メインページの左メニュー部

&lt!– 左サイドバー開始 –>
&ltdiv id=”links-left”>
&lt? include(“/xxx/php/calendar.php”); ?>
&lt? include(“/xxx/php/entry.php”); ?>
&lt? include(“/xxx/php/search.php”); ?>
&lt? include(“/xxx/php/profile.php”); ?>
&lt/div>
&lt!– 左サイドバー終了 –>


ココの左メニューは
これだけで表示されてます

calendar.php

&ltdiv class=”sidetitle” id=”calendarname”>
&ltcaption class=”calendarhead”>&lt$MTDate format=”%B %Y”$>&lt/caption>
&lt/div>
&ltdiv class=”side” id=”calendarlist”>
&ltdiv class=”calendar”>
&lttable border=”0″ cellspacing=”4″ cellpadding=”0″ align=”center” summary=”投稿した日にリンクする月別のカレンダー”>
&lttr>
&ltth abbr=”Sunday”>&ltspan class=”calendar”>&ltfont color=”#e50003″>Sun&lt/font>&lt/span>&lt/th>
&ltth abbr=”Monday”>&ltspan class=”calendar”>Mon&lt/span>&lt/th>
&ltth abbr=”Tuesday”>&ltspan class=”calendar”>Tue&lt/span>&lt/th>
&ltth abbr=”Wednesday”>&ltspan class=”calendar”>Wed&lt/span>&lt/th>
&ltth abbr=”Thursday”>&ltspan class=”calendar”>Thu&lt/span>&lt/th>
&ltth abbr=”Friday”>&ltspan class=”calendar”>Fri&lt/span>&lt/th>
&ltth abbr=”Saturday”>&ltspan class=”calendar”>&ltfont color=”blue”>Sat&lt/font>&lt/span>&lt/th>
&lt/tr>
&ltMTCalendar>
&ltMTCalendarWeekHeader>&lttr>&lt/MTCalendarWeekHeader>
&lttd align=”center” &ltMTCalendarIfToday>bgcolor=”#ffffe0″&lt/MTCalendarIfToday>>&ltspan class=”calendar”>
&ltMTCalendarIfEntries>
&ltMTEntries lastn=”1″>&lta href=”&lt$MTEntryLink archive_type=”Monthly”$>#&lt$MTEntryID pad=”1″$>”>&lt$MTCalendarDay$>&lt/a>&lt/MTEntries>
&lt/MTCalendarIfEntries>&ltMTCalendarIfNoEntries>&lt$MTCalendarDay$>&lt/MTCalendarIfNoEntries>&ltMTCalendarIfBlank> &lt/MTCalendarIfBlank>
&lt/span>&lt/td>&ltMTCalendarWeekFooter>&lt/tr>&lt/MTCalendarWeekFooter>&lt/MTCalendar>
&lt/table>
&lt/div>
&lt/div>


こっちは見覚えあると思います

calendar.phpを作ることによって
各エントリーで、毎回カレンダーを作っていたのが
calendar.php呼べばいんでしょ?
と、それだけで済んでしまいます

10件20件とかなら差はないけど
100件200件となると、各ページで作るより
calendar.phpが一回動けばいいので
ずいぶん負荷が変わると思われます

基本の4つのテンプレート
メイン・カレゴリー・月別・個別
それらの共通してる部分を抜き出し
別でファイルを作ればいいでしょう

僕はとりあえず、メニュー部と
折りたたみスクリプトをそうしてます
これがモジュール化って事だと思いますが
実は、あんまりよくわかりません(今更)


とりあえず一つ、メニューのテンプレート
新しいインデックス・テンプレートを作る、で

・テンプレートの名前
calendar
・出力ファイル名
calendar.php
・自動的に再構築する
チェック
・テンプレートの中身
上記calendar.phpの内容
(自身のテンプレートから抜いた方がいいです)

こんな感じで作成します

あとは元のカレンダー部分を
&lt? include(“/xxx/calendar.php”); ?>
と置き換えるだけです

ちなみに、xxxは絶対パスにしてます
基本設定のローカルサイトパスの所です
いろいろ、調整してみて下さい。


ポイントは、自動的に再構築のチェックで
ここのチェックを外せれば、いいみたいです
カレンダーは更新させたいので付けてます

検索の部分とか、プロフィールとかは
更新しなくていいのでチェックを外します

そんな感じで、各テンプレートをいじくって
再構築してみれば、何か変化があると思います。


ここは、エントリー150件程度なので
劇的には変わらなかったけど
少なくとも気分的には、すっきりします

僕が一番すっきりしてるのは
メニューをちょっと変更したい時
今まで4つのテンプレートをいじる訳ですが

これが、抜き出して作ったファイルだけ
ちょこちょこっと触るだけで
それぞれのテンプレートに反映されるわけで

そこが僕の一番すっきりポイントです

こんな説明では、すっきりしない方は
欲求不満コメントをお待ちしております。


参考サイト
Magic White: PHP利用のテンプレートモジュール化
CROSSBREED: あなたのmovabletype、重たくないですか?
Boycott Street 221B: リビルドなんて怖くない

関連してそうな記事

人気ありそうな記事

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">