<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>chibipoppo blog</title>
    <link rel="alternate" type="text/html" href="http://www.arearea.org/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.arearea.org/blog/atom.xml" />
    <id>tag:www.arearea.org,2007-10-16:/blog//1</id>
    <updated>2007-11-26T18:13:05Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Publishing Platform 4.01</generator>

<entry>
    <title>月別アーカイブリストを年度別に表示する</title>
    <link rel="alternate" type="text/html" href="http://www.arearea.org/blog/2007/11/nendobetsu.html" />
    <id>tag:www.arearea.org,2007:/blog//1.4</id>

    <published>2007-11-26T11:22:17Z</published>
    <updated>2007-11-26T18:13:05Z</updated>

    <summary>便利なネット環境のおかげで、わからないこと、困っていることを調べることで、先人に...</summary>
    <author>
        <name>ちびぽっぽ</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arearea.org/blog/">
        <![CDATA[<p>便利なネット環境のおかげで、わからないこと、困っていることを調べることで、先人に学ぶことが多いです。ほんとにありがたいことです。<br />
しかし、その答えを得ることで、わかった「つもり」になってしまうことはとても怖いことだと感じています。</p>

<ul>
<li><a href="http://junnama.alfasado.net/online/2007/11/_mtarc.html" target="_blank">
月別アーカイブのリストに「年度」見出しを付ける。（Junnama Online (Mirror)）</a>
</li>
</ul>

<p>この中で、Calculationプラグインが提供されていますが、このプラグインの中身を見ると「なるほど」と感じました。ごにょごにょしなくても、こんな風にもプラグインは使えるのだな、と感じられます。</p>]]>
        <![CDATA[<p>そもそも、MTには普通に四則演算をできるタグがありません。<br />
そのため、藤本壱さんが「MTSetVar」,「MTGetVar」を利用した四則演算、文字連結を可能にする<strong>VarHandlerプラグイン</strong>を提供して下さっています。</p>
<ul>
<li><a href="http://www.sixapart.jp/movabletype/plugins/varhandler.html">
Movable Type プラグインディレクトリ　VarHandler</a></li>
<li><a href="http://www.h-fj.com/blog/archives/2005/12/27-130612.php" target="_blank">変数処理を改良するプラグイン（その1）（The blog of H.Fujimoto）</a></li>
<li><a href="http://www.h-fj.com/blog/archives/2005/12/28-135525.php" " target="_blank">
変数処理を改良するプラグイン（その2）（The blog of H.Fujimoto）</a></li>
</ul>

<p>話を戻して・・・</p>
<p>「数字を-1するところだけプラグイン」ということなので、このプラグインの中身を確認したうえで、タグでどう実現されているのか、中身を追ってみました。<br />
一言「なるほど・・・」という感じです。人のソースでいつも勉強させていただいています。<br />
今回は引き算（足し算）に限定されていることと、グローバルフィルターを使うことで、MTタグの返す値を変数に設定することなく、値そのものを加減できることから、Calculationプラグインを使うことにしました。</p>

<p>ここでのポイントは</p>
<ul>
<li>MTunlessタグで条件を分岐する</li>
<li>YYYYMM（年・月）を6桁で比較</li>
<li>年度始まりよりも小さい数の月は前年度の対象になる（Calculationプラグイン使用）</li>
</ul>
<p>と自分で勝手に解釈し、これを見ずに自分でもやれるかチャレンジ！<br />
全く同じものはできなかったけど、なんとかできました。（汗）</p>

<p><strong>例1）4月が年度始めの年度リスト</strong></p>
<img alt="nendo1.gif" src="http://www.arearea.org/blog/2007/11/27/nendo1.gif" alt="年度リスト（降順）" width="121" height="223" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;"/>
<pre><code>
&lt;mt:setvar name="StartMonth" value="04"&gt;
&lt;mt:setvar name="CompYear" value="999999"&gt;

&lt;MTArchiveList archive_type="Monthly"&gt;
&lt;mt:setvarblock name="YYYYMM"&gt;&lt;$MTArchiveDate format="%Y%m"&gt;&lt;/mt:setvarblock&gt;

&lt;mt:if name="YYYYMM" lt="$CompYear"&gt;
&lt;mt:if name="CompYear"&gt;
&lt;/ul&gt;
&lt;/mt:if&gt;
&lt;mt:setvarblock name="FirstMonth"&gt;&lt;$MTArchiveDate format="%m"$&gt;&lt;/mt:setvarblock&gt;
&lt;mt:if name="FirstMonth" lt="$StartMonth"&gt;
&lt;$MTArchiveDate format="%Y" calculation="-1"$&gt;年度
&lt;ul class="module-list"&gt;
&lt;mt:setvarblock name="CompYear"&gt;&lt;$MTArchiveDate format="%Y" calculation="-1"$&gt;&lt;mt:var name="StartMonth"&gt;&lt;/mt:setvarblock&gt;
&lt;mt:else&gt;
&lt;$MTArchiveDate format="%Y"$&gt;年度
&lt;ul class="module-list"&gt;
&lt;mt:setvarblock name="CompYear"&gt;&lt;$MTArchiveDate format="%Y"$&gt;&lt;mt:var name="StartMonth"&gt;&lt;/mt:setvarblock&gt;
&lt;/mt:else&gt;
&lt;/mt:if&gt;
&lt;/mt:if&gt;

&lt;li class="module-list-item"&gt;&lt;a href="&lt;$MTArchiveLink$&gt;"&gt;&lt;$MTArchiveTitle$&gt;&lt;/a&gt;&lt;/li&gt;

&lt;MTArchiveListFooter&gt;&lt;/ul&gt;&lt;/MTArchiveListFooter&gt;
&lt;/MTArchiveList&gt;
</code></pre>

<p>あと、今回のケースというの実際の業務でいうと、企業のIR情報なんかに適するのかな、と思います。<br />
ただ、これは一例で、降順のパターン。<br />
逆に、企業の歴史や業績を一覧にするときなんかは、昇順のパターンとしても考えられるのではなかろうか？<br />
というわけで、昇順パターンはこちら。</p>

<p><strong>例2）4月が年度始めの年度リスト（昇順）</strong></p>
<img alt="nendo2.gif" src="http://www.arearea.org/blog/2007/11/27/nendo2.gif" alt="年度リスト（昇順）" width="121" height="225" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;"/>
<pre><code>
&lt;mt:setvar name="StartMonth" value="04"&gt;
&lt;mt:setvar name="CompYear" value=" <span style="color:red;">000000</span>"&gt;

&lt;MTArchiveList archive_type="Monthly"  <span style="color:red;">sort_order="ascend"</span>&gt;
&lt;mt:setvarblock name="YYYYMM"&gt;&lt;$MTArchiveDate format="%Y%m"&gt;&lt;/mt:setvarblock&gt;

&lt;mt:if name="YYYYMM" <span style="color:red;">ge</span>="$CompYear"&gt;
&lt;mt:if name="CompYear"&gt;
&lt;/ul&gt;
&lt;/mt:if&gt;
&lt;mt:setvarblock name="FirstMonth"&gt;&lt;$MTArchiveDate format="%m"$&gt;&lt;/mt:setvarblock&gt;
&lt;mt:if name="FirstMonth" <span style="color:red;">ge</span>="$StartMonth"&gt;
&lt;$MTArchiveDate format="%Y" calculation=""$&gt;年度
&lt;ul class="module-list"&gt;
&lt;mt:setvarblock name="CompYear"&gt;&lt;$MTArchiveDate format="%Y" calculation="1"$&gt;&lt;mt:var name="StartMonth"&gt;&lt;/mt:setvarblock&gt;
&lt;mt:else&gt;
&lt;$MTArchiveDate format="%Y"$&gt;年度
&lt;ul class="module-list"&gt;
&lt;mt:setvarblock name="CompYear"&gt;&lt;$MTArchiveDate format="%Y"$&gt;&lt;/mt:setvarblock&gt;
&lt;/mt:else&gt;
&lt;/mt:if&gt;
&lt;/mt:if&gt;

&lt;li class="module-list-item"&gt;&lt;a href="&lt;$MTArchiveLink$&gt;"&gt;&lt;$MTArchiveTitle$&gt;&lt;/a&gt;&lt;/li&gt;

&lt;MTArchiveListFooter&gt;&lt;/ul&gt;&lt;/MTArchiveListFooter&gt;
&lt;/MTArchiveList&gt;
</code></pre>

<p>アーカイブを昇順に（descend=>ascend）、初期値の値（9999=>0000）、年度始めとの比較（lt=>ge）で対応できます。sort_order属性の値で切り替えれるといいんだろうなぁ。</p>

<p>ということで、頭の体操でした。</p>]]>
    </content>
