JavaScript、Ajax、HTML5(API)、Ruby…Web及び関連技術の実験&情報公開&制作物紹介。

評価だけして中身を出力しない - MTVoid

| コメント(2)

MTVoid 0.1 を公開します。
<MTVoid> というコンテンツタグを提供します。内容は評価するけれども、実際には何も出力しない、という動作をします。

簡単な使用例:
<MTVoid><$MTInclude identifier="styles"$></MTVoid>

(MTIncludeの処理は行われますが、その内容は出力されません。)

動作環境

Movable Type(以下、MTと略記)ver.3.x、ver.4 以降。

ダウンロード

(どちらかを選択してください。内容は同じです。)

MTVoid プラグイン本体
MTVoid プラグイン MT3ダイナミックパブリッシング対応差分

インストール

MT3, MT4 共通
  1. プラグイン本体のアーカイブをダウンロードしてください。
  2. ダウンロードしたファイルを解凍してください。
    解凍ソフトに「ディレクトリ構造を**」というオプションがある場合は、「ディレクトリ構造を有効(再現、等)」にして解凍すると、以下のようなディレクトリ構造が生成されます:
    ┗[MTVoid]
     ┣MTVoid.pl
     ┗[php]
      ┗block.mtvoid.php
  3. MTVoid フォルダごと [MT]/plugins/ フォルダにコピー(アップロード)してください。
MT3.x でダイナミックパブリッシングをご使用の場合

以降の操作は、MT4では不要です。

  1. MT3ダイナミックパブリッシング対応差分のアーカイブをダウンロードしてください。
  2. ダウンロードしたファイルを解凍してください。
    解凍すると、ただ1つのファイル block.MTVoid.php が生成されます。
  3. 解凍して得られたファイルを [MT]/php/plugins/ フォルダにコピー(アップロード)してください。

使い方

このプラグインが提供するのは、一つのコンテンツタグです。

<MTVoid>
非出力タグ。
内容(コンテンツ)を評価しますが、その結果を(と言いますか何も)出力しません。

使用例

(前述の「簡単な使用例」を参照してください。)

MTIgnore との違い

括った範囲を出力しないタグとしては、MT標準(MT3.3x以降)で <MTIgnore> というタグが存在します。
これは、その中身(コンテンツ)をまったく評価しません。文字通り『無視』するタグです。
例えば、

<MTIgnore>
<$MTSetVar name="hoge" value="tara"$>
<$MTGetVar name="hoge"$>
</MTIgnore>

とすると、何も出力されない代わりに、MTSetVarが評価されないので、変数「hoge」には何も代入されません。つまり、他の場所で <$MTGetVar name="hoge"$> を記述しても「tara」とは出力されません(エラーになる可能性もあります)。

これを

<MTVoid>
<$MTSetVar name="hoge" value="tara"$>
<$MTGetVar name="hoge"$>
</MTVoid>

と置き換えると、やはり何も出力されませんが、内容は評価されているので、他の場所で <$MTGetVar name="hoge"$> と記述するときちんと「tara」と出力されます。

MTSetVarBlock との違い

内容を評価だけして出力しない方法としては、標準タグを使用する方法としては MTSetVarBlock を利用するものがあります。
先ほどの例の場合、

<MTSetVarBlock name="dummy">
<$MTSetVar name="hoge" value="tara"$>
<$MTGetVar name="hoge"$>
</MTSetVarBlock>

このようにしても、内容を評価だけしてその結果を出力しない、という目的は達成できます。
ただしこの方法には、以下の問題点が存在します:

  • MTSetVarBlockに使用する変数名(この例の場合 dummy)は他で使われていないものにする必要がある
  • 出力されないだけでその変数(で参照されるサーバのメモリ領域)にデータが残るので、微々たる物ではあれどサーバのメモリを一時的に圧迫する

MTVoid は、評価した内容は出力されないだけでなく、メモリ上にも残りません。また、変数名を心配する必要もまったくないので、よりスマートな解決策となります。

免責事項

Movable Type のユーザーは目的を問わず、このプラグインを無償で自由に利用することができます。著作権は Antimon2 が保持します。
このプラグインは無保証です。このプラグインの利用によるいかなる損害にも作者は一切の責任を負いません。

おまけ

姉妹プラグインの MTSpan(評価した内容をそのまま出力するプラグイン)もヨロシク。

コメント(2)

こんにちは、お久しぶりです。
出力しないわけだから、改行も出力されない訳ですね。
みなさん、色んなプラグインを作ってくださるので、どれで解決するか迷っちゃいますね。

えと、例文少し変じゃないでしょうか?

ご無沙汰ぶりです。
○2ヶ月更新してませんでしたー<ここ

あんど、突っ込みThanksです。ボケボケですね<自分

技術情報:ちなみに、「何も出力しない」としていますが、より正確には『空の文字列(='')』を出力しています。結果的に何も出力されていないのと同じ、というワケです。

カテゴリ

月別 アーカイブ

OpenID対応しています OpenIDについて

このブログ記事について

このページは、あんちもん2が2007年8月15日 09:54に書いたブログ記事です。

ひとつ前のブログ記事は「ダイナミック・パブリッシング対応プラグインの MT4 における仕様変更について」です。

次のブログ記事は「拙作プラグイン MovableType4 (随時)正式対応(中)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。