MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布
Movable Typeの計算機能を拡張するプラグインを作成しました。
SetVar系のテンプレートタグには変数を用いた演算機能はあるのですが、...ちょっと貧弱で直感的にわかりづらいです。
ダウンロード
http://www.apstars.com/blog/download/calcexp.zip制限事項:何もなし。勝手に使ってください。しかし使った結果には一切責任を持ちません。また、今のところプラグインの配布にはあまり熱心ではないので、将来的にリンク切れてたらスイマセン。
本当はmtde.infoのほうで解説・配布しようかと考えています。
適用
解凍したファイルを親フォルダ(calcexp)ごとpluginsフォルダへ放り込んでください。
仕様
テーマは「直感的に使いやすく」。なので、最初はMTSetVar opを拡張したカタチで作っておりましたが、作者の私でさえ使い方を間違えるのでやめました。「演算の関数はこうあるべき」というカタチを目指しました。私以外の方には使いづらいかもしれませんが。
以下のテンプレートタグが使えるようになります。
- MTCalcExp
- MTCalcExpArray
基本的にbaseモデファイアで演算ベースの値、palamモデファイアでどういうパラメータで演算を行うか、opモデファイアで演算モードを指定します。
まずは標準のSetVar opでサポートされている演算。
- 足し算
- MTCalcExp base="$value1" palam="$value2" op="+"
- 引き算
- MTCalcExp base="$value1" palam="$value2" op="-"
- 掛け算
- MTCalcExp base="$value1" palam="$value2" op="*"
- 割り算
- MTCalcExp base="$value1" palam="$value2" op="/"
- 余剰
- MTCalcExp base="$value1" palam="$value2" op="%"
- 文字列連結1
- MTCalcExp base="$value1" palam="$value2" op="append"
- 文字列連結2
- MTCalcExp base="$value1" palam="$value2" op="prepend"
次に、このプラグイン独自の拡張演算。
- 乱数
- MTCalcExp base="$value1" palam="$value2" op="rand"
- ゼロ埋め
- MTCalcExp base="$value1" palam="$value2" op="zero"
- 四捨五入
- MTCalcExp base="$value1" palam="$value2" op="round"
- 整数化
- MTCalcExp base="$value1" palam="$value2" op="int"
- 切り捨て
- MTCalcExp base="$value1" palam="$value2" op="floor"
- 切り上げ
- MTCalcExp base="$value1" palam="$value2" op="ceil"
- べき乗
- MTCalcExp base="$value1" palam="$value2" op="pow"
- 平方根
- MTCalcExp base="$value1" palam="$value2" op="sqrt"
- 三角関数(sin)
- MTCalcExp base="$value1" palam="$value2" op="sin"
- 三角関数(cos)
- MTCalcExp base="$value1" palam="$value2" op="cos"
- 三角関数(tan)
- MTCalcExp base="$value1" palam="$value2" op="tan"
- 角度→ラジアン変換
- MTCalcExp base="$value1" palam="$value2" op="angle2rad"
- ラジアン→角度変換
- MTCalcExp base="$value1" palam="$value2" op="rad2angle"
そして、配列を用いた演算。
- 平均値
- MTCalcExpArray palam="100,55,98,99,97" op="avg"
- 最大値
- MTCalcExpArray palam="100,55,98,99,97" op="max"
- 最小値
- MTCalcExpArray palam="100,55,98,99,97" op="min"
テストコード
テストや練習のために使ってください。palamモデファイアが不要な演算もあります。下記を参考にしてください。
(足し算)
<MTSetvar name="value1" value="111">
<MTSetvar name="value2" value="21">
<MTCalcExp base="$value1" palam="$value2" op="+">
<br />
(引き算)
<MTSetvar name="value1" value="111">
<MTSetvar name="value2" value="21">
<MTCalcExp base="$value1" palam="$value2" op="-">
<br />
(掛け算)
<MTSetvar name="value1" value="111">
<MTSetvar name="value2" value="21">
<MTCalcExp base="$value1" palam="$value2" op="*">
<br />
(割り算)
<MTSetvar name="value1" value="111">
<MTSetvar name="value2" value="21">
<MTCalcExp base="$value1" palam="$value2" op="/">
<br />
(余剰)
<MTSetvar name="value1" value="111">
<MTSetvar name="value2" value="21">
<MTCalcExp base="$value1" palam="$value2" op="%">
<br />
(文字列連結)
<MTSetvar name="value1" value="週間">
<MTSetvar name="value2" value="秩父伝説">
<MTCalcExp base="$value1" palam="$value2" op="append">
<br />
(文字列連結2)
<MTSetvar name="value1" value="週間">
<MTSetvar name="value2" value="秩父伝説">
<MTCalcExp base="$value1" palam="$value2" op="prepend">
<br />
(乱数)
<MTSetvar name="value1" value="0">
<MTSetvar name="value2" value="100">
<MTCalcExp base="$value1" palam="$value2" op="rand">
<br />
(ゼロ埋め)
<MTSetvar name="value1" value="71">
<MTSetvar name="value2" value="4">
<MTCalcExp base="$value1" palam="$value2" op="zero">
<br />
(四捨五入)
<MTSetvar name="value1" value="123.456789">
<MTSetvar name="value2" value="3">
<MTCalcExp base="$value1" palam="$value2" op="round">
<br />
(整数化)
<MTSetvar name="value1" value="123.456789">
<MTSetvar name="value2" value="">
<MTCalcExp base="$value1" palam="$value2" op="int">
<br />
(切り捨て)
<MTSetvar name="value1" value="123.456789">
<MTSetvar name="value2" value="5">
<MTCalcExp base="$value1" palam="$value2" op="floor">
<br />
(切り上げ)
<MTSetvar name="value1" value="123.456789">
<MTSetvar name="value2" value="5">
<MTCalcExp base="$value1" palam="$value2" op="ceil">
<br />
(べき乗)
<MTSetvar name="value1" value="2">
<MTSetvar name="value2" value="16">
<MTCalcExp base="$value1" palam="$value2" op="pow">
<br />
(平方根)
<MTSetvar name="value1" value="144">
<MTSetvar name="value2" value="">
<MTCalcExp base="$value1" palam="$value2" op="sqrt">
<br />
(sin)
<MTSetvar name="value1" value="30">
<MTSetvar name="value2" value="">
<MTCalcExp base="$value1" palam="$value2" op="sin">
<br />
(cos)
<MTSetvar name="value1" value="30">
<MTSetvar name="value2" value="">
<MTCalcExp base="$value1" palam="$value2" op="cos">
<br />
(tan)
<MTSetvar name="value1" value="30">
<MTSetvar name="value2" value="">
<MTCalcExp base="$value1" palam="$value2" op="tan">
<br />
(角度→rad)
<MTSetvar name="value1" value="30">
<MTSetvar name="value2" value="">
<MTCalcExp base="$value1" palam="$value2" op="angle2rad">
<br />
(rad→角度)
<MTSetvar name="value1" value="0.789">
<MTSetvar name="value2" value="">
<MTCalcExp base="$value1" palam="$value2" op="rad2angle">
<br />
(平均)
<MTCalcExpArray palam="100,55,98,99,97" op="avg">
<br />
(最大)
<MTCalcExpArray palam="100,55,98,99,97" op="max">
<br />
(最小)
<MTCalcExpArray palam="100,55,98,99,97" op="min">
<br />
- カテゴリ:215プラグイン関係
トラックバック(0)
このブログ記事を参照しているブログ一覧: MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布
このブログ記事に対するトラックバックURL:
- Categories
- Entries
-
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.5)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.4)
- memo:perlでプラグイン Image::ExifとImage::Info
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.3)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.2)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(GPS Ready)
- MT4:エントリのURLをQRコードで自動生成する
- MT4.2:QRコード画像を生成するプラグイン(改)
- 嵌りメモ(perlのxampp環境でのファイル吐き出し実験)
- MT4.2:QRコード画像を生成するプラグイン
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(失敗)
- 管理画面を拡張する(メニューとメソッド追加)
- MT4.1:追加したファンクションタグのみへモデファイア追加
- MT4.1:エントリの既存DBへアクセスしてデータ取得
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)開発の話
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン(改)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(プラグイン設定編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(ブログ毎編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(カテゴリ編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(エントリ編)
- MT4.1:カテゴリの並べ替え(オリジナルプラグイン+ハッシュ変数)
- サンプルプラグインを手入力した(AddField)
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン
- サンプルプラグインを手入力した(RandomEntry)
- 最小単位のプラグインを生成するサンプル(ファンクション、ブロック、モデファイア、コールバック)
コメントする