TopMovable Typeカスタマイズサイドバー > サイドバーの表示をメインページと同じにする
2007年12月 6日

サイドバーの表示をメインページと同じにする

Posted at December 6,2007 1:11 AM
Category:[サイドバー, テンプレートタグ]
Tag:[, , , ]

Movable Type 4 で、サイドバーの表示をメインページと同じにするカスタマイズです。
複数の方から「各ページのサイドバーの表示をメインページを同じしたいのですが」という質問を頂きましたので、このエントリーで紹介致します。

ここでは当ブログの配布テンプレート「Movable Type テンプレート」を例に説明しますが、デフォルトテンプレートでも同様のカスタマイズが可能です。

なお、このエントリーのカスタマイズを行うだけではメインページと全く同じ表示にならないのですが、そのことについては次回のエントリーで解説します。

1.ページによってサイドバーの表示内容が異なる仕組み

ページによってサイドバーの表示内容が異なるのは、サイドバーの各リストを MTIf タグで括り、表示するページを振り分けているためです。MTIf は Movable Type 4 で新たに追加されたテンプレートタグで、ある値を判定することで処理を振り分ける、という機能をもっています。

例えば、タグクラウドがメインページでしか表示されないのは、下のように MTIf タグで全体を括っています。

<MTIf name="main_index">
<dt class="sidetitle">
Tag Clouds
</dt>
 
<dd class="side">
<ul id="tags">
<MTTags>
<li class="module-list-item taglevel<$MTTagRank$>">
<a href="<$MTTagSearchLink$>"><$MTTagName$></a>
</li>
</MTTags>
</ul>
</dd>
</MTIf>

そして、MTIf タグの name 属性に記述された main_index という変数の値が "1" の場合にのみ、MTIf タグブロック内部が実行(=再構築対象)されます。
main_index という変数は、メインインデックスを再構築する時だけ "1" になる仕組みになっています。

また、月別アーカイブリストは、

<MTIf name="module_monthly_archives">
<MTIfArchiveTypeEnabled archive_type="Monthly">
<dt class="sidetitle">
Monthly Archives
</dt>
 
<dd class="side">
<ul>
<MTArchiveList archive_type="Monthly">
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> [<$MTArchiveCount$>]</li>
</MTArchiveList>
</ul>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>

と、MTIf タグの name 属性に module_monthly_archives という変数名を用いています。そして月別アーカイブの再構築時だけ module_monthly_archives の値が "1" になり、MTIf タグブロック内が再構築対象となります。

2.メインページと同じ表示にする方法

方法は、各リストを括っているMTIf タグを外すだけです。ただし、「最近のエントリー」については冒頭に記した通り、MTIf タグを外しただけではメインページと同じ表示にならないので、その点は予めご了承ください。

以下、リスト別に示します。赤色部分を削除してください。

最近のエントリー

<MTIf name="module_recent_entries">
<dt class="sidetitle">
Recent Entries
</dt>
 
<dd class="side">
<ul>
<MTEntries lastn="10">
<li><a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</dd>
</MTIf>

タグクラウド

<MTIf name="main_index">
<dt class="sidetitle">
Tag Clouds
</dt>
 
<dd class="side">
<ul id="tags">
<MTTags>
<li class="module-list-item taglevel<$MTTagRank$>">
<a href="<$MTTagSearchLink$>"><$MTTagName$></a>
</li>
</MTTags>
</ul>
</dd>
</MTIf>

カテゴリーリスト

<MTIf name="module_category_archives">
<MTIfArchiveTypeEnabled archive_type="Category">
<dt class="sidetitle">
Categories
</dt>
 
<dd class="side">
<div id="categories">
<MTTopLevelCategories>
<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>
</MTTopLevelCategories>
</div>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>

月別アーカイブリスト

<MTIf name="module_monthly_archives">
<MTIfArchiveTypeEnabled archive_type="Monthly">
<dt class="sidetitle">
Monthly Archives
</dt>
 
<dd class="side">
<ul>
<MTArchiveList archive_type="Monthly">
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> [<$MTArchiveCount$>]</li>
</MTArchiveList>
</ul>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>

3.注意事項

タグクラウドは再構築のパフォーマンスに影響があるため、他のアーカイブで表示させない(MTIf タグを外さない)ことをお勧めします。
表示させたい場合は Ajax モジュール化を行ないましょう。

4.サイドバーの MTIf タグに設定されている変数名

参考までに、デフォルトテンプレート(3 カラム)で、各リストの MTIf タグに設定されている変数名をまとめました(配布テンプレートも基本的にこの仕組みにしたがっています)。

リスト名変数名
タグクラウドmain_index
ユーザーアーカイブリストmodule_author_archives
月別アーカイブリストmodule_monthly_archives
月別カテゴリーアーカイブリストmodule_category-monthly_archives
月別ユーザアーカイブリストmodule_author-monthly_archives
最近のエントリーmodule_recent_entries
アイテムリストmain_index
サブカテゴリーリストmodule_category_archives

上記の各変数名がどのページで "1" になるかについては「予約変数一覧 for Movable Type 4(その1)」を参考にしてください。

なお、

main_index
module_recent_entries

の2つの変数については、どちらもメインページのみで "1" となります。

Posted by yujiro
関連記事
人気エントリー
トラックバックURL


コメント

はじめまして。
MT4のテンプレートを借りさせて頂きました。
デザインや便利なカスタマイズ方法、細かな説明にいつも助けられています。
ありがとうございます。

実は、全体的にMTIfをあまり使っていないシンプルなテンプレートの用意ができればお願いしたいです。
サイドバーのあたりは特に複雑で、お恥ずかしながら、日記に使う程度の知識と使用量なので、絡み合うようになっていると数時間かかってもカスタマイズができず悩んでいます…。

シンプルなテンプレートで、あと順番に自分でMTIfを使っていって
覚えれたら一番かなと思っています;

できましたらご検討ください。
それでは、失礼いたします。

[1] Posted by はな : February 14, 2008 1:08 AM

>はなさん
こんばんは。
テンプレートご利用ありがとうございます。
ご要望の件ですが、MTIf を取り外すと MT3 と同じ構成のテンプレートになり、アーカイブテンプレートの作成やアーカイブマッピングが必要になり、モジュールの利用も制限されますが、そのようなものでもよろしいでしょうか(テンプレートセットなので入れ替え自体は簡単だと思います)。
いずれにしても今、時間がとれませんので、公開できるのはしばらく先になります。
それではよろしくお願い致します。

[2] Posted by yujiro Author Profile Page : February 17, 2008 12:17 AM
コメントする

*必須



太字 イタリック アンダーライン ハイパーリンク 引用

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

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

Now loading...
Entries of this Category
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
BlogPeople
Now loading...
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 4.1
 
List Me!