MovableTypeのグローバル・モディファイアでいろいろ解決する時のやつ


すぐ忘れるからまとめる

出力内容を変数にするやつ

  • 値を出力せずに変数に入れる
  • 使いすぎたりちりばめたりすると、パッと見で「出力」なのか「変数化」なのか判断ミスって事故る
modifiers
setvar="_hoge"

例:

template
<mt:BlogName setvar="_thisBlogName">
<mt:Var name="_thisBlogName">
output
Blog Name

出力内容をルート相対にするやつ

  • ドメイン部を/に置換する
  • テスト環境とか、本番サーバとCMSサーバでドメインが違う時とかに使う
modifiers
regex_replace="/^https?:\/\/[^\/]+\//","/"

例:

template
<a href="<mt:EntryLink regex_replace="/^https?:\/\/[^\/]+\//","/">"><mt:EntryTitle></a>
output
<a href="/hoge/basename.html">Entry Eitle</a>

応用

  • ドメイン部を置換する
  • テスト環境とか、本番サーバとCMSサーバでドメインが違う時とか、どこかのフォルダ下で展開されるコンテンツとかに使う
modifiers
regex_replace="/^https?:\/\/[^\/]+\//","$_OpenPath"

例:

template
<mt:SetVar name="_OpenPath" value="http://www.hoge.jp/">
<a href="<mt:EntryLink regex_replace="/^https?:\/\/[^\/]+\//","$_OpenPath">"><mt:EntryTitle></a>
output
<a href="http://www.hoge.jp/hoge/basename.html">Entry Eitle</a>

出力時に空白改行を出力しないようにするやつ

  • 出力内容から空白改行を置換して消す
  • 出力する前にいろいろ変数設定とかで行数使っている場合にソースがスッカスカになってって気分になるから使う
  • この正規表現は調べてるといろんなパターンがある
  • Forで囲わないで出力のVarに書いても良い
template
<mt:For regex_replace="/^[\ \t\r\n]+/mg","">
    <mt:Ignore>
        ここに処理を書く
    </mt:Ignore>
</mt:For>

0埋めするやつ

  • 0埋めしてケタ数を揃える
  • 書くほどの内容じゃないんだけど「あ、アレ!あれだよ!桁揃えるやつ!」となるからメモ
modifiers
zero_pad="4"

例:

template
<mt:EntryID zero_pad="10">
output
0000000142

X文字で省略するやつ

  • X文字超えたら...に切る
  • これを求める場合はほぼデザイン上の都合なので、CSSでやって、どうぞ
template
<mt:EntryTitle count_characters="1" setvar="_titleCount">
<mt:If name="_titleCount" gt="30">
    <mt:EntryTitle trim_to="30">...
<mt:Else>
    <mt:EntryTitle>
</mt:If>