月別アーカイブリスト最新年だけ折りたたみなし
今日の MT 作業報告.
まず、新規エントリ投稿の際に、まんま実画面どおりのプレビューができるようにしました.
今まで? 公開してブラウザから見て確認してましたよw アクセス解析も置いたので、さすがにちょっとまずいなぁと思いましてね.
使わせていただいたのは、こちら.
先に以前のバージョンを見つけてしまってインストールしたら、うまく動かず. 3.3 対応のは、もちろん問題ありませんでした.
さて、タイトルにもした本題.
8/18 にも書いたように、折りたたまれた月別アーカイブリストのうち、最新年(つまり今年)の分だけは折りたたみなしで表示しておきたい. この blog は、まだ去年と今年しかありませんから、あんまり意味がないですが...
Compare というプラグインでどうかと考えました. 入手先はこちら.
どっかで見たサイトデザインだと思ったら、BigPAPI もここでしたか.
いろいろな比較ができるようですが、
<MTIfEqual a="〜" b="〜"> 処理 </MTIfEqual>
とやれば、a と b の内容が同じ場合にのみ、タグではさんだ部分の処理をしてくれます. <MTElse> を使えば、同じ場合、同じでない場合で処理の振り分けをすることも可能.比較するのは、現在の年とアーカイブリストの年です. 前者は <$MTDate format="%Y"$> で、後者は <$MTArchiveDate format="%Y"$> で取れます. これは簡単.
<MTIfEqual> の中では、MT タグは < > と $ を取って、[] で囲む書式. よって比較部は、
<MTIfEqual a="[MTDate format='%Y']" b="[MTArchiveDate format='%Y']">
と書けばよさそうです.で、処理をどうするか.
menufolder.js による折りたたみでは、折りたたみのタイトルに相当する部分に 〜name、リストに相当する部分に 〜list という ID を割り当てることになっています. アーカイブリストの実際の部分では、
<MTArchiveDateHeader>
<div id="archive<$MTArchiveDate format="%Y"$>name">
<$MTArchiveDate format="%Y"&>
</div>
この ID 指定がなければ、折りたたみは作動しないはず. ならば、<MTIfEqual> による上記の判定が yes なら ID を指定をせず、no なら ID 指定すればいいのではないだろうか.
結果として考えたコードがこれ.
<MTArchiveDateHeader>
<MTIfEqual a="[MTDate format='%Y']" b="[MTArchiveDate format='%Y']">
<div>
<MTElse>
<div id="archive<$MTArchiveDate format="%Y"$>name">
</MTElse>
</MTIfEqual>
<$MTArchiveDate format="%Y"&>
</div>
メインページは、今思ったとおりに表示されていると思うんですが、上のコードでばっちりでした.
いや、これはまじで面白かった.
では次回のお題.
「日付アーカイブページでも、今表示されているアーカイブに関連した年のリストは、折りたたまないで表示させる」.
これ、やらなくてもいいかと書いたんですが、やっぱりやってみますw
