Home> MT4第2回 > 変数の初歩: 2008年6月アーカイブ
変数の初歩: 2008年6月アーカイブ
変数の書き方2(MTSetVarBlockの注意点)
- 2008年6月30日 17:16
- 変数の初歩
MTSetVarBlockを使う上で、注意点があります。
<MTSetVarBlock name="numbers"> <MTEntryKeywords> </MTSetVarBlock>
これは、前のコードと同じように見えますが、実は変数 numbers の中身は、前回と異なります。
前回の説明で、<MTSetVarBlock>で挟まれた内容が、変数にセットされると書きました。前回とはの違いは改行コードが含まれている点です。
この場合変数 numbers の中身には、<MTEntryKeywords>の出力の前後に改行が含まれます。そのため、後で変数を使い比較して条件分岐させるような場合に、予想外の動きをされる場合があります。
この様なケースを避けるために、比較する変数をセットする場合には、<MTSetVarBlock>の中で改行を使わないようにすべきです。
<MTSetVarBlock name="numbers"><MTEntryKeywords></MTSetVarBlock>
- Comments: 0
- TrackBacks: 0
変数の書き方2(MTSetVarBlock)
- 2008年6月30日 15:29
- 変数の初歩
MTタグのモディファイアに、MTタグの値を使いたい場合には、<MTSetVarBlock>タグを使います。
このタグで挟まれた内容が、変数に格納されます。
<MTSetVarBlock name="numbers"><MTEntryKeywords></MTSetVarBlock>
<MTComments lastn="$numbers">
<p><$MTCommentAuthor$> said:<br />
<$MTCommentBody$></p>
</MTComments>
最初の行で、変数 numbers に、エントリーのキーワードの値が設定されます。
次の行の $numbers というのは、変数を参照しています。モディファイアとして指定する場合には、<MTGetVar name="numbers">ではなく、こちらを使います。
- Comments: 0
- TrackBacks: 0
変数の書き方2
- 2008年6月30日 14:55
- 変数の初歩
MovableTypeの制限事項として、MTタグ内のモディファイア指定にMTタグは使えないというのがあります。
<MTSetVar name="mycategory" value="<$MTEntryCategory$>">
この様なMTタグの使い方は認められておりません。
MT3.3までは、この様なケースを処理するために、MTTagInvokeというプラグインを、使いました。
<MTTagInvoke tag_name="MTComments">
<MTTagInvokeAttribute name="lastn"><MTEntryKeywords></MTTagInvokeAttribute>
<MTTagInvokeContent>
<p><$MTCommentAuthor$> said:<br />
<$MTCommentBody$></p>
</MTTagInvokeContent>
</MTTagInvoke>
これは、実際には
<MTComments lastn="<MTEntryKeywords>">
<p><$MTCommentAuthor$> said:<br />
<$MTCommentBody$></p>
</MTComments>
という内容を、処理しようとしている事になります。
MT4以降では、変数を使って同様の処理が可能になっています。
- Comments: 0
- TrackBacks: 0
変数の書き方1(省略形)
- 2008年6月30日 11:21
- 変数の初歩
<MTSetVar>のvalueモディファイアの指定を省略したら、どうなるでしょうか?
<MTSetVar name="varname">
実はこれも有効なタグです。
これは通常、valueに空文字を指定した時(value="")と同じになります。
- Comments: 0
- TrackBacks: 0
変数の書き方1
- 2008年6月25日 02:32
- 変数の初歩
変数を扱うMTタグは、何種類かあります。
その中でも初歩的なものは<MTSetVar>タグ<MTGetVar>タグになります。
それぞれタグ名称通りの動作をします。
MTの変数(Variable)を設定(Set)する、<MTSetVar>
MTの変数(Variable)を取得(Get)する、<MTGetVar>
変数は以下のように設定します。
<MTSetVar name="varname" value="varvalue">
このタグで、varnameという名前の変数の値が、varvalueという値に設定されます。
これより前にvarnameという変数が、存在しなかった場合は、変数を作成します。
これより前にvarnameの変数に値が設定されていたとしても、varvalueに変更されます。
設定された変数は、以下のようにして取得できます。
<MTGetVar name="varname">
このタグは、varnameという変数の値を出力します。
- Comments: 0
- TrackBacks: 0