日別アーカイブに続き,月別アーカイブも PHP で表示することにする。
■ ■ ■
記事の概要を部品にしたので,月別アーカイブにもこの部品を PHP で読み込んで表示することにした。再構築でファイルを出力した場合,複数のテンプレートで利用してこそ意味があるというものだからである。
前提としては記事の概要の部品化をしておくことである(nlog(n): 長年日記を PHP で実装する)。
月別アーカイブの PHP 化は単純である。月別アーカイブテンプレートを編集し,<MTEntries>〜<MTEntries> を削除して,次のコードに置き換えればよい。
<?php
$thismonth = '<$MTArchiveDate format="%Y_%m"$>';
$files = glob("abstract/" . $thismonth . "_*.html");
foreach($files as $file) {
include($file);
}
?>
しましまに色づけをしたい場合は,上の替わりに次のコードにする。このサイトで使っているのはこれ。
<?php
$count = 1;
$search = '<div class="blogbody year';
$replaceeven = '<div class="blogbody evenbody">';
$replaceodd = '<div class="blogbody oddbody">';
$thismonth = '<$MTArchiveDate format="%Y_%m"$>';
$files = glob("abstract/" . $thismonth . "_*.html");
foreach ($files as $file) {
foreach (file($file) as $line) {
if (ereg($search, $line)) {
if ($count % 2) {
$line = $replaceeven;
} else {
$line = $replaceodd;
}
$count++;
}
echo $line;
}
}
?>
この場合は,スタイルシートに色づけ用のクラス evenbody と oddbody を定義しておく。
.oddbody {background-color: #FFF4EA;}
.evenbody {background-color: #FAFAFA;}
Posted by n at 2007-03-21 23:27 | Edit | Comments (0) | Trackback(0)