MTAppjQueryで$.MTAppCustomizeのmoreがshowできない場合は?

結構検索の候補に挙がっているようなので、解決方法を書いておきたいと思います。

問題のほうですが、MovableTypeの管理画面を便利にカスタマイズできる「MTAppJQuery」プラグインの「$.MTAppCustomize」で「user.js」ファイル内で一度「more(続き)」をhideで隠してしまうと、次に show を設定しても表示出来なくなってしまいます。

※バージョンは0.2x を参考にしています。

// hideをやってしまうと、隠されたまま...
$.MTAppCustomize({
basename: 'more',
show_field: 'hide'
});
// show しても表示されない...
$.MTAppCustomize({
basename: 'more',
show_field: 'show'
});

で、これを解決するには、MTAppJQuery.js ファイルの890行目あたりの記述に以下の強調文の処理を追加してください。

// フィールドの表示・非表示
if (opS == 'show') {
$field.removeClass('hidden');
if (opB == 'body' || opB == 'more') {
$label.closest('div.tab').removeClass('hidden');
}
} else if (opS == 'hide' && opB != 'body' && opB != 'more') {
$field.addClass('hidden');
} else if (opS == 'hide' && (opB == 'body' || opB == 'more')) {
$label.closest('div.tab').addClass('hidden');
}

解説すると「text(本文)」や「more(続き)」が「hide」の場合は $labelに近い div.tab に「hidden」クラスを付加しているのですが、「show」の場合は「hidden」クラスを除去する処理が抜けているようです。

次のバージョンでももしかしたら抜けている可能性があるので、ここの処理を追加するということを覚えておきましょう。

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2012-05-28