禁用TinyMCE绝对到相对URL转换

jde*_*uca 33 tinymce plone

任何人都可以告诉我如何让TinyMCE停止将我的URL转换为Plone中的相关链接?

例如,如果我在HTML源代码中输入:

<img src="/images/dir/subdir/my_image.png" />
Run Code Online (Sandbox Code Playgroud)

它会将其转换为:

<img src="../../../my_image.png" />
Run Code Online (Sandbox Code Playgroud)

我编辑了tiny_mce.js(在portal_skins中)来设置:

convert_urls:false,
relative_urls:false,
Run Code Online (Sandbox Code Playgroud)

但没有效果.我在这里阅读了所有类似的帖子,但没有人真正回答这个问题.

如果用户通过浏览文件系统(即目录)来选择图像,那么它就可以了.我只是想让它尊重我在html框中键入的内容...这样我就可以选择强制一个绝对路径,如果我认为合适的话.这是kupu的标准行为.

有任何想法吗?

Dan*_*cka 42

设置convert_urls: false在tiny_mce_init.js中,而不是tiny_mce.js.在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"
    />
Run Code Online (Sandbox Code Playgroud)

然后添加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)
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记"接受"答案是正确的,以确保回答者获得他们的"业力点"并且问题已经结束. (4认同)
  • 谢谢,丹.这样做了.您可以调整三个设置来控制URL处理.它们是convert_urls,relative_urls和remove_script_host.通过调整这些设置,您可以获得所需的行为.那些变量不在tiny_mce_init.js中,所以 - 就像你说的那样 - 你必须添加它们. (3认同)

cod*_*uss 24

你应该将这些配置添加到tinymce.int中:

relative_urls: false,

convert_urls: false,

remove_script_host : false,