Home> MT4第2回 > 変数の初歩: 2008年6月アーカイブ

変数の初歩: 2008年6月アーカイブ

変数の書き方2(MTSetVarBlockの注意点)

MTSetVarBlockを使う上で、注意点があります。

<MTSetVarBlock name="numbers">
<MTEntryKeywords>
</MTSetVarBlock>

これは、前のコードと同じように見えますが、実は変数 numbers の中身は、前回と異なります。
前回の説明で、<MTSetVarBlock>で挟まれた内容が、変数にセットされると書きました。前回とはの違いは改行コードが含まれている点です。

この場合変数 numbers の中身には、<MTEntryKeywords>の出力の前後に改行が含まれます。そのため、後で変数を使い比較して条件分岐させるような場合に、予想外の動きをされる場合があります。

この様なケースを避けるために、比較する変数をセットする場合には、<MTSetVarBlock>の中で改行を使わないようにすべきです。

<MTSetVarBlock name="numbers"><MTEntryKeywords></MTSetVarBlock>

変数の書き方2(MTSetVarBlock)

MTタグのモディファイアに、MTタグの値を使いたい場合には、<MTSetVarBlock>タグを使います。

このタグで挟まれた内容が、変数に格納されます。

<MTSetVarBlock name="numbers"><MTEntryKeywords></MTSetVarBlock>
<MTComments lastn="$numbers">
    <p><$MTCommentAuthor$> said:<br />
    <$MTCommentBody$></p>
</MTComments>

最初の行で、変数 numbers に、エントリーのキーワードの値が設定されます。
次の行の $numbers というのは、変数を参照しています。モディファイアとして指定する場合には、<MTGetVar name="numbers">ではなく、こちらを使います。

変数の書き方2

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以降では、変数を使って同様の処理が可能になっています。

変数の書き方1(省略形)

<MTSetVar>のvalueモディファイアの指定を省略したら、どうなるでしょうか?

<MTSetVar name="varname">

実はこれも有効なタグです。
これは通常、valueに空文字を指定した時(value="")と同じになります。

変数の書き方1

変数を扱う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という変数の値を出力します。

Home> MT4第2回 > 変数の初歩: 2008年6月アーカイブ

カテゴリ
  • MT4第2回
  • MT4第3回
    • アクションストリームとは
    • アクションストリームのTips
    • アクションストリーム・プラグインの作成
アーカイブ
購読
Powerd By

Return to page top