1
  • 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-tileURLはロードできません)。対照的に、動作する場合、すべてのプラグインはここにロードされます: 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があります...)

4

0 に答える 0