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

スマートで高機能!Counterプラグイン

| トラックバック(2)

小粋空間さんで紹介されていたので知ったのですが、便利なプラグインが公開されました。
MovableType用Counter Plugin Ver.0.50 (エムロジック放課後プロジェクト)。
機能的には、拙作 AutoIncrementalVar プラグイン とほぼ同じですが、機能や扱い方等の違いを色々と比較してみました。

提供されるMTタグの比較

CounterAutoIncrementalVar機能・備考
<MTCounter>-カウンター処理をする範囲全体を括るコンテンツ・タグ
<$MTCounterSetValue$><$MTSetVarAutoIncremental$>カウンターの初期値を設定する変数タグ(出力無し)
<$MTCounterPlus$><$MTIncrementVar$>カウンタ値を+1する変数タグ(出力無し)
<$MTCounterMinus$>(<$MTIncrementVar$>)カウンタ値を-1する変数タグ(出力無し)
<$MTIncrementVar$>は最初に<MTSetVarAutoIncremental>タグで step="-1" 属性を指定した際に同じ振る舞いとなる。
<$MTCounterValue$><$MTGetVarWithoutIncrement$>現在のカウンタ値を出力する変数タグ
-<$MTGetVarWithIncrement$>現在のカウンタ値を出力すると同時に、カウンタ値を+1する変数タグ
<MTCounterIfEqual>, <MTCounterIfLess>, <MTCounterIfMore>, <MTCounterIfOdd>, <MTCounterIfEven>, <MTCounterIfMod>-カウンタ値と他の値や計算結果等を比較する条件タグ
AutoIncrementalVar側には対応するタグはないが、Compareプラグインを併用すれば前者3つのタグと同じ機能は実現可能

機能比較

CounterAutoIncrementalVar
カウンター機能の適用範囲を指定できる(<MTCounter>?</MTCounter>)で括った範囲内に限定初期化した場所からテンプレートの終わりまで有効
カウンターを名前で識別できない(*1)<$MTSetVarAutoIncremental$>で name="○○" 属性を指定することで、名前で識別できる複数のカウンターを設置可能
複数のカウンターを同時に使用できない(*1)<$MTSetVarAutoIncremental$>の name 属性値を変えることで複数のカウンターを同時に(しかも非同期に)使用可能
カウンター使用中にカウンタ値の加算(+1)・減算(-1)が自由にできるカウンタ値の増分は、<$MTSetVarAutoIncremental$>の step 属性で指定した値固定。途中で切り替えることは不可
カウンタ値の増減は +1(<$MTCounterPlus$>)か -1(<$MTCounterMinus$>)のみカウンタ値の増分は<$MTSetVarAutoIncremental$>の step 属性で自由に指定可。小数にも対応(step="0.5"など)
途中でカウンタ値の変更が可能(<$MTCounterSetValue$>による)途中でカウンタ値の変更が可能(<$MTSetVarAutoIncremental$>もしくは<$MTSetVar$>による)
カウンタ値と他の値との比較をする条件タグを標準で提供(<MTCounterIfEqual>, <MTCounterIfLess>, <MTCounterIfMore>)カウンタ値と他の値との比較は、Compareプラグイン等を使用することで実現可能
カウンタ値が奇数か偶数か、あるいは剰余を比較する条件タグを標準で提供(<MTCounterIfOdd>, <MTCounterIfEven>, <MTCounterIfMod>)(対応する機能無し)
(対応する機能無し)Movable Type 標準の <$MTSetVar$>, <$MTGetVar$> と互換性あり(値の設定・取得において)
(対応する機能無し)ダイナミック・パブリッシングに対応

(*1)2006/11/16 現在。今後改良される可能性あり。

その他 考察

Counter プラグインは、「カウンター」という機能に焦点を絞って、必要な機能をきちんと盛り込んだ、コンパクトなプラグイン、という印象です。
提供されるタグ名も、きちんと「MTCounterXXX」という Movable Type 推奨の命名規約に則っており、使う側も扱いやすいでしょう。
一方で拙作の AutoIncrementalVar プラグインは、「変数を扱う」ということに拘って作成したものです。<$MTSetVar$>, <$MTGetVar$> との互換性に気を配り、命名もそれの拡張であることが分かるように MTSetVarXXX, MTGetvarXXX としています(MTIncrementVar も「Set」でも「Get」でもない別の機能ということで「Increment」という名前を付けています)。
ただその分、見た目には一貫性がなくて、機能としても「欲しい機能」がそろっているかというとどこか物足りないかも知れません。
唯一、Counter プラグインに勝っているんじゃないかな(^-^)と胸を張れるのは、コンテンツタグで処理する替わりに内部変数を持たせて変数タグのみで処理することで、同時に複数のカウンターをしかも非同期に動作させることができる点ではないかな、と思ってます。
いや、勝ち負けなんて意味ないですけれどね。

これを機会に、もう少し見直してより「みんなが使ってくれそうなプラグイン」に改良していこうかな。

トラックバック(2)

あんちもん2.Lab - 数え上げや連番生成ができる! - AutoIncrementalVar (2006年11月17日 01:25)

MTSetVar/MTGetVar互換、数え上げ変数作成プラグインの紹介。 続きを読む

WebRoom - Counter Pluginでエントリーのリストをカウント (2006年11月25日 02:42)

MovableTypeの管理画面にあるテンプレート一覧のようにリストを交互に色... 続きを読む

カテゴリ

月別 アーカイブ

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

このブログ記事について

このページは、あんちもん2が2006年11月17日 00:01に書いたブログ記事です。

ひとつ前のブログ記事は「Mighty Mouse のメンテナンス」です。

次のブログ記事は「意外と知られていない機能を引き出す! カテゴリーソートプラグイン」です。

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