はじめに
MovableType5,6時の自作プラグインをMovableType7でテストしたときの話です。
MovableType7に過去の自作プラグインをいれてみた
。。。うごかない。。よ。不正な要求です。って
どうも、MovableType7ではセキュリティ回りが強化されたみたい。
print & exitでデバックして、 MT::Commonのsaveでとまるのがわかった。
ぐぐってみると、config.yamlで設定を追加すればいいみたい。
データソース名はプログラムでつかっているものを設定します。
cms:
enable_object_methods:
データソース名:
delete: 1
save: 1
動作確認してみた。
不正な要求ですはでなくなった。。おわり・・・・・?!
自作で追加した管理画面をみると。。
ん??
デザインが・・・・MovableType6
ん??
POPUP設定画面・・・・POPUPしない
汗
管理画面周りのテンプレートを確認
まず、古いデザインの原因をさぐる
MovableType6とかは、こんな感じでいけてた。
<mt:setvarblock name="page_title">ページの名称</mt:setvarblock>
<mt:include name="include/header.tmpl">
ここにメインの設定画面をつくる。
<mt:include name="include/footer.tmpl">
MovableType7では、こんな感じになってた。
layout/default.tmplの中身をみるとlayout/common/header.tmplが別で呼ばれてる・・
なるほど。。include/header.tmplも存在しているから見えることは見えるみたい。
<mt:include name="layout/default.tmpl">
<mt:var name="layout">
でも、新しい管理画面に緑が浮いてる・・・それにMTのロゴがでかくてレイアウトくずれてるし・・
なおすの・・・か・・・
POPUPも調査してみた。bootstrapのおまじないのclassに必要みたい。
時間かかりそう。
対策方法をメモしておこう
時間かかりそうなので、すぐできない感じなので今回は、対策方法をさぐって終わろう・・・かな。。
まず、テンプレート切り替えは古いのとMT7も同居させたいので
テンプレートをバージョンで分ける。きっとこんな感じ
MTVersionは小数点とかあるから わかりずらいけどlt ge=つかうこと
<MTVersion setvar="mtversion">
<mt:if name="mtversion" lt="7">
<mt:var name="page_content">
</mt:if>
<mt:if name="mtversion" lt="7">
<mt:include name="include/footer.tmpl">
</mt:if>
<mt:if name="mtversion" ge="7">
<mt:include name="layout/default.tmpl">
<mt:var name="layout">
</mt:if>
プログラム側は、これかな
if(MT->version_number >= 7 ) {
}
if(MT->version_number < 7 ) {
}
bootstrap追加クラス
POPUPの呼び出しはbuttonタグに追加
winmageで差分で判断してみた。全部ではないです。
<mt:if name="mtversion" ge="7">
data-mt-modal-close=""
data-dismiss="modal"
</mt:if>
textarea
<mt:if name="mtversion" ge="7"> form-control</mt:if>
button
<mt:if name="mtversion" ge="7"> btn btn-primary</mt:if>
POPUPのクローズ
<mt:if name="mtversion" ge="7">
jQuery.fn.mtModal.close();
<mt:else>
parent.jQuery.fn.mtDialog.close();
</mt:else>
</mt:if>
さいごに
MovableType6からバージョンする場合は、標準のプラグイン以外を入れている場合、注意が必要です。
ちなみに筆者は、過去の自作プラグインは、まだ修正していません。
今回はメモ書きです。実際には、試していません。