Under the Bridge

a Picture of the Late Him

MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布

2008年5月 6日 09:52 | Writer: yoshi | 記事本文 | コメント(0) | トラックバック(0)

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 />

トラックバック(0)

このブログ記事を参照しているブログ一覧: MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布

このブログ記事に対するトラックバックURL:

コメントする






Categories
Entries
Feed
スポンサードリンク

parts

フィードメーター - Under the Bridge

あわせて読みたい

なかのひと

2008 yoshi(apstar)