カスタムフィールドに入力した値を自動計算する

昨日の続きです。

なんとか、壱さんのプラグインを使ってカスタムフィールドを追加するところまでやってきました。

config.yamlを書くのは一見難しそうですが、サンプルを頼りに書いて行ったら、思ったより簡単に追加できました。しかも、複数フィールドを一気に追加できるので、ある意味商用MTよりラクかもしれません。

さて、フィールドを追加するときに、実は面積のフィールドが必要なのですが、以前だったら平米表示と坪表示で、それぞれに数字フィールドを設定していました。

でも、考えてみたらMTだってDBを使ったシステムな訳で、だったら自動計算できるんじゃないの?、と思い立ち、いろいろ調べてみたところ。

MT3.xまでは、これまた壱さんの作られたプラグインが活躍していたようなのですが、どうやら4.x以降はMTVar(MTSetVar)タグにopモディファイアを付けることで簡単な自動計算が可能になっていたのですね。

だったら入力項目は少ない方がいいし、平米表示の数字を入れたら、そこに自動で坪数表示もできるようにしよう、ということで。

出力用テンプレートを書いていく時に、以下のようにタグを挿入しました。
ちなみに「EntryRoomWidth」はカスタムフィールドです。

<mt:SetVarBlock name=”r-width”><$mt:EntryRoomWidth$></mt:SetVarBlock>
<$mt:GetVar name=”r-width”$>m<sup>2</sup>(<$mt:GetVar name=”r-width” value=”0.3025″ op=”*” regex_replace=”/(\d*)\.(\d*)/”,”$1″$>坪)

これで無事に、40平米のものなら、「40m2(12坪)」と表示されました。

まだまだCSSや項目の目次まで届きませんが、今日はここまで。

カメの歩みではありますが、少しずつ、進んでます。