- Plone 4.2.1.1
- plone.tiles 1.2
- plone.app.tiles 1.0.1
- plone.app.blocks 1.0
- plone.app.drafts 1.0a2
- Products.TinyMCE 1.2.15
ページ上に2つのリッチテキストタイルがあるPloneサイトがあります。これは、タイルを使用してより柔軟なPloneレイアウトを提供するために次のように作成されています。
問題は、タイルを編集するときに、TinyMCEがロードされないことです。
[ネット]タブのFirebugに、次のような404が多数表示されます。
http://example.com/en/front-page/@@edit-tile//plugins/pagebreak/editor_plugin.js
比較すると、正しいURLは次のようになります。
http://example.com/portal_javascripts/MyTheme/plugins/xhtmlxtras/editor_plugin.js
portal_javascriptsを開発モードに設定すると機能しますが、開発モードをオフにすると、この問題が発生します。
どうやらそれはある種のjavascriptの競合が原因であるようですが、どこでそれを探すべきかわかりません。
私は本当にこの問題を解決する必要があるので、どんな助けでも大歓迎です!
追加情報:
portal_javascriptsで開発モードがオフになっている場合、次の行の条件が真になることはありません:https ://github.com/plone/Products.TinyMCE/blob/1.2.x/Products/TinyMCE/skins/tinymce/tiny_mce_src.js#L47
これは、tiny_mce.jsファイルが他のファイルとマージされ、名前がランダム化されているため、名前で検索すると常に失敗するためです。したがって、オブジェクトのbaseURL
プロパティはtinymce
に設定されませんinit
。代わりに、baseURL
ここで設定されることになります:
https ://github.com/plone/Products.TinyMCE/blob/1.2.x/Products/TinyMCE/skins/tinymce/tiny_mce_src.js#L8397
これは、URLhttp://example.com/my-page/@@edit-tile/
がに使用される場所ですbaseURL
。
portal_javascriptsのマージとキャッシュをオフにして、開発モードをオフのままにして、これを確認しました。tiny_mce.js
それは名前で見つけるので、それからそれは働きます。
また、失敗すると、TinyMCEのすべてのプラグインが<script>
iframeのヘッドに明示的な要素として追加されることがわかりました(@@edit-tile
URLはロードできません)。対照的に、動作する場合、すべてのプラグインはここにロードされます:
https ://github.com/plone/Products.TinyMCE/blob/1.2.x/Products/TinyMCE/skins/tinymce/tiny_mce_src.js#L8458
<script>
IOW、それらは要素としてiframeに明示的に追加されません。
(はっきりしない場合は、iframeについて言及するときは、TinyMCEではなくタイルの編集オーバーレイについて話します。iframe内にiframeがあります...)