この記事の内容は、時間経過およびプログラムやシステムのバージョン アップなどの事情によって、現状に正しくそぐわない内容、またはそれどころか、場合によっては問題を引き起こす可能性があります。参考程度に留め、関連記事アーカイブを検索してみてください。

配列変数/ハッシュ変数に任意の値が含まれるか判断するMovableTypeプラグイン:IsInArray

Posted by
ぴろり
Posted at
2010/10/07 22:17
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
プラグイン カテゴリ

twitter - @riatw Kentaro Suzuki
MTで、Hashvar使っている際に、配列に○○が含まれているか、とかっていう条件判定ってMTIFで書く方法ってありますか?in_array()的な。

 <MTIf> 単体での判断はできません。<MTLoop> を使って値またはキーでぐるっと回してやって、そのループ内で判断してやる必要があります。しかし、変数のサイズが大きくなると、ただでさえ遅い再構築で爆死してしまうので、Perl レベルで判断するのがパフォーマンス的には最適かと。というわけで、プラグインにしてみました。

このエントリーをはてなブックマークに追加  

使い方の例

<MTSetVar name="foo[0]" value="123">
<MTSetVar name="foo[1]" value="456">
<MTSetVar name="foo[2]" value="789">

<MTIsInArray name="foo" value="456">
index = <MTVar name="__index__">
<MTElse>
foo に 456 はありません。
</MTIsInArray>

<MTSetVar name="bar{a}" value="123">
<MTSetVar name="bar{b}" value="456">
<MTSetVar name="bar{c}" value="789">

<MTIsInHash name="bar" value="456">
key = <MTVar name="__key__">
<MTElse>
bar に 456 はありません。
</MTIsInArray>

タグ リファレンス

MTIsInArray / MTIsInHash
name で指定された配列変数またはハッシュ変数に、value で指定された値が含まれるか否かを判断する条件タグです。配列変数が value を持つ場合、真となり、変数 __index__ に配列の添字を代入します。ハッシュ変数が value を持つ場合、真となり、変数 __key__ にハッシュキーを代入します。

ダウンロード

いろいろ

  • パフォーマンス測定は行っていませんが、多分、テンプレート タグでゴリゴリやるよりは早いはずです(ぉぃ
  • MT4、MT5 で動作します
  • ライセンスは LGPL とします
このエントリーをはてなブックマークに追加  


更新履歴

Updated at
2012/11/23 14:58
更新メモ
r3 このプラグインの機能は ArrayUtil プラグインに統合されました。

この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:配列/ハッシュ変数を使いやすくする MovableType プラグイン:ArrayUtil

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。