</entry>

<entry>
    <title>MTMultiblogの使い方（MT3とMT4での違いについて）</title>
    <link rel="alternate" type="text/html" href="http://www.arearea.org/blog/2007/11/mtmultiblogmt3mt4.html" />
    <id>tag:www.arearea.org,2007:/blog//1.3</id>

    <published>2007-11-12T10:48:01Z</published>
    <updated>2007-11-13T11:49:23Z</updated>

    <summary>複数のブログでサイト構築する場合、ヘッダー、フッターなど、共通部分はモジュール化...</summary>
    <author>
        <name>ちびぽっぽ</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arearea.org/blog/">
        <![CDATA[<p>複数のブログでサイト構築する場合、ヘッダー、フッターなど、共通部分はモジュール化して使いたい！<br />
そんなときに大活躍するのがMTMultiblogプラグインです。</p>

<p>めでたくMT4から標準装備されましたが、MT3とMT4でMTタグの呼び出し方が変わっています。<br />
MT4についての利用方法は、kaminogoyaさんがまとめられています。</p>
<ul>
<li><a href="http://movabletype.jp/blog/multiblog_template_module.html" target="_blank">MultiBlog 機能を利用したテンプレートモジュールの共有</a></li>
</ul>

<p>今回はMT3との違いと、結構はまりがちなところに絞って、まとめておきます。</p>

]]>
        <![CDATA[<p><strong>【MTMultiblogの使い方の違いについて】</strong></p>

<p>■MT3の場合</p>
<pre>&lt;MTMultiBlog include_blogs="（モジュールの属するブログID）"&gt;
&lt;$MTInclude module="（モジュール名）"$&gt;
&lt;/MTMultiBlog&gt;</pre>

<p>■MT4の場合</p>
<pre>&lt;MTInclude blog_id="（モジュールの属するブログID）" module="（モジュール名）"&gt;</pre>

<p>「サイドバーに最近のエントリーを5件出す」などのように、モジュールを呼び出すブログ内の情報を使う場合はこれでOK!</p>

<p>ただ、注意しないといけないのが、ある1つのブログが親になっている場合。<br />
例えば、HOMEへのリンクだとか、グローバルメニュー、CSSのディレクトリのようなものは、あるブログの情報を引き継ぎたいはず・・・<br />
そこで、モジュール内でMTBlogURLを呼び出す場合の動作を確認してみます。</p>

<p><strong>【ブログB（ブログID=2）からブログA（ブログID=1）のheaderモジュールを呼び出す】</strong></p>

<p>■headerモジュール</p>
<pre>&lt;div id="header"&gt;
&lt;h1 id="header-name"&gt;&lt;a href="&lt;$MTBlogURL$&gt;" accesskey="1"&gt;&lt;$MTBlogName encode_html="1"$&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;</pre>

<p>■MT3の場合</p>
<pre>&lt;MTMultiBlog include_blogs="1"&gt;
&lt;$MTInclude module="header"$&gt;
&lt;/MTMultiBlog&gt;</pre>

<p>■MT4の場合</p>
<pre>&lt;MTInclude blog_id="1" module="header"&gt;</pre>

<p>MT3とMT4で動作が違います。<br />
MT3では、ブログAのブログURLが表示されますが、MT4ではブログBのブログURLが表示されるのです。</p>

<p>そこで、いままでMT4では解決方法が分からず、以下のようにしていました。</p>
<pre>&lt;MTBlogs blog_ids="1"&gt;
&lt;div id="header"&gt;
&lt;h1 id="header-name"&gt;&lt;a href="&lt;$MTBlogURL$&gt;" accesskey="1"&gt;&lt;$MTBlogName encode_html="1"$&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;/MTBlogs&gt;</pre>

<p>モジュール内部で<a href="http://movabletype.jp/documentation/appendices/tags/blogs.html" target="_blank">MTBlogs</a>を使用して、どのブログに属するモジュールなのか、を指定していたのです。</p>

<p>しかし、ここまで書いたところでいろいろ調べていると、遂に本来の使い方が判明しました！</p>

<ul>
<li><a href="http://www.akinakano.com/mt/2007/10/mtmultiblogmt3mt4.php" target="_blank">Blog | AKINAKANO : 複数ブログをまとめてくれるMTMultiBlog：MT3とMT4における書き方の違い</a></li>
</ul>

<pre>&lt;MTMultiBlog include_blogs="1"&gt;
&lt;MTInclude blog_id="1" module="header"&gt;
&lt;/MTMultiBlog&gt;</pre>

<p><br />
なるほど、呼び出し側でMTMultiBlogでくくってやればいいのですね！<br />
Aki Nakanoさん、ありがとうございます！！</p>

<p><br />
また、<a href="http://www.akinakano.com/mt/2007/10/mtmultiblog.php" target="_blank">複数ブログをまとめてくれるMTMultiBlog：モジュールが入れ子状態になると起こる不具合</a>として、MT4.01でのバグについても書かれています。<br />
大変分かりやすい説明で、デザインもステキです。</p>
]]>
    </content>
