Results tagged “mtcalc”

MTCalc0.8

現在のコードで、とりあえず色々出来る。例えばこんな表示など。
img タグなどに組み込んで、エントリーについたコメント数をグラフ表示させたりも出来るだろう。
現在このブログにはコメントが一つもついて無いので、サンプルを示せないのが大変残念だが。

セキュリティーの問題がある。現在のコードでは、perlで出来ることは何でも出来てしまう。
自分のように一人でテンプレート書いてエントリー書いてやっている分には問題ないが、複数の管理人がいるような場合には、ちょっと導入するのは奨められない現状だ。

使用できる関数を決めて、それ以外の関数が混入していたらエラーとする、か。

MTCalc0.7

  • Posted on
  • by

とりあえず、昨日考えていた機能を実装したものができた。

しかし、現在のところエラーチェックが殆どされていない。これはまずい。
そして、式の中の変数が評価できない場合の対応が難しい。
MTタグに関しては、文字列が帰ってきた場合、コンテナタグなどを呼んだ場合、そもそも存在しないタグを呼んだ場合など。
VAR変数でも、文字列の場合と、存在しない場合がある。

現状では、すべて 0 扱いして無理やり評価させているのだが、実運用においては再構築時にエラーを出したほうがよいように思える。
これもアトリビュートで指定して、処理を選択できるようにするのがいいだろうか。

MTCalc0.6

  • Posted on
  • by
SetVar/GetVarについてのテストも成功したので、具体的にどういう動作をするかを考える。 ほしい機能は次のようなものだ。
  1. 四則演算が出来る。
  2. 10進数字のほかに、変数として、値を返すMTタグとMTSetVarで作成した変数を扱える。
  3. 計算結果をMTSetVarの変数空間に格納できる。

(1)については、取りあえず eval() 関数に丸投げすることで良しとしよう。取りあえず。

(2)について現在の仕様では、式について評価する前に全て書き換えてしまうのなら難しくないように思える。MT...で始まる英数字の列はMTタグとして評価、VARで始まる英数字の列はMTGetVarもどきで値の取り出しを試みる。それ以外の文字列は、eval() にお任せとする。

(3)これは式の中に書式を織り込むのはホネそうなので、別のアトリビュートに放り込み先を指定することとする。setvar="name"とすると、<$MTSetVar name="name" value ="(計算結果)"$>と同じ働きをする。といいな。指定が無ければ何もしない。

MTCalc0.5

  • Posted on
  • by

MTのほうで、アトリビュート内のMTタグを展開してくれないことで、別の手段を模索しなくてはならなくなった。
そういえば、<$MT...$>という構文では無い形でタグの情報を利用しているタグがあった筈。・・・そうだ、MTIfNonZero と MTIfNonEmpty だ。
早速、./lib/MT/Template/ContextHandler.pm から、それっぽいところをぶった切って持ってきてみる。
動いた。
何とかなりそうだ。

ついでに、MTSetVar などとも連携が取れるようにすれば面白そうだ。

MTCalc0.4

  • Posted on
  • by

evalに丸投げで完成かと思われた矢先、MTタグのアトリビュート内にはMTタグを埋め込めない事が判明した。HTMLタグの中には普通に放り込んでいたので、再帰的に内側のタグから展開しているものだと思い込んでしまった&こんな事は先に実験しておくべきだった。。。
考えていたあんなことやこんなことが遠のいていく。。。

MTCalc0.3

  • Posted on
  • by

perl には、eval() という関数があることを今知った。
引数をこの関数にぶち込めば、計算など幾らでも出来る。。。
危険といえば危険だが。

開発終了?

MTCalc0.1

  • Posted on
  • by

MTのタグ内で簡単な計算をするプラグインをつくろう。

ということで、取りあえず動き出した。
現状の仕様
・四則演算だけなら出来る。括弧は認識しない。
・左から順に計算する

既知の不具合
・右から計算してしまう

今日はこれまで。