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

数え上げや連番生成ができる! - AutoIncrementalVar

| トラックバック(9)

こんな経験はありませんか?

  • (エントリーなどの)一覧に連番を振りたいけれど、<ol>タグは使えない(使いたくない)
  • ある特殊な条件を満たすもの(例えばエントリー)をカウントしたいけれど、<$MT○○○Count$>タグではうまくできない

こういった問題を解決できるもの。
それが、AutoIncrementalVar プラグインです。
標準のMTタグ <$SetVar$>、<$GetVar$> と同じ感覚で、連番生成や数え上げができるようになります。

動作環境

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

【2007/08/18 ver.0.6 公開、MT4.0に正式対応しました。】

ダウンロード

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

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

インストール

※今回のバージョンアップによる機能の追加はありません。
MT3.xで、すでに旧バージョン(ver.0.5)をお使いの方は、バージョンアップは必要ありません。

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

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

  1. MT3ダイナミックパブリッシング対応差分のアーカイブをダウンロードしてください。
  2. ダウンロードしたファイルを解凍してください。
    解凍すると、6つの.phpファイルが生成されます。
  3. 解凍して得られたファイルをすべて [MT]/php/plugins/ フォルダにコピー(アップロード)してください。
    ※resource.mtbuildvalue.php ファイルをコピー(アップロード)する際に、「存在します。上書きしますか?」等の確認メッセージが表示される場合があります。構わずに上書きしてください(「はい」を押してください)。

使い方

このプラグインが提供するのは、4つの変数タグです。

<$MTSetVarAutoIncremental$>
自動数え上げ変数設定タグ。
以下の属性が指定できます。
  • name … [必須]変数名。<$MTSetVar$>の name 属性に相当。
  • value … 変数値。<$MTSetVar$>の value 属性に相当。数値以外、もしくは指定無しの場合の初期値は 0。
  • step … 増分。指定無しの場合の初期値は 1。
<$MTGetVarWithIncrement$>
自動数え上げ変数値取得タグ。
設定された現在値を取得するとともに、その数に step値 を加算した値を再設定します。
以下の属性が指定できます。
  • name … [必須]変数名。<$MTGetVar$>の name 属性に相当。
<$MTGetVarWithoutIncrement$>
自動数え上げ変数値取得タグ。
設定された現在値を取得します。内部加算はしません。
以下の属性が指定できます。
  • name … [必須]変数名。<$MTGetVar$>の name 属性に相当。
<$MTIncrementVar$>
自動数え上げ変数値計算タグ。
この変数タグは何も表示しません。内部的に設定された現在値に step値 を加算した値を再設定します。
以下の属性が指定できます。
  • name … [必須]変数名。<$MTGetVar$>の name 属性に相当。

使用例

1.エントリー一覧に連番を振る

以下は、エントリーを列挙する際にタイトルの前に連番を振っている例です。
使用するのは、<$MTSetVarAutoIncremental$>と<$MTGetVarWithIncrement$>です。
連番は1から開始します。 step は指定していないので、1ずつ増えていきます。

<$MTSetVarAutoIncremental name="entryNo" value="1"$>
<MTEntries category="hoge">
<h3><$MTGetVarWithIncrement name="entryNo">: <$MTEntryTitle$></h3>
<div><$MTEntryExcerpt$></div>
</MTEntries>

↓結果例

1: ヴィンデ

風の精。♀。明るくてちょっとおっちょこちょい。...

2: ボッタ

人間の男の子。♂。恥ずかしがり屋。...

3: フランメ

火の精。♀。お嬢様気取りの怒りん坊。...
2.数え上げ

以下は、既にコメントのついているエントリーの数を数え上げる例です。
使用するのは、<$MTSetVarAutoIncremental$>,<$MTIncrementVar$>,<$MTGetVarWithoutIncrement$>です。また、Compareプラグインも使用します。