</entry>

<entry>
    <title>一から出直します</title>
    <link rel="alternate" type="text/html" href="http://www.arearea.org/blog/2007/10/denaoshi.html" />
    <id>tag:www.arearea.org,2007:/blog//1.2</id>

    <published>2007-10-20T08:23:39Z</published>
    <updated>2007-10-20T13:21:24Z</updated>

    <summary>最近、いかに自分がweb版丘サーファーであったかを思い知っています・・・。 MT...</summary>
    <author>
        <name>ちびぽっぽ</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arearea.org/blog/">
        <![CDATA[<p>最近、いかに自分がweb版丘サーファーであったかを思い知っています・・・。</p>

<p>MTは仕事で使っていたけれど、ブログそのもののような使い方というよりは、商品情報のようなデータの整理に使うようなことが多かったので、「本文」のフォーマットを作りこんだり、ある程度の制限をつけたりしていました。</p>

<p>自分のブログをはじめて書いて、StyleCatcherのデザイン、デフォルトのCSSで書くこと、これがいかに自分にとって難しいことであったか・・・<br />
まず、フォーマットの選択からしてどうしよーと思ったり。<br />
ほんまえらいこっちゃです。</p>

<p>で、MT4を触っていて、一度タグをつけると消せないことに直面し、データベースをのぞいてみたり、MT3とどう違うんだろう？と比べたり、としていると、偶然この記事が！</p>

<p><a href="http://junnama.alfasado.net/online/2007/10/post_148.html">MT4, MTOS, 告知, 雑多な話題。</a>（Junnama Online (Mirror)）<br />
<strong>「タグ」を空に出来ない問題</strong></p>

<p>しかも、バグフィックスまでのプラグインまでご用意していただいています。<br />
ありがとうございます、早速使わせていただきます。</p>

<p></p>

<p><br />
</p>]]>
        <![CDATA[<p>が、しかし、ここからが本題。</p>

<blockquote cite="http://junnama.alfasado.net/online/2007/10/post_148.html">受託のWeb屋は顧客にサービス提供する立場だから、何か問題を見つけてメーカーにキレてる暇があったら簡単なプラグインの書き方くらいは身につけておいた方がいいよ。</blockquote>

<p><br />
そうです、その通りです・・・<br />
キレてはいませんが、自ら動かないとなにも得られないと痛感しています。<br />
いまのわたしには心にグサッと刺さる一文でした。</p>

<p>でも、ポジティブにも考えています。<br />
このブログを立ち上げ、書いていくうちに、自然と調べて、知って、使って・・・と自然とそのサイクルができていくのかなぁ、と感じ始めています。</p>

<p>実践あるのみ！！<br />
</p>]]>
    </content>
