ID-Blogger

Movable Type 4 でテンプレート編集画面がグレーで編集できない場合の対処法

「Movable Type 4 でテンプレート編集画面がグレーで編集できない場合の対処法:結論編」をアップしてあります。正式にはそちらを参考にしてください。

Movable Type 4 テンプレート編集画面

CMSとして開眼したのか、便利な機能満載で新世代のMovable Typeとしては手放せない高機能っぷりを発揮してくれる「Movable Type 4」なんですが、このMT4になってAjaxによる高機能化の弊害か、スバラシイんだけどもなんというかバグが酷い...
Movable Typeの公式サイトのドキュメントやらタグリファレンスにも一部ミスがあったりと散々な結果なんだがどうしてくれよう!!


お仕事でクライアントへの納品用にテンプレートを独自に編集する必要があるのですが、編集画面がグレー(灰色)のままでアクティブにならず、編集できなくなるバグが度々発生。
できたりできなかったりとなんだか不安定なんですが、結局まる一日使い物にならないなんて事がありましたもので、こりゃイカン!という事で原因究明に奔走しました。


JavaScriptのバグが原因か?


メインで使用しているブラウザはFirefoxなんですが、この不具合が発生している状態のときに「ツール>エラーコンソール」でページのエラーを確認すると、
エラー: this.editor has no properties
ソースファイル: http://www.○○○○.○○/○○○/mt-static/mt.js?v=4.01
行: 2242
というエラーメッセージが確認できました。

どうやらMT4に付随しているJavaScriptに問題があるようです。ちなみに下記のソース箇所です。

this.editor.body = this.iframe.contentWindow.document.getElementsByTagName( 'body' )[0];
こんなのいちいち修正してたら日が暮れちゃうよ...orz

対処法を探してググりまくったのですが、同じ不具合に悩むパターンはそこそこあるようですw
しかしながら抜本的な解決には至らず...という事で、最終手段として荒っぽい対処法をあみ出しました!!


ブラウザのJavaScript機能を切る!

もうブラウザ側でJavaScript機能を切る!これに尽きる!
事前にテンプレートの編集画面は出しておいた方がいいかもしれません。

Firefoxの場合

「ツール>オプション>コンテンツ」から"JavaScriptを有効にする"のチェックを外す。

Internet Explorerの場合

「ツール>インターネットオプション>セキュリティ 」で、[レベルのカスタマイズ] をクリック。「スクリプト>アクティブスクリプトを有効にする」で[無効にする]を選択。


以上で設定完了です。
そのままリロードすると、編集画面がアクティブになって編集できるようになります。
Ajax関係のメニューも同時に使えなくなるので、再構築ボタンが利かなくなったりといろいろ残念なコトになりますが、「ショートカット」とか「クイックフィルタ」のメニューからも切り替え可能なので、テンプレートの編集に限っては一通り問題なく作業できるかと思います。


編集作業が終わったら、JavaScript機能を復帰させるのを忘れないようにしましょう♪


2007年12月8日 追加補足

Six Apart社のサポートページに「エントリーの編集画面で、本文を編集出来ません」という記事があります。
「mt-config.cgi」の中の「CGIPath」とか「StaticWebPath」で設定されたURLとアクセスするURLが違う場合に似たような症状が出るようです。
Six Apart - Movable Type 4 サポート: エントリーの編集画面で、本文を編集出来ません
Q. 新規ブログ記事の作成画面や、既存のブログ記事の編集画面で、本文の編集フィールドをクリックしてもカーソルが移動せず編集出来ません。

A. 環境変数 StaticWebPath に指定した URL のホスト名が、現在管理画面にアクセスしているホスト名と異なっている場合に同様の現象が発生することがあります。

たとえば、StaticWebPath の値が「http://www.example.com/cgi-bin/mt/mt-static」となっている場合に、管理画面に対して「http: //192.168.1.2/cgi-bin/mt/mt.cgi」のようなアドレスでアクセスすると、(どちらのURLも正しい場合にも) Movable Type のエディタは動作しません。
同様に環境変数 CGIPath も同じホスト名を指定する必要があります。

構成ファイル「mt-config.cgi」の記述内容を確認し、「CGIPath」「StaticWebPath」が同じホスト名で始まる URL が指定されているか確認してください。
併せて、管理画面にアクセスする際にブラウザのURL欄に表示されているURLのホスト名も、「CGIPath」「StaticWebPath」の設定と同じになっているか確認してください。

この件については事前に確認してましたが、前述のテンプレート編集画面で編集できなくなる事例ではURLのホスト名は同一に設定していたので該当しないと判断していました。

たまたま別サーバで作業しているMT4でこの症状が出たので確認しましたが、やはりURLのホスト名が異なる場合は、ブログ記事の編集画面やテンプレート編集画面で編集できなくなるようです。
でもこの件で修正を加えたところ全て無事に稼動するようになり、逆にテンプレート編集画面で編集できなくなる事例は発生せず...なぜ?。

ひょっとするとMT4の問題なんじゃなくて、DNSの絡みがサーバよってうまく行ってないのかもしれません。
まだ根本的な原因は分かってないので、引き続き調査して原因究明してみたいと思います。

コメント(2)

はじめまして。
私もまったく同じ現象に悩まされました。
サポートページの「エントリーの編集画面で、本文を編集出来ません」の項目も確認したけれど、設定は同じはず・・・
と思っていたら、
CGIには http://www.example.com/xxxxx と記述し
ブラウザからは www なしの http://example.com/
とアクセスしていました。
wwwありなしもMTは別物と認識するので要確認ですね。

>yokoさん
どうもはじめまして。
「www.」のアリナシでも該当してしまうんですね…
サーバ的にも「www.」を付けるかどうかの処理は別設定なので、IP直アドの場合と同様んぼパターンにはまっちゃうんだと思われます。
MT4の内部処理はかなり厳密に絶対パスで参照しながら処理しているんですねぇw