Movable Type 3.2 と 3.31 におけるサブカテゴリーリストの表示の違いについて

Movable Type 3.2 と 3.31 におけるサブカテゴリーリストの表示の違いについて

Posted at August 17,2006 2:20 AM
Tag:[MovableType, SubCategory, TroubleShooting]

3.31-ja でサブカテゴリーリストの動作を確認している途中、3.2-ja-2 と比較して下記の違いを発見しましたので、ご報告まで。

まず、次のような構造のカテゴリーがあると仮定します。

趣味
 └ パソコン
   ├ mixi
   └ ブログ

このカテゴリーを、公開テンプレートで利用しているサブカテゴリーリストのMTタグ

<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>

を使用して、トップページおよびカテゴリー・アーカイブでの表示を 3.2 と 3.31 で比較してみます。

まず 3.2-ja-2 のサブカテゴリーリストとして表示した結果です。

トップページでの表示トップページ:全カテゴリーが表示される
トップページでの表示「趣味」カテゴリー・アーカイブ:サブカテゴリーの「パソコン」カテゴリー以下を表示
トップページでの表示「パソコン」カテゴリー・アーカイブ:サブカテゴリーの「mixi」「ブログ」カテゴリーを表示
トップページでの表示「ブログ」または「mixi」カテゴリー・アーカイブ:表示なし

次に全く同じタグを使用して、3.31-ja のサブカテゴリーリストとして表示した結果です。

トップページでの表示トップページ:全カテゴリーが表示される
トップページでの表示「趣味」カテゴリー・アーカイブ:サブカテゴリーの「パソコン」カテゴリー以下を表示
トップページでの表示「パソコン」カテゴリー・アーカイブ:サブカテゴリーの「mixi」「ブログ」カテゴリーを表示
トップページでの表示「ブログ」または「mixi」カテゴリー・アーカイブ:全カテゴリーが表示される

青色と赤色で示した文言からお分かりの通り、3.31-ja では最下層のサブカテゴリーで全カテゴリーが表示されます。
とりあえずシックス・アパートのフィードバックには報告させて頂きました。

3.31-ja で 3.2-ja-2 と同様の表示、つまり最下層のカテゴリー・アーカイブでサブカテゴリーリストを非表示にするためには、

lib/MT/Template/ContextHandlers.pm

に対して下記のパッチをあてると良いでしょう。

--- lib/MT/Template/ContextHandlers.pm.bak      Thu Aug 17 01:54:30 2006
+++ lib/MT/Template/ContextHandlers.pm  Thu Aug 17 01:55:33 2006
@@ -3937,7 +3937,7 @@
             }
         }
     }
-    if (!@cats) {
+    if (!@cats && ($ctx->{current_archive_type} ne 'Category')) {
         # Otherwise, use the top level categories
         @cats = MT::Category->top_level_categories($ctx->stash('blog_id'));
     }

他に適切な対処があるようでしたらお許しください。

関連記事
トラックバックURL


コメント

サブカテゴリーのサブカテゴリーには全カテゴリーが表示される問題が発生し、このページに来ることができました。

しかし、lib/MT/Template/ContextHandlers.pmに上記のソースを加えてみるとエラーが表示されます。

私の方法が間違っているのでしょうか?

お忙しいとは思いますがご教授ください。

[1] Posted by 渡辺 : August 16, 2007 8:10 PM

>渡辺さん
こんにちは。
ご質問の件ですが、何をするとどこでどのようなエラーになりますでしょうか。
またパッチは適正にあてられてますでしょうか(参考「パッチの適用方法」)
もう少し情報頂ければ幸いです。
それではよろしくお願い致します。

[2] Posted by yujiro : August 20, 2007 3:09 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)