- 2007-03-15 (木) 10:53
- MovableType


- 失敗作・月別アーカイブリスト・ダイナミックパブリッシング対応版
あんちもん2さんが、「Compare」をダイナミック・パブリッシング対応にして下さったので、今まで「Counter Plugin」プラグインで実現していた、月別アーカイブリストを「AutoIncrementalVar」+「Compareプラグイン」に書き換えてみました。
「別にそんなの要らないじゃン」て意見も聞こえてきますが、個人的なこだわりで、月の並び(インライン指定して横にLIが並ぶようになってる)が、6個までになるようにしたかったんで、6番目が自動的にULを閉じて、新しくまたULを挿入するようにしてます。
月が幾つ並んだかを見て、処理を振り分けるようにしたかったんです。
以前の「Counter」プラグインでのソースはこうなってますが、書き換えたことにより同じ処理をダイナミック・パブリッシング下で出来る様になりました。
それでは、あんまり奇麗じゃないけれど、ソースは以下になります。
くそ~!失敗だぁ。MTArchiveDateHeaderとMTArchiveDateFooterが、プラグインだったのすっかり忘れてました。結局これじゃ駄目なんで、元のテンプレートに戻そう・・・・
言ってみるもんだなぁ、あんちもん2さんが、早速ダイナミックパブリッシング用のMTArchiveDateHeaderとMTArchiveDateFooterを作ってくれちゃいました。しかもバグまで見つけて・・・
<MTIfArchiveTypeEnabled archive_type="Monthly"><div class="module-archives module"><h2 class="module-header">月別アーカイブ</h2><div class="module-content"><MTArchiveList archive_type="Monthly"><MTArchiveDateHeader><ul class="module-list archivelist"><li class="flat-cal-block"><$MTArchiveDate format="%Y"$><$MTSetVarAutoIncremental name="noofmonth" value="1"$><ul class="falt-cal-month-upper"></MTArchiveDateHeader><li class="flat-cal-list"><a href="<$MTArchiveLink$>" title="<$MTArchiveTitle$>の月間アーカイブ(<$MTArchiveCount$>エントリー)"><$MTArchiveDate format="%m"$></a></li><MTIfEqual a="[MTGetVarWithoutIncrement name='noofmonth']" b="6"></ul><ul class="falt-cal-month-lower"></MTIfEqual><$MTIncrementVar$><MTArchiveDateFooter><MTIfNotEqual a="[MTGetVarWithoutIncrement name='noofmonth']" b="6"></ul></MTIfNotEqual></li></ul></MTArchiveDateFooter></MTArchiveList></div></div></MTIfArchiveTypeEnabled>
いつも通り、テキスト状態のソースも公開しときます。
もしかしたらCompareの中で使っている、MTGetVarWithoutIncrement name='noofmonth'は、MTGetVarWithIncrement name='noofmonth'にして、その後の<$MTIncrementVar$>を省略しても良いのかもしれない。
でもこうやって、どんどん静的再構築対象が減ってくれると、とてもうれしいなぁ・・・
[追記:当たり前のように使ってたんで、MTArchiveDateHeader と MTArchiveDateFooter が、プラグインで拡張したせいで使えるタグだって、すっかり忘れていました。意外とこういうのあるのかな]
- Newer >: またまたFast Search 2.0アップデート
- < Older: 今日は何の日?
ping a Trackback
- TrackBack URL for this entry.(1)




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。