年毎の月別リスト(何)の完成...と覚書(その2)
先に書いた2008年10月 1日(水) - 年毎の月別リスト(何)の完成...と覚書(^^;の「その2」.いやその2といってもほぼ完成形といったほうが正しいかもしれないんだけど,追記で書くよりもエントリーとして書いた方がここを見に来る人(いるのか?)にとっては良いんじゃね?ということで改めてテンプレートを公開します.
<dl class="mlist">
<MTArchiveList archive_type="Individual" lastn="1">
<MTSetVarBlock name="endy"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<MTSetVarBlock name="endm"><$MTArchiveDate format="%B"$></MTSetVarBlock>
</MTArchivelist>
<MTArchiveList archive_type="Yearly">
<MTSetVarBlock name="year"><$MTArchiveDate format="%Y"$></MTSetVarBlock>
<dt><a href="<$MTBlogURL$><$MTArchiveDate format="%Y/"$>"><$MTArchiveDate format="%Y年"$></a>(<$MTArchiveCount$>)</dt>
<MTArchiveList archive_type="Monthly">
<MTSetVarBlock name="month"><$MTArchiveDate format="%B"$></MTSetVarBlock>
<MTSetVarBlock name="count" index="$month"><a href="<$MTBlogURL$><$MTArchiveDate format="%Y/%m/"$>" title="<$MTArchiveDate format="%Y年%B月"$>(<$MTArchiveCount$>)"><$MTArchiveDate format="%B月"$></a></MTSetVarBlock>
</MTArchiveList>
<MTIf name="year" ne="$endy"><MTSetVar name="endm" value="12"></MTIf>
<dd><ul><MTFor var="m" from="1" to="$endm">
<MTIf name="count" index="$m">
<li><$MTGetVar name="count" index="$m"$></li>
<MTElse>
<li><$MTGetVar name="m" sprintf="%d月"$></li>
</MTIf>
</MTFor></ul></dd>
<$MTSetVar name="count" function="undef"$>
</MTArchiveList>
</dl>
キモとなる改変部分については強調しているので分かると思うけど,月を添え字にした配列変数をセットすることについては前のエントリーの追記で書きました.んで今回のテンプレートではその配列変数に該当月のハイパーリンクそのものを格納してしまうことにより,<MTFor>内での分岐処理(先頭部分を強調してます)を簡素化しました.
まぁ,やっていること自体は前の追記で書いたことと比べてもそんなに変わってはいないんですけど(<$MTGetVar$>で変数mを複数回呼び出す必要が無くなったので,可読性という意味では良くなった気がする(^^;).また,配列変数のクリアについては<MTFor>のループが終わった時点でまとめて行っています.
なお,当該テンプレートではハイパーリンクの先頭部分を<$MTBlogURL$>としていますが,アーカイブのURIが<$MTBlogURL$>とは別の階層にある場合は,<$MTBlogArchiveURL$>となります.うちの場合はどっちでも全く問題ないんで,短い方にしているというだけですので念のため(^^;

Comments:0