カテゴリーリストで MTArchiveListHeader と MTArchiveListFooter が正常に動作しない問題
昨日の「JavaScript 不要なサイドメニューのツリー化 for Movable Type」で掲載を見送った、カテゴリーリスト(一括表示)の問題について報告します。
現状(3.31-ja)用意されているMTタグより、ツリー化表示を実現するためのカテゴリーリスト(一括表示)については
<ul class="tree">
<MTArchiveList archive_type="Category">
<li class="tree<MTArchiveListFooter>_end</MTArchiveListFooter>"><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> [<$MTArchiveCount$>]</li>
</MTArchiveList>
</ul>
という風に、MTArchiveList、MTArchiveListFooter 等を使用するのが適切と考えます。理由は、MTCategories のタグセットにはリストの最後を示す MTCategoryFooter が用意されていないためです。
上記のタグ構成は月別アーカイブリスト、
<ul class="tree">
<MTArchiveList archive_type="Monthly">
<li class="tree<MTArchiveListFooter>_end</MTArchiveListFooter>"><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> [<$MTArchiveCount$>]</li>
</MTArchiveList>
</ul>
とほぼ同じで、異なるのは赤色の archive_type 属性名のみです。
さて、上記の月別アーカイブリストのMTタグを再構築すると、生成されるHTMLは
<ul class="tree">
<li class="tree"><a href="http://hogehoge/2006/08/">2006年08月</a> [1]</li>
<li class="tree"><a href="http://hogehoge/2006/02/">2006年02月</a> [1]</li>
<li class="tree"><a href="http://hogehoge/2006/01/">2006年01月</a> [1]</li>
<li class="tree_end"><a href="http://hogehoge/2005/12/">2005年12月</a> [1]</li>
</ul>
と、正常に最後の li タグの class 属性のみに "tree_end" が設定されるのですが、カテゴリーリストを再構築すると、
<ul class="tree">
<li class="tree_end"><a href="http://hogehoge/cat1/">test1</a> [1]</li>
<li class="tree_end"><a href="http://hogehoge/cat2/">test2</a> [1]</li>
<li class="tree_end"><a href="http://hogehoge/cat3/">test3</a> [1]</li>
<li class="tree_end"><a href="http://hogehoge/cat4/">test4</a> [1]</li>
</ul>
と、ご覧の通り、全ての li 要素の class 属性名に "tree_end" が設定されたHTMLが生成されます。つまり、MTArchiveListFooter が期待する動作になりません。3.2 でも実施してみましたが同様の結果でした。
該当部分のソースコードを見たところ、カテゴリーリストの場合のみ MTArchiveList の処理から MTCategories の処理に移し変えているのが原因と思われます。MTCategories の処理に MTArchive? というタグを処理するコードが存在しないためです。
したがってタイトルの通り、MTArchiveListHeader も同様に機能しません(制限事項として挙げられていたらすいません)。
ということで、一括表示のカテゴリーリストについては JavaScript を用いたツリー表示が必要となります。
- Movable Typeでエラー発生箇所を特定する方法
- IE9でMovable Typeを利用する方法
- MTIfタグにtagモディファイアを利用する場合の注意事項
- Movable Type 5のブログの設定で「Can't call method "label" on unblessed reference」が発生する問題について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)
- XREA/CORESERVERでMovable TypeのCaptchaが表示されない不具合について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について
- Movable Typeの復元時に「Malformed UTF-8 character~」エラーとなる対処について
- Movable Type 5で「テンプレート「Create Entry」の再構築中にエラーが発生しました」というエラーが発生する件について
- Movable Type 5で「サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。」となる事象について
- ダイナミックパブリッシングでURLが重複する事象について
- Movable Type 5(MT5)の FastCGI 環境で管理画面の URL が変更されない事象について
- ブログ記事タイトルを改行できるようにする
- MTEntries タグ + sort_by モディファイアでブログ記事がソートされない件
- 日本語ドメインによると EntryTrackbackData タグの不具合
- Movable Type 5.0(MT5.0)の Include タグと append モディファイア・prepend モディファイアの組み合わせについて
- Movable Type 5.0(MT5.0)で更新通知が送信できない不具合と対処
- Movable Type 5.0 のスケジュールタスクでエラーになる件について
- Movable Type で「~」が「?」に文字化けする事象や日本語のタグが合算できない不具合を解消する
- Movable Type 4.261 でのダイナミックパブリッシングエラーについて
- JavaScript 不要なサイドメニューのツリー化 for Movable Type
- 第88回全国高校野球選手権大会
- サイドメニューのツリー化スクリプト(改)
- サブカテゴリーリストの折りたたみ
- サブカテゴリーリストの折りたたみ+ツリー化 for Movable Type
- JavaScript 不要なサイドメニューのツリー化 for Movable Type(MTCollate編)
- Movable Type 3.3 で TypeKey サイン・イン時の JavaScript エラーを解消する
- カテゴリーリストをサブカテゴリー表示に切り替える
- Movable Type(MT)テンプレート
- サブカテゴリーリストのツリー画像で親カテゴリーのみ異なる画像を表示する
≫ MT: MTCategories中で最初と最後の要素向けの出力を可能にするMTCategoriesHeader|Footerパッチ from ひろ式めもちょう
なんか最近、MovableTypeの話ばっかだな。カテゴリ作ったほうがいいのかしらん。なぜSeesaaブログユーザーがこんなに…。 http://mem... [続きを読む]