</entry>

<entry>
    <title>「WebSig24/7 MT4分科会 第1回イベント」のまとめ</title>
    <link rel="alternate" type="text/html" href="http://www.arearea.org/blog/2007/10/websig-mt4-1.html" />
    <id>tag:www.arearea.org,2007:/test//1.1</id>

    <published>2007-10-16T08:20:43Z</published>
    <updated>2007-10-19T04:42:18Z</updated>

    <summary>2007年10月13日（土）、 CG-ARTS協会にて開催された「WebSig2...</summary>
    <author>
        <name>ちびぽっぽ</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arearea.org/blog/">
        <![CDATA[<p>2007年10月13日（土）、 CG-ARTS協会にて開催された<a href="http://websig247.jp/committee/mt/000074.html">「WebSig24/7 MT4分科会 第1回イベント」</a>に参加しました。</p>

<p><br />
<strong>■第一部</strong><br />
MovableTypeを触っている人のバイブル「<a href="http://www.koikikukan.com/">小粋空間</a>」のyujiroさんのおはなし。ブログ同様、とても丁寧でやさしい雰囲気の方で、その繊細さはスライドにも垣間見ることができました。</p>

<p>MT4では、MTIf、MTSetvar、MTSetvarblockをうまく利用し、テンプレートの上部にセットされる変数にて、各テンプレートでの動作や役割が振り分けされています。<br />
が、entry_templateのように、テンプレートに表示されない変数があるとのこと。<br />
ではそれはどこで設定されているのか？<br />
答えは、lib/MT/WeblogPublisher.pmで初期設定されているとのこと。<br />
こういうのが他にもたくさんあるそうで、これを組み合わせるとデフォルトの設定値を使ってケースを振り分けることができるようです。<br />
（yujiroさんが一覧表にされていました。）</p>

<p>恥ずかしながら、MT3からあるMTIgnoreタグを知りませんでした。コメントに<!-- -->を使っていました。MT4でタグが増えたというのに、まだまだ知らないタグがありそう。見直さねば。</p>

<p>また、MTSubFoldersの存在意義は、今後、フォルダアーカイブが実装された時に有効になるのでは？とのことでした。</p>

<p>資料も膨大な量であったにも明瞭にまとめられており、大変わかりやすい説明でした。ありがとうございました。</p>]]>
        <![CDATA[<p><br />
<strong>■第二部</strong></p>

<p>第二部は、グループに分かれてのワークショップで、わたしはjunnamaさんチームで「各自で解決したい内容に取り組んでみよう！」ということで、お題として用意していったブログ記事でのカテゴリーの表示について取り組みました。</p>

<p>方法はいろいろあると思うのですが、スマートで汎用的なものをテンプレートタグで実現できないか、試してみたかったのです。<br />
で、結果はというと、タイムアウト・・・。</p>

<p>でも、せっかくMTIf、MTSetvarblockが使えるのだから、どこまでできるかやってみました。</p>

<p><br />
<strong>【ブログ記事内で、トップから自分の属するカテゴリーまで階層的に表示させる】</strong></p>

<pre>
&lt;mt:setvarblock name="topcategory"&gt;<br />
&lt;mt:topLevelParent&gt;&lt;mt:Categorylabel&gt;&lt;/mt:topLevelParent&gt;<br />
&lt;/mt:setvarblock&gt;<br />
&lt;mt:setVarBlock name="entrycategory"&gt;<br />
&lt;mt:entryCategory&gt;<br />
&lt;/mt:setVarBlock&gt;<br />
&lt;mt:toplevelcategories&gt;<br />
&lt;mt:subCatIsFirst&gt;&lt;ul&gt;&lt;/mt:subCatIsFirst&gt;<br />
&lt;mt:setvarblock name="parentcategory"&gt;<br />
&lt;mt:topLevelParent&gt;&lt;mt:Categorylabel&gt;&lt;/mt:topLevelParent&gt;<br />
&lt;/mt:setvarblock&gt;<br />
&lt;mt:if name="topcategory" eq="$parentcategory"&gt;<br />
&lt;li&gt;&lt;a href="&lt;mt:categoryArchiveLink&gt;"&gt;&lt;mt:categorylabel&gt;&lt;/a&gt;<br />
&lt;mt:setVarBlock name="thiscategory"&gt;<br />
&lt;mt:Categorylabel&gt;<br />
&lt;/mt:setVarBlock&gt;<br />
&lt;mt:if name="thiscategory" eq="$entrycategory"&gt;<br />
&lt;mt:entries&gt;<br />
&lt;mt:entriesHeader&gt;&lt;ul&gt;&lt;/mt:entriesHeader&gt;<br />
&lt;li&gt;&lt;a href="&lt;mt:entrypermalink&gt;"&gt;&lt;mt:entryTitle&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;mt:entriesFooter&gt;&lt;/ul&gt;&lt;/mt:entriesFooter&gt;<br />
&lt;/mt:entries&gt;<br />
&lt;/mt:if&gt;<br />
&lt;mt:subCatsRecurse&gt;&lt;/li&gt;<br />
&lt;mt:else&gt;<br />
&lt;/mt:if&gt;<br />
&lt;mt:subCatIsLast&gt;&lt;/ul&gt;&lt;/mt:subCatIsLast&gt;<br />
&lt;/mt:toplevelcategories&gt;<br />
</pre>

<ul>
	<li>topcategory・・・ブログ記事の属するカテゴリーのトップレベルの親カテゴリー</li>
	<li>parentcategory・・・トップレベルのカテゴリー</li>
	<li>entrycategory・・・エントリーの属するカテゴリー</li>
	<li>thiscategory・・・対象カテゴリー</li>
</ul>

<ol>
	<li>topcategoryとparentcategoryを一致するときだけ、トップレベルの親カテゴリを表示する。</li>
	<li>entrycategoryとthiscategoryが一致するときだけ、ブログ記事一覧を表示する。</li>
</ol>

<p><br />
あるカテゴリー以下を階層表示する方法ってないのかな？<br />
&lt;MTEntries category="hoge"&gt;みたいに、<br />
&lt;MTTopLevelCategories&gt;や&lt;MTSubCategories&gt;にもカテゴリーを指定できるモディファイアがあったりしたらよかったんだけど・・・</p>

<p><br />
あと、これができたら以前<a href="http://www.sixapart.jp/techtalk/2007/07/movable_type_4_hackathon.html">Movable Type 4 Hack-a-thon</a>でのお題を考えるときに、cremaさんと話していた「サイドメニューとかでアコーディオン形式で表示したいですね?」とお話していたのを思い出しました。<br />
cremaさんは<a href="http://crema.vox.com/library/post/hack-a-thon.html">「ブログ記事内で、同一カテゴリーに属するエントリ一覧のリストを出力する」</a>を完成させてくださったので、サブカテゴリーがある場合はどうだろう？と実験してみることに。</p>

<p><br />
<strong>【ブログ記事内で、同一カテゴリーに属するエントリ一覧のリストを出力する（サブカテゴリ版）】</strong></p>

<pre>
&lt;mt:setvarblock name="topcategory"&gt;<br />
&lt;mt:topLevelParent&gt;&lt;mt:Categorylabel&gt;&lt;/mt:topLevelParent&gt;<br />
&lt;/mt:setvarblock&gt;<br />
&lt;mt:setVarBlock name="entrycategory"&gt;<br />
&lt;mt:entryCategory&gt;<br />
&lt;/mt:setVarBlock&gt;<br />
&lt;mt:toplevelcategories&gt;<br />
&lt;mt:subCatIsFirst&gt;&lt;ul&gt;&lt;/mt:subCatIsFirst&gt;<br />
&lt;mt:setvarblock name="parentcategory"&gt;<br />
&lt;mt:topLevelParent&gt;&lt;mt:Categorylabel&gt;&lt;/mt:topLevelParent&gt;<br />
&lt;/mt:setvarblock&gt;<br />
&lt;mt:if name="topcategory" eq="$parentcategory"&gt;<br />
&lt;mt:IfIsAncestor child="$entrycategory"&gt;<br />
&lt;li&gt;&lt;a href="&lt;mt:categoryArchiveLink&gt;"&gt;&lt;mt:categorylabel&gt;&lt;/a&gt;<br />
&lt;mt:setVarBlock name="thiscategory"&gt;&lt;mt:Categorylabel&gt;&lt;/mt:setVarBlock&gt;<br />
&lt;mt:if name="thiscategory" eq="$entrycategory"&gt;<br />
&lt;mt:entries&gt;<br />
&lt;mt:entriesHeader&gt;&lt;ul&gt;&lt;/mt:entriesHeader&gt;<br />
&lt;li&gt;&lt;a href="&lt;mt:entrypermalink&gt;"&gt;&lt;mt:entryTitle&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;mt:entriesFooter&gt;&lt;/ul&gt;&lt;/mt:entriesFooter&gt;<br />
&lt;/mt:entries&gt;<br />
&lt;/mt:if&gt;<br />
&lt;mt:subCatsRecurse&gt;<br />
&lt;/li&gt;<br />
&lt;mt:else&gt;<br />
&lt;li&gt;&lt;a href="&lt;mt:categoryArchiveLink&gt;"&gt;&lt;mt:categorylabel&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;/mt:IfIsAncestor&gt;<br />
&lt;mt:else&gt;<br />
&lt;li&gt;&lt;a href="&lt;mt:categoryArchiveLink&gt;"&gt;&lt;mt:categorylabel&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;/mt:if&gt;<br />
&lt;mt:subCatIsLast&gt;&lt;/ul&gt;&lt;/mt:subCatIsLast&gt;<br />
&lt;/mt:toplevelcategories&gt;
</pre>

<ol>
	<li>topcategoryとparentcategoryを一致するときだけ、トップレベルの親カテゴリを判定する。</li>
	<li>MTIfIsAncestorタグにて、entrycategoryをサブカテゴリとして含むカテゴリかを判定する。</li>
	<li>entrycategoryとthiscategoryが一致するときだけ、ブログ記事一覧を表示する。</li>
	<li>あとは、上記にあてはまらないカテゴリの表示を調整する。</li>
</ol>

<p><br />
常にブログ記事の属する部分だけが開いていく感じにしたかったので、<br />
<a href="http://movabletype.jp/documentation/appendices/tags/ifisancestor.html">MTIfIsAncestor</a>タグを初めて使ってみました。<br />
実際にどんな感じで表示されるかというと、</p>

<p><br />
<strong>【例1）「さんまの塩焼き」のブログ記事でのカテゴリー表示】</strong><br />
（「洋食」、「和食」、「中華」がトップカテゴリー／「前菜」、「主食」、「汁物」がサブカテゴリーの場合）</p>

<ul>
  <li>洋食</li>
  <li>和食
    <ul>
      <li>前菜</li>
      <li>主食
        <ul>
          <li>さんまの塩焼き</li>
          <li>肉じゃが</li>
        </ul>
      </li>      
      <li>汁物</li>
    </ul>
  </li>
  <li>中華</li>
</ul>

<p><br />
この場合はエントリーの属するカテゴリーと同階層の他のカテゴリー（ここでいうと「前菜」、「汁物」）が表示されます。</p>

<p>が、しかし・・・</p>

<p><strong>【例2）「さんまの塩焼き」のブログ記事でのカテゴリー表示】</strong><br />
（「洋食」、「和食」、「中華」がトップカテゴリー／「前菜」、「主食」、「汁物」がサブカテゴリー1／「魚」、「肉」、「野菜」がサブカテゴリー2）</p>

<ul>
  <li>洋食</li>
  <li>和食
    <ul>
      <li>前菜</li>
      <li>主食
        <ul>
          <li>魚
            <ul>
              <li>さんまの塩焼き</li>
              <li>ぶりの照り焼き</li>
            </ul>
          </li>
          <li>肉</li>
          <li>野菜</li>
        </ul>
      </li>
      <li>汁物</li>
    </ul>
  </li>
  <li>中華</li>
</ul>

<p><br />
この場合は、階層がもう一つ増えると、ひとつ上の階層の「前菜」、「汁物」までが表示されてしまうのです。<br />
というのも、MTIfIsAncestorタグを使ったがゆえに、現在のカテゴリが指定したカテゴリ（child="hoge"のモディファイア）をサブカテゴリとして含んでいるか判定するためですね。</p>

<p>これがタグでの限界なのか、なにかいい方法があるのかなぁ。<br />
第一にわたしの力不足の感がありますが.、もう少し考えてみます。</p>

<p><br />
<strong>■最後に</strong><br />
Dakinyさん、もでっちさんはじめ、スタッフのみなさま、ありがとうございました。<br />
また、参加されたみなさんにたくさんの刺激をうけました。<br />
ということで、やっとこさブログをたちあげてしまいました。</p>]]>
    </content>
</entry>

</feed>
