MovableTypeの管理画面カスタマイズ方法 for Safari part1。
タイトル通り、管理画面のカスタマイズ方法を紹介。
まず、Safari等でボタンすら表示されないのは、どういうことかと言うと、
ボタンの部分はjavascriptによって、ブラウザを判別し、表示・非表示を決めています。
以下がその部分を制御しているソース
■MTインストールディレクトリ/mt-static/mt_ja.js 197行目あたり
var canFormat = 0;if (document.selection) canFormat = 1; var ua = navigator.userAgent; if (ua.indexOf('Gecko') >= 0 && ua.indexOf('Safari') < 0) canFormat = 1;
canFormatという変数(フラグ)を作り、初期値を0(false)にしています。
次にdocument.selectionが使えるブラウザには1(true)、
userAgentを判定し、GeckoでかつSafariでない場合も1(true)を代入。
この時点で、ボタンの表示・非表示が決まります。
■MTインストールディレクトリ/tmpl/cms/edit_entry.tmpl 346,370行目あたり
if (canFormat) { with (document) { 〜省略(ボタン部分のソース)〜 } }
そして、テンプレートファイル部分にcanFormatが1(true)であれば、
ボタン部分のソースを書くという命令を実行させています。
今回は最新版のSafariに対応させてみます。
まずは、ボタン自体を表示させる為に、SafariでもcanFormが1(true)になるように、下記のソースを追加。場所は上記の該当部分の直後に。
if (ua.indexOf('Safari') > -1 && ua.indexOf('417') > -1) canFormat = 1;
たったこれだけでボタンが表示されるようになります。
しかし、ボタンが表示されるだけで、肝心のボタン機能はまだ使えません。
続きはまた来週に。