web-dev-qa-db-ja.com

TinyMCEの絶対URLから相対URLへの変換を無効にする

TinyMCEに私のURLをPloneの相対リンクへの変換を停止させる方法を誰かに教えてもらえますか?

たとえば、これをHTMLソースに入力すると、次のようになります。

<img src="/images/dir/subdir/my_image.png" />

次のように変換されます。

<img src="../../../my_image.png" />

Tiny_mce.js(portal_skins内)を編集して次のように設定しました。

convert_urls:false,
relative_urls:false,

しかし、効果はありません。私はここですべての同様の投稿を読みましたが、実際にこの質問に答えるものはありません。

ユーザーがファイルシステム(カタログなど)を参照して画像を選択するときに、相対的な処理を実行するのであれば問題ありません。 HTMLボックスに入力した内容を尊重したいので、適切と思われる場合は絶対パスを強制するオプションがあります。これはkupuの標準的な動作です。

何か案は?

33
jdeluca

Tiny_mce.jsではなくtiny_mce_init.jsにconvert_urls: falseを設定します。 tiny_mce_init.jsの早い段階で、window.tinyMCE.initへの呼び出しが一連の初期化オプションを渡すのがわかります。私が見ているProducts.TinyMCEでは、最後のオプションはfix_list_elements: falseです。そこにオプションを追加します。

編集:tiny_mce_init.jsはProducts.TinyMCE 1.3.x(Plone 4.3)では使用されなくなりました。代わりに、tinymce-jsonconfigurationブラウザビューを上書きします。例:

ブラウザレイヤーを備えたパッケージがあると仮定して、browser/configure.zcmlを追加します。

<browser:page
    for="*"
    name="tinymce-jsonconfiguration"
    class=".tinymce.TinyMCEBrowserView"
    permission="zope2.View"
    attribute="jsonConfiguration"
    layer="..interfaces.IMyBrowserLayer"
    />

次に、browser/tinymce.pyを追加します。

try:
    import simplejson as json
except ImportError:
    import json

from Acquisition import aq_inner
from Products.CMFCore.utils import getToolByName
from Products.TinyMCE.browser.browser import TinyMCEBrowserView as View
from Products.TinyMCE.browser.interfaces.browser import ITinyMCEBrowserView
from zope.interface import implements


class TinyMCEBrowserView(View):
    implements(ITinyMCEBrowserView)

    def jsonConfiguration(self, field):
        """Return the configuration in JSON"""

        utility = getToolByName(aq_inner(self.context), 'portal_tinymce')
        config = utility.getConfiguration(context=self.context,
                                          field=field,
                                          request=self.request)
        config['convert_urls'] = False
        return json.dumps(config)
42
Dan Jacka

これらの設定をtinymce.intに追加する必要があります。

relative_urls: false,

convert_urls: false,

remove_script_Host : false,

24
codingpuss

もう1つの解決策は、パスではなくすべてのリンクと画像にUIDを使用するようにコントロールパネルでTinyMCEを構成することです。これにより、既存のJavaScriptを変更したり、相対URLを表示したりする必要がなくなります。

3
toutpt

Plone 5では、TinyMCE設定の[詳細設定]タブで変数を追加する相対URLに対して絶対的なTinyMCEを無効にすることができます

サイト設定> TinyMCE> Advaced

{"relative_urls": false, "convert_urls": false, "remove_script_Host": false}

その他の変数は、Products/CMFPlone/static/components/tinymce-builded/js/tinymce /tinymce.jsで入手できます。

...
popup_css: '',
plugins: '',
document_base_url: documentBaseUrl,
add_form_submit_trigger: true,
submit_patch: true,
add_unload_trigger: true,
convert_urls: true,
relative_urls: true,
remove_script_Host: true,
object_resizing: true,
...
1
Robbo