昨日の地震は凄かったです
本棚からマンガ三国志、1~7巻が飛び出てきました
ちなみに、ちょうど孫堅が死んだ所です。
先日に引き続き、いじってみます
まずはPHPにしてないと動かないので
挑戦する方は、そちらから
モジュール化ってなんだ?
って事ですが、見るのが一番でしょう
メインページの左メニュー部
<!-- 左サイドバー開始 -->
<div id="links-left">
<? include("/xxx/php/calendar.php"); ?>
<? include("/xxx/php/entry.php"); ?>
<? include("/xxx/php/search.php"); ?>
<? include("/xxx/php/profile.php"); ?>
</div>
<!-- 左サイドバー終了 -->
ココの左メニューは
これだけで表示されてます
calendar.php
<div class="sidetitle" id="calendarname">
<caption class="calendarhead"><$MTDate format="%B %Y"$></caption>
</div>
<div class="side" id="calendarlist">
<div class="calendar">
<table border="0" cellspacing="4" cellpadding="0" align="center" summary="投稿した日にリンクする月別のカレンダー">
<tr>
<th abbr="Sunday"><span class="calendar"><font color="#e50003">Sun</font></span></th>
<th abbr="Monday"><span class="calendar">Mon</span></th>
<th abbr="Tuesday"><span class="calendar">Tue</span></th>
<th abbr="Wednesday"><span class="calendar">Wed</span></th>
<th abbr="Thursday"><span class="calendar">Thu</span></th>
<th abbr="Friday"><span class="calendar">Fri</span></th>
<th abbr="Saturday"><span class="calendar"><font color="blue">Sat</font></span></th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td align="center" <MTCalendarIfToday>bgcolor="#ffffe0"</MTCalendarIfToday>><span class="calendar">
<MTCalendarIfEntries>
<MTEntries lastn="1"><a href="<$MTEntryLink archive_type="Monthly"$>#<$MTEntryID pad="1"$>"><$MTCalendarDay$></a></MTEntries>
</MTCalendarIfEntries><MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries><MTCalendarIfBlank> </MTCalendarIfBlank>
</span></td><MTCalendarWeekFooter></tr></MTCalendarWeekFooter></MTCalendar>
</table>
</div>
</div>
こっちは見覚えあると思います
calendar.phpを作ることによって
各エントリーで、毎回カレンダーを作っていたのが
calendar.php呼べばいんでしょ?
と、それだけで済んでしまいます
10件20件とかなら差はないけど
100件200件となると、各ページで作るより
calendar.phpが一回動けばいいので
ずいぶん負荷が変わると思われます
基本の4つのテンプレート
メイン・カレゴリー・月別・個別
それらの共通してる部分を抜き出し
別でファイルを作ればいいでしょう
僕はとりあえず、メニュー部と
折りたたみスクリプトをそうしてます
これがモジュール化って事だと思いますが
実は、あんまりよくわかりません(今更)
とりあえず一つ、メニューのテンプレート
新しいインデックス・テンプレートを作る、で
・テンプレートの名前
calendar
・出力ファイル名
calendar.php
・自動的に再構築する
チェック
・テンプレートの中身
上記calendar.phpの内容
(自身のテンプレートから抜いた方がいいです)
こんな感じで作成します
あとは元のカレンダー部分を
<? include("/xxx/calendar.php"); ?>
と置き換えるだけです
ちなみに、xxxは絶対パスにしてます
基本設定のローカルサイトパスの所です
いろいろ、調整してみて下さい。
ポイントは、自動的に再構築のチェックで
ここのチェックを外せれば、いいみたいです
カレンダーは更新させたいので付けてます
検索の部分とか、プロフィールとかは
更新しなくていいのでチェックを外します
そんな感じで、各テンプレートをいじくって
再構築してみれば、何か変化があると思います。
ここは、エントリー150件程度なので
劇的には変わらなかったけど
少なくとも気分的には、すっきりします
僕が一番すっきりしてるのは
メニューをちょっと変更したい時
今まで4つのテンプレートをいじる訳ですが
これが、抜き出して作ったファイルだけ
ちょこちょこっと触るだけで
それぞれのテンプレートに反映されるわけで
そこが僕の一番すっきりポイントです
こんな説明では、すっきりしない方は
欲求不満コメントをお待ちしております。
参考サイト
Magic White: PHP利用のテンプレートモジュール化
CROSSBREED: あなたのmovabletype、重たくないですか?
Boycott Street 221B: リビルドなんて怖くない