カレンダーの日付を強調

MovableTypeのトップページのカレンダの日付の当日の部分が強調表示できたらわかりやすいなぁと思っていたところ、「This Category Entries」+1のページでヒントを頂きました。


スタイルシートをうまく使って、カレンダを強調すればいいんですね。
具体的に書くとこんな感じです。前提条件としてはphpになっていないと機能しません。
メインページの<head>部分で下記のとおり書きます。

<STYLE type=”text/css”>
<!–
<?php
 print ‘.UnderLine’ . date(“m”) . date(“d”) . ‘{‘;
?>
border: solid;
border-width: 1px;
}
–>
</STYLE>

当日の日付を元にしたスタイル(.UnderLineYYYYMM)を宣言します。
次にカレンダ表示部分を下記のとおり書きます。
<table summary=”投稿されたエントリーへのリンク付き月間カレンダー”>
<caption><$MTDate format=”%B %Y”$></caption>
<tr>
<th class=”sunday” abbr=”日曜日”>日</th>
<th class=”weekday” abbr=”月曜日”>月</th>
<th class=”weekday” abbr=”火曜日”>火</th>
<th class=”weekday” abbr=”水曜日”>水</th>
<th class=”weekday” abbr=”木曜日”>木</th>
<th class=”weekday” abbr=”金曜日”>金</th>
<th class=”saturday” abbr=”土曜日”>土</th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td><MTCalendarIfEntries><MTEntries lastn=”1″><div class=”Underline<$MTCalendarDate format=”%m%d” $>”><a href=”<$MTEntryPermalink$>”><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries><MTCalendarIfNoEntries><div class=”Underline<$MTCalendarDate format=”%m%d” $>”><$MTCalendarDay$></MTCalendarIfNoEntries><MTCalendarIfBlank> </MTCalendarIfBlank></div></td><MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
</table>

トップページのカレンダの当日部分が強調表示されるようになりました!!
この方法のメリットは、PHPのコードにて動的にスタイル名称を作っていますので月が変わらない間はリビルドしなくても大丈夫です。
月が変わったときだけリビルドが必要です。
個別アーカイブも上記の応用でカレンダを強調表示することが出来るようになりました。

コメントを残す