<$MTSetVarAutoIncremental name="entryCount" value="0"$>
<MTEntries category="hoge">
<MTIfGreater a="[MTEntryCommentCount]" b="0"><$MTIncrementVar name="entryCount"></MTIfGreater>
</MTEntries>
The Number of Commented Entries: <$MTGetVarWithoutIncrement name="entryCount"$>

↓結果例

The Number of Commented Entries: 2

<$MTSetVar$>、<$MTGetVar$>との互換性

AutoIncrementalVarプラグインの各変数タグは、<$MTSetVar$>/<$MTGetVar$>と互換性があります。

  • <$MTSetVarAutoIncremental$>で設定した変数値は<$MTGetVar$>で取得できます。その際の動作は、<$MTGetVarWithoutIncrement$>と同じになります。
  • <$MTSetVar$>で設定した変数値は<$MTGetVarWithIncrement$>や<$MTGetVarWithoutIncrement$>で取得できます。その際の動作は、設定値が数値ならばそのまま使われ、数値でなければ 0 に変換されます。step値はデフォルトの初期値 1 になります。<$MTIncrementVar$>も同様です。

似たようなプラグインの紹介

免責事項

Movable Type のユーザーは目的を問わず、このプラグインを無償で自由に利用することができます。著作権は Antimon2 が保持します。

このプラグインは無保証です。このプラグインの利用によるいかなる損害にも作者は一切の責任を負いません。

トラックバック(9)

あんちもん2.Lab - スマートで高機能!Counterプラグイン (2006年11月17日 01:13)

先日公開された、Counterプラグイン。拙作 AutoIncrementalVar プラグインとどう違うのか検証。 続きを読む

オラオラ - links for 2006-11-30 (2006年12月 1日 06:24)

PHPとAjaxを使ったWEBベースのファイル管理ツール「PHP Navigator」:phpspot開発日誌 PHP+Ajaxで作られてる... 続きを読む

あんちもん2.Lab - VarHandlerプラグイン (2007年1月15日 02:02)

藤本壱さん作のVarHandlerプラグインの紹介と、拙作 AutoIncrementalVar プラグインとの比較・検証。 続きを読む

WingMemo - ダイナミック・パブリッシングで頁分割(5) 親カテゴリー編 (2007年2月 5日 22:40)

オラオラのoscarさんから「親カテゴリーに子カテゴリーのエントリーも表示させ、かつ頁分割も行いたい」との質問を受け、parlプラグインを使う部分を静的生... 続きを読む

オラオラ - 子カテゴリのエントリーを含むアーカイブ(ダイナミックパブリッシング版) (2007年2月 6日 21:51)

前回ちょっと、無理やり実現した、子カテゴリーを含むエントリーアーカイブをページ分割する方法に、もう少しスマートに実現する方法が見つかり(見つけてもらい)ました。 続きを読む

WingMemo - ダイナミック・パブリッシングで頁分割(6) archives.html編(改) (2007年2月10日 15:44)

親カテゴリー編でダイナミック対応のプラグインを使って「子カテゴリーを含む親カテゴリーのエントリー数」を取得できたので、これまで静的用プラグインで対応してき... 続きを読む

オラオラ - 最近のMTプラグイン・要チェックサイト (2007年3月13日 21:41)

ここ最近のMTのプラグイン関連での要チェックサイトは、「Junnama Online (Mirror)」と「あんちもん2.Lab」です。特に あんちもん2... 続きを読む

オラオラ - 失敗作・月別アーカイブリスト・ダイナミックパブリッシング対応版 (2007年3月15日 16:20)

Perlプラグイン「Conter」依存だった、月別アーカイブリストのテンプレートを「AutoIncrementalVar」+「Compare」に書き換えて... 続きを読む

WolaWola - MT4出ましたね (2007年8月10日 02:00)

MT4出たので早速試してみる。MT-SubCatCountプラグインの代わりが、変数タグで実現可能か実験しました。 続きを読む

カテゴリ

月別 アーカイブ

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

このブログ記事について

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

ひとつ前のブログ記事は「ダイナミック・パブリッシング対応Compareプラグイン」です。

次のブログ記事は「私のポリシー (ブラウザ編)」です。

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