本文を読み飛ばす

ExternalEditorが動かない(T-T)

ExternalEditorとPythonScriptの 組合せだけが動かない... 直してみました.

現象
  • バージョン: ExternalEditor 0.9.2
  • Zopeバージョン: 2.10.1, 2.8.6で確認

DTML methodやDTML Documentでは,
ExternalEditorが使えるのに,
Python Scriptでは使えない.

原因

ExternalEditorが,
Python Scriptの場合にだけ,
RESPONSEのContent-Typeに,
text/plainを設定してしまう.

ExternalEditorはオブジェクトのmanage_FTPgetを呼び出す.
ExternalEditorはmanage_FTPgetを呼び出す前に
Content-Typeを設定している.

しかし, PythonScriptではmanage_FTPget内で
Content-Typeを設定している.

ExternalEditorの設定を上書きしてしまう.

対策

ExternalEditor/ExternalEditor.pyの以下のコードを修正する.

187     try:
188         body = ob.manage_FTPget()
189     except TypeError: # some need the R/R pair!
190         body = ob.manage_FTPget(REQUEST, RESPONSE)

PythonScriptはtryの方を通るので,

manage_FTPgetの下にContent-Typeの設定を追加します.

187     try:
188         body = ob.manage_FTPget()
189         RESPONSE.setHeader('Content-Type', 'application/x-zope-edit'    )
190     except TypeError: # some need the R/R pair!
191         body = ob.manage_FTPget(REQUEST, RESPONSE)

この修正でとりあえずは動くようになります.

コメント

Comments powered by Disqus
宣伝: