<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>おしえてSideB</title>
        <link>http://www.zelazny.mydns.jp/sideb/</link>
        <description>WebSig24/7 MT4分科会（第2回・第3回）・ワークショップでのサポートサイトです。</description>
        <language>ja</language>
        <copyright>Copyright 2009</copyright>
        <lastBuildDate>Wed, 09 Jul 2008 22:56:30 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>追加課題1：解答編(oscar varsion)</title>
            <description><![CDATA[<p>それでは、追加課題1の解答です。
もちろん私のバージョンです。そしてあくまでも、解答の一例でしかありません。</p>
<p>テーブル部分のみのコードになります。</p>
<pre class="code" title="私の解答">&lt;$MTSetVar&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;0&quot;$&gt;
&lt;MTEntries&nbsp;days=&quot;70&quot;&gt;
&nbsp;&nbsp;&lt;MTEntryAssets&nbsp;type=&quot;image&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;$MTSetVar&nbsp;name=&quot;thumb_count&quot;&nbsp;op=&quot;++&quot;$&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;eq=&quot;1&quot;&gt;&lt;table&nbsp;class=&quot;thumbnail&quot;&nbsp;summary=&quot;最近(さいきん)の写真&quot;&gt;&lt;/MTIf&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;eq=&quot;1&quot;&gt;&lt;tr&gt;&lt;/MTIf&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;p&gt;&lt;a&nbsp;href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&nbsp;title=&quot;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;img&nbsp;src=&quot;&lt;$MTAssetThumbnailURL&nbsp;height=&quot;208&quot;$&gt;&quot;&nbsp;alt=&quot;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&quot;&nbsp;title=&quot;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&quot;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/a&gt;&lt;/p&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h3&gt;&lt;span&nbsp;class=&quot;&lt;$MTEntryAuthorUsername$&gt;&quot;&gt;&lt;a&nbsp;href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;eq=&quot;0&quot;&gt;&lt;/tr&gt;&lt;/MTIf&gt;
&nbsp;&nbsp;&lt;/MTEntryAssets&gt;
&nbsp;&nbsp;&lt;MTIf&nbsp;name=&quot;__Last__&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;ne=&quot;0&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;$MTGetVar&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;setvar=&quot;amari&quot;$&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;$MTSetVar&nbsp;name=&quot;amari&quot;&nbsp;value=&quot;3&quot;op=&quot;-&quot;$&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;colspan=&quot;&lt;$MTGetVar&nbsp;name=&quot;amari&quot;&nbsp;value=&quot;-1&quot;op=&quot;*&quot;$&gt;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/MTIf&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;ne=&quot;0&quot;&gt;&lt;/table&gt;&lt;/MTIf&gt;
&nbsp;&nbsp;&lt;/MTIf&gt;
&lt;/MTEntries&gt;</pre>
<p>改行をわざと入れないで、コンパクトに（出力の改行を少なく）書こうとするので、見ずらいですね。でもホントは、さらに見づらく書いたりするんですよ。</p>
<pre class="code" title="改行を調整してるコード">&lt;$MTSetVar&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;0&quot;$&gt;&lt;MTEntries&nbsp;days=&quot;120&quot;&gt;&lt;MTEntryAssets&nbsp;type=&quot;image&quot;&gt;&lt;$MTSetVar&nbsp;name=&quot;thumb_count&quot;&nbsp;op=&quot;++&quot;$&gt;
&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;eq=&quot;1&quot;&gt;&lt;table&nbsp;class=&quot;thumbnail&quot;&nbsp;summary=&quot;最近(さいきん)の写真&quot;&gt;
&lt;/MTIf&gt;&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;eq=&quot;1&quot;&gt;&lt;tr&gt;
&lt;/MTIf&gt;&lt;td&gt;&lt;p&gt;&lt;a&nbsp;href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&nbsp;title=&quot;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&quot;&gt;
&lt;img&nbsp;src=&quot;&lt;$MTAssetThumbnailURL&nbsp;height=&quot;208&quot;$&gt;&quot;&nbsp;alt=&quot;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&quot;&nbsp;title=&quot;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&quot;&nbsp;/&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span&nbsp;class=&quot;&lt;$MTEntryAuthorUsername$&gt;&quot;&gt;&lt;a&nbsp;href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;&lt;$MTEntryTitle&nbsp;encode_html=&quot;1&quot;$&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/td&gt;
&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;eq=&quot;0&quot;&gt;&lt;/tr&gt;
&lt;/MTIf&gt;&lt;/MTEntryAssets&gt;&lt;MTIf&nbsp;name=&quot;__Last__&quot;&gt;&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;ne=&quot;0&quot;&gt;&lt;$MTGetVar&nbsp;name=&quot;thumb_count&quot;&nbsp;value=&quot;3&quot;&nbsp;op=&quot;%&quot;&nbsp;setvar=&quot;amari&quot;$&gt;&lt;$MTSetVar&nbsp;name=&quot;amari&quot;&nbsp;value=&quot;3&quot;op=&quot;-&quot;$&gt;
&lt;td&nbsp;colspan=&quot;&lt;$MTGetVar&nbsp;name=&quot;amari&quot;&nbsp;value=&quot;-1&quot;op=&quot;*&quot;$&gt;&quot;&nbsp;class=&quot;amari&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;&lt;/MTIf&gt;
&lt;MTIf&nbsp;name=&quot;thumb_count&quot;&nbsp;ne=&quot;0&quot;&gt;&lt;/table&gt;&lt;/MTIf&gt;&lt;/MTIf&gt;&lt;/MTEntries&gt;</pre>
<p>通常は見やすいコードで書いて、デバッグ済んだ後で、改行調整して本コードにするようにしています。<br />
あと、すでにことわった通り、&lt;td&nbsp;colspan=&quot;1&quot;&gt;というコードになる時があります。さらに条件分岐をはさんで、これを回避する事も可能です。</p>
<p>今回__last__を使っている部分は、MTEntriesFooterでも可能です。慣れている方を使いましょう。（ただし__last__とMTEntriesFooterを同一のものと思ってはいけません）
なおこの様なコードを書く場合に、すべてのエントリーに画像アイテムが含まれなかった場合に、空のセルをテーブル内に出力するのか、テーブルタグ自身（&lt;table&gt;）も出力させないのかを考えることが重要です。私のコードではテーブル自身が出力されません。
<ins datetime="2008-7-10T9:55:53+09:00" title="追記:2008年7月10日 9:55:53" class="ins-block">テーブルの開始タグの位置が変だったので、修正しました。</ins></p>
<p>ちなみに出力結果が<a href="http://www.zelazny.mydns.jp/school/">これ</a>です。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01o.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01o.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Wed, 09 Jul 2008 22:56:30 +0900</pubDate>
        </item>
        
        <item>
            <title>追加課題1：余り部分の処理・捻った回答</title>
            <description><![CDATA[<p>別解も表示しときます。
ほんの少しだけ、捻りいれてます。
最初に0の場合を除外します。
変数amariに、3で割った余りをセットします。
amariから3を引くと、負の符号が付いていますが、足りないセル数になります。
amariに-1をかけて、符号を反転させたものを、colspanにセットします。
colspan=&quot;1&quot;というのが、絶対許せない方には、お勧めできません。</p>
<pre class="code" title="力技の回答">&lt;MTIf name=&quot;__last__&quot;&gt;
&lt;MTIf name=&quot;thumb_count&quot; value=&quot;3&quot; op=&quot;%&quot; ne=&quot;0&quot;&gt;
&lt;$MTGetVar name=&quot;thumb_count&quot; value=&quot;3&quot; op=&quot;%&quot; setvar=&quot;amari&quot;$&gt;
&lt;$MTSetVar name=&quot;amari&quot; value=&quot;3&quot;op=&quot;-&quot;$&gt;
&lt;td colspan=&quot;&lt;$MTGetVar name=&quot;amari&quot; value=&quot;-1&quot;op=&quot;*&quot;$&gt;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/MTIf&gt;
&lt;/MTIf&gt;</pre>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01f.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01f.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Tue, 08 Jul 2008 19:51:17 +0900</pubDate>
        </item>
        
        <item>
            <title>追加課題1：余り部分の処理をするには2</title>
            <description><![CDATA[<p>カウンターは引き継がれていますので、3で割った余りが1の場合は、残りは2つになります。その場合、colspanは2です。行は閉じていませんので閉じタグを追加します。
余りが1の場合はcolspan指定無しで空セルを追加、この時も閉じタグを追加します。
なお、割り切れる場合には、セルの追加の必要はありませんし、行の閉じタグもすでに追加されています。</p>
<p>以上の内容だと下の様なテンプレートになります。</p>
<pre class="code" title="最後の処理">&lt;MTIf name=&quot;__last__&quot;&gt;
&lt;MTIf name=&quot;thumb_count&quot; value=&quot;3&quot; op=&quot;%&quot; eq=&quot;1&quot;&gt;
&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;MTElseIf name=&quot;thumb_count&quot; value=&quot;3&quot; op=&quot;%&quot; eq=&quot;2&quot;&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/MTIf&gt;
&lt;/MTIf&gt;</pre>
<p>割り切れる場合には、条件に合致しませんから、何も出力されません。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01e.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01e.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Tue, 08 Jul 2008 19:04:50 +0900</pubDate>
        </item>
        
        <item>
            <title>追加課題1：余り部分の処理をするには1</title>
            <description><![CDATA[<p>さぁ、大分形になってきました。
後足りないのは、「最後に3つ並べるのに足りなくなった場所」の処理です。</p>
<p>ここで登場するのが、出題のヒントにある&lt;MTIf&nbsp;name=&quot;__last__&quot;&gt;です。__last__はブロックタグ内の繰り返しの中で、一番最後であることを表す変数です。</p>
<p>MTIfと組み合わせて、最後のみ処理されるブロックを指定できます。
&lt;MTEntries&gt;
&lt;MTEntryAssets&gt;
・内部処理
&lt;/MTEntryAssets&gt;
&lt;MTIf&nbsp;name=&quot;__last__&quot;&gt;
・最後の処理
&lt;/MTIf&gt;
&lt;/MTEntries&gt;
とする事で、今回のケースの様な処理を行わせる事が可能です。</p>
<p>つまり一番最後のエントリーで、アイテム処理が終了した後で、足りない部分を埋める処理をさせる訳です。
セットしたカウンター変数には、画像アイテムの個数がセットされています。後は余りがいくつになるかで、colspan処理を変えます。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01d.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01d.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Tue, 08 Jul 2008 17:48:50 +0900</pubDate>
        </item>
        
        <item>
            <title>追加課題1：表示列で処理を分岐する</title>
            <description><![CDATA[<p>次は内部での分岐です。
<a href="http://www.zelazny.mydns.jp/sideb/2008/06/appendix-01.html" title="おしえてSideB - 追加課題1：変数とopモディファイア" class="favicon_m">最初に説明</a>した、繰り返し毎の出力を使います。</p>
<p>画像アイテムが３つずつ繰り返し配置になります。
最初の列ではアイテムを囲む&lt;td&gt;のほかに、行を開始する&lt;tr&gt;が必要になります。
2列目はそのままアイテムを囲む&lt;td&gt;を出力します。
3列目では、行を終了する&lt;/tr&gt;がアイテムを囲む&lt;td&gt;の後に必要です。
出力はこの繰り返しになります。</p>
<p>実際には1列目の最初に&lt;tr&gt;を出力し、3列目の最後に&lt;/tr&gt;を出力するよう、処理を追加すればよいことになります。</p>
<p>1列目はかうんたーの数字を3で割って、余りが1になるケースです。
2列目は余りが2で、3列目は割り切れるケースになります。これ以外の状態はありません。</p>
<p>＜カウンターを3で割った余りが1の場合＞
・&lt;tr&gt;を出力
＜/1の場合の追加処理終了＞
・すべてに共通な、&lt;td&gt;で囲んだ画像アイテムの出力
＜カウンターを3で割りきれる（余りが0）場合＞
・&lt;/tr&gt;を出力
＜/3の場合の処理終了＞</p>
<p>これをテンプレートにすると以下のようになります。</p>
<pre class="code" title="一行に3つずつ並べるコード">&lt;table class=&quot;thumbnail&quot; summary=&quot;最近(さいきん)の写真&quot;&gt;
&lt;$MTSetVar name=&quot;thumb_count&quot; value=&quot;0&quot;$&gt;
&lt;MTEntries days=&quot;70&quot;&gt;
&lt;MTEntryAssets type=&quot;image&quot;&gt;
&lt;$MTSetVar name=&quot;thumb_count&quot; op=&quot;++&quot;$&gt;
&lt;MTIf name=&quot;thumb_count&quot; value=&quot;3&quot; op=&quot;%&quot; eq=&quot;1&quot;&gt;&lt;tr&gt;&lt;/MTIf&gt;
&lt;td&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot; title=&quot;&lt;$MTEntryTitle$&gt;&quot;&gt;
&lt;img src=&quot;&lt;$MTAssetThumbnailURL width=&quot;208&quot;$&gt;&quot; alt=&quot;&lt;$MTEntryTitle$&gt;&quot; title=&quot;&lt;$MTEntryTitle$&gt;&quot; /&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;MTIf name=&quot;thumb_count&quot; value=&quot;3&quot; op=&quot;%&quot; eq=&quot;0&quot;&gt;&lt;/tr&gt;&lt;/MTIf&gt;
&lt;/MTEntryAssets&gt;
&lt;/MTEntries&gt;
&lt;/table&gt;</pre>
<p><em>ここまででは、余り分の処理は行っていません。</em></p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01c.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01c.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Tue, 08 Jul 2008 10:49:51 +0900</pubDate>
        </item>
        
        <item>
            <title>追加課題1：ブロックタグが入れ子になった時のカウント2</title>
            <description><![CDATA[<p>カウンター変数は、ブロックタグの外側で初期化（ゼロにセット）します。
カウントしたいものの前後どちらかで、カウンターを一つ増やします（インクリメント）。</p>
<p><em>初期化する位置、初期化する値（0か1か）、カウントする位置は、常に決まっている訳ではありません。何をカウントするかを考えて、挿入位置を決定します。</em></p>
<pre class="code" title="アイテム数をカウントする">&lt;$MTSetVar name=&quot;thumb_count&quot; value=&quot;0&quot;$&gt;
&lt;MTEntries days=&quot;70&quot;&gt;
&lt;MTEntryAssets type=&quot;image&quot;&gt;
&lt;$MTSetVar name=&quot;thumb_count&quot; op=&quot;++&quot;$&gt;
&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot; title=&quot;&lt;$MTEntryTitle encode_html=&quot;1&quot;$&gt;&quot;&gt;
&lt;img src=&quot;&lt;$MTAssetThumbnailURL width=&quot;208&quot;$&gt;&quot; alt=&quot;&lt;$MTEntryTitle encode_html=&quot;1&quot;$&gt;&quot; title=&quot;&lt;$MTEntryTitle encode_html=&quot;1&quot;$&gt;&quot; /&gt;
&lt;/a&gt;
&lt;/MTEntryAssets&gt;
&lt;/MTEntries&gt;</pre>
<p>__counter__ではなく、独自の変数（上のケースでは「thumb_count」）をカウンターに使っているので、ブロックタグの繰り返し内のどの部分でも、アイテム数を取り出せます。またブロックタグを抜けても、変数は保持されていますので、後から参照できます。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01b.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/07/appendix-01b.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Tue, 08 Jul 2008 05:35:11 +0900</pubDate>
        </item>
        
        <item>
            <title>追加課題1：ブロックタグが入れ子になった時のカウント1</title>
            <description><![CDATA[<p>追加課題の場合を数えてみましょう。</p>
<p>70日以内に書かれたエントリーを抜き出す。
エントリー内の画像アイテムをすべて並べる。</p>
<p>これは</p>
<pre class="code" title="アセットを表示する">&lt;MTEntries days=&quot;70&quot;&gt;
&lt;MTEntryAssets type=&quot;image&quot;&gt;
&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot; title=&quot;&lt;$MTEntryTitle encode_html=&quot;1&quot;$&gt;&quot;&gt;
&lt;img src=&quot;&lt;$MTAssetThumbnailURL width=&quot;208&quot;$&gt;&quot; alt=&quot;&lt;$MTEntryTitle encode_html=&quot;1&quot;$&gt;&quot; title=&quot;&lt;$MTEntryTitle encode_html=&quot;1&quot;$&gt;&quot; /&gt;
&lt;/a&gt;
&lt;/MTEntryAssets&gt;
&lt;/MTEntries&gt;</pre>
<p>というタグになります。
（このタグを使用するには、使用画像をアセットとして登録していることが必要になります）</p>
<p>実はこの場合には、__counter__は使えなくなります。というのも、カウンターはブロックタグ内の繰り返し回数を表示するもので、MTEntriesとMTEntryAssetsという2つのブロックタグが入れ子になっているからです。
1つのエントリー内で、アセット数をカウントしても、次のエントリーに移った時に、カウントのリセットが行われます。</p>
<p>こういう場合には、自分でカウント用変数を作成し、カウントを行わせることで、対応します。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/06/appendix-01a.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/06/appendix-01a.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Mon, 30 Jun 2008 19:25:08 +0900</pubDate>
        </item>
        
        <item>
            <title>変数の書き方2(MTSetVarBlockの注意点)</title>
            <description><![CDATA[<p>MTSetVarBlockを使う上で、注意点があります。</p>
<pre class="code" title="タグ内で改行した例">&lt;MTSetVarBlock name=&quot;numbers&quot;&gt;
&lt;MTEntryKeywords&gt;
&lt;/MTSetVarBlock&gt;</pre>
<p>これは、前のコードと同じように見えますが、実は変数 numbers の中身は、前回と異なります。
前回の説明で、&lt;MTSetVarBlock&gt;で挟まれた内容が、変数にセットされると書きました。前回とはの違いは改行コードが含まれている点です。</p>
<p>この場合変数 numbers の中身には、&lt;MTEntryKeywords&gt;の出力の前後に改行が含まれます。そのため、後で変数を使い比較して条件分岐させるような場合に、予想外の動きをされる場合があります。</p>
<p>この様なケースを避けるために、比較する変数をセットする場合には、&lt;MTSetVarBlock&gt;の中で改行を使わないようにすべきです。</p>
<pre class="code" title="改行しない書き方">&lt;MTSetVarBlock name=&quot;numbers&quot;&gt;&lt;MTEntryKeywords&gt;&lt;/MTSetVarBlock&gt;</pre>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/06/variable-02b.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/06/variable-02b.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">変数の初歩</category>
            
            
            <pubDate>Mon, 30 Jun 2008 17:16:57 +0900</pubDate>
        </item>
        
        <item>
            <title>変数の書き方2(MTSetVarBlock)</title>
            <description><![CDATA[<p>MTタグのモディファイアに、MTタグの値を使いたい場合には、&lt;MTSetVarBlock&gt;タグを使います。<br />
このタグで挟まれた内容が、変数に格納されます。</p>
<pre class="code" title="MTTagInvokeと同じ結果になるコード">&lt;MTSetVarBlock name=&quot;numbers&quot;&gt;&lt;MTEntryKeywords&gt;&lt;/MTSetVarBlock&gt;
&lt;MTComments lastn=&quot;$numbers&quot;&gt;
    &lt;p&gt;&lt;$MTCommentAuthor$&gt; said:&lt;br /&gt;
    &lt;$MTCommentBody$&gt;&lt;/p&gt;
&lt;/MTComments&gt;</pre>
<p>最初の行で、変数 numbers に、エントリーのキーワードの値が設定されます。
次の行の $numbers というのは、変数を参照しています。モディファイアとして指定する場合には、&lt;MTGetVar&nbsp;name=&quot;numbers&quot;&gt;ではなく、こちらを使います。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/06/variable-02a.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/06/variable-02a.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">変数の初歩</category>
            
            
            <pubDate>Mon, 30 Jun 2008 15:29:03 +0900</pubDate>
        </item>
        
        <item>
            <title>変数の書き方2</title>
            <description><![CDATA[<p>MovableTypeの制限事項として、MTタグ内のモディファイア指定にMTタグは使えないというのがあります。</p>
<pre class="code" title="NGになる例">&lt;MTSetVar name=&quot;mycategory&quot; value=&quot;&lt;$MTEntryCategory$&gt;&quot;&gt;</pre>
<p>この様なMTタグの使い方は認められておりません。</p>
<p>MT3.3までは、この様なケースを処理するために、<a href="http://www.nonplus.net/software/mt/MTTagInvoke.htm" title="MT Extensions: MTTagInvoke 1.0" class="favicon_m">MTTagInvoke</a>というプラグインを、使いました。</p>
<pre class="code" title="MTTagInvokeを使った例">&lt;MTTagInvoke tag_name=&quot;MTComments&quot;&gt; 
&lt;MTTagInvokeAttribute name=&quot;lastn&quot;&gt;&lt;MTEntryKeywords&gt;&lt;/MTTagInvokeAttribute&gt;
&lt;MTTagInvokeContent&gt;
    &lt;p&gt;&lt;$MTCommentAuthor$&gt; said:&lt;br /&gt;
    &lt;$MTCommentBody$&gt;&lt;/p&gt;
&lt;/MTTagInvokeContent&gt;
&lt;/MTTagInvoke&gt;</pre>
<p>これは、実際には</p>
<pre class="code" title="実際にはエラーになる">&lt;MTComments lastn=&quot;&lt;MTEntryKeywords&gt;&quot;&gt;
    &lt;p&gt;&lt;$MTCommentAuthor$&gt; said:&lt;br /&gt;
    &lt;$MTCommentBody$&gt;&lt;/p&gt;
&lt;/MTComments&gt;</pre>
<p>という内容を、処理しようとしている事になります。</p>
<p>MT4以降では、変数を使って同様の処理が可能になっています。</p>
]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/06/variable-02.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/06/variable-02.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">変数の初歩</category>
            
            
            <pubDate>Mon, 30 Jun 2008 14:55:37 +0900</pubDate>
        </item>
        
        <item>
            <title>変数の書き方1(省略形)</title>
            <description><![CDATA[<p>&lt;MTSetVar&gt;のvalueモディファイアの指定を省略したら、どうなるでしょうか？</p>
<pre class="code" title="valueを指定しない">&lt;MTSetVar&nbsp;name=&quot;varname&quot;&gt;</pre>
<p>実はこれも有効なタグです。
これは通常、valueに空文字を指定した時（value=&quot;&quot;）と同じになります。</p>
]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/06/variable-01a.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/06/variable-01a.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">変数の初歩</category>
            
            
            <pubDate>Mon, 30 Jun 2008 11:21:00 +0900</pubDate>
        </item>
        
        <item>
            <title>追加課題1：変数とopモディファイア</title>
            <description><![CDATA[<p>追加課題自身については、キアズマブログ<a href="http://kiasma.jp/blog/mt/080608071000.html">「[MT4分科会課題説明] 追加課題01」</a>をご覧ください。</p>
<p>この課題では、MT4.1で拡張された変数のopモディファイアの使い方の習得が目的です。</p>
<p>特定の回数繰り返したあとで、違う処理を行うはさむ方法を説明します。</p>
<p>opモディファイアには、四則算のほかにも幾つか種類があります。プログラム処理でよく使われるインクリメンタルなども存在します。</p>
<p>繰り返しのパターンには、opモディファイアのうち、「%」（剰余）を主に使います。
いわゆる割り算の余りの事です。</p>
<p>何回目なのかという数字を、特定の数字で割った余りが 0 になる場合を抜き出すと、ある回数の繰り返しになります。</p>
<p>これを使った書き方が、以下のようになります。</p>
<pre class="code">&lt;MTEntries&gt;
&lt;MTIf name=&quot;__counter__&quot; op=&quot;%&quot; value=&quot;5&quot; eq=&quot;0&quot;&gt;&lt;li&gt;OOPS!&lt;/li&gt;&lt;/MTIf&gt;
&lt;li&gt;&lt;$MTEntryTitle$&gt;&lt;/li&gt;
&lt;/MTEntries&gt;</pre>
<p>__counter__というのは、ブロックタグ内で設定無しに使用できる、繰り返し回数を取得する変数になります。
これを5で割って、あまりが0になる時（つまり割り切れるときです）のみ、MTIf内の処理が行われます。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/06/appendix-01.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/06/appendix-01.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">追加課題</category>
            
            
            <pubDate>Wed, 25 Jun 2008 10:10:58 +0900</pubDate>
        </item>
        
        <item>
            <title>変数の書き方1</title>
            <description><![CDATA[<p>変数を扱うMTタグは、何種類かあります。</p>
<p>その中でも初歩的なものは&lt;MTSetVar&gt;タグ&lt;MTGetVar&gt;タグになります。<br />
それぞれタグ名称通りの動作をします。</p>
<p>MTの変数(Variable)を設定(Set)する、&lt;MTSetVar&gt;</p>
<p>MTの変数(Variable)を取得(Get)する、&lt;MTGetVar&gt;</p>
<p>変数は以下のように設定します。</p>
<pre class="code" title="MTSetVarの例">&lt;MTSetVar&nbsp;name=&quot;varname&quot;&nbsp;value=&quot;varvalue&quot;&gt;</pre>
<p>このタグで、varnameという名前の変数の値が、varvalueという値に設定されます。
これより前にvarnameという変数が、存在しなかった場合は、変数を作成します。
これより前にvarnameの変数に値が設定されていたとしても、varvalueに変更されます。</p>
<p>設定された変数は、以下のようにして取得できます。</p>
<pre class="code" title="MTGetVarの例">&lt;MTGetVar&nbsp;name=&quot;varname&quot;&gt;</pre>
<p>このタグは、varnameという変数の値を出力します。</p>]]></description>
            <link>http://www.zelazny.mydns.jp/sideb/2008/06/variable-01.php</link>
            <guid>http://www.zelazny.mydns.jp/sideb/2008/06/variable-01.php</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">変数の初歩</category>
            
            
            <pubDate>Wed, 25 Jun 2008 02:32:00 +0900</pubDate>
        </item>
        
    </channel>
</rss>

