禁用TinyMCE绝对到相对URL转换

时间:2011-03-04 16:02:23

标签: tinymce plone

有谁能告诉我如何让TinyMCE停止将我的网址转换为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中的标准行为。

有什么想法吗?

4 个答案:

答案 0 :(得分:42)

在tiny_mce_init.js中设置convert_urls: false,而不是tiny_mce.js。在tiny_mce_init.js的早期,你会看到对window.tinyMCE.init的调用传递了一堆初始化选项。在我看到的Products.TinyMCE中,最后一个选项是fix_list_elements: false。在那里添加您的选项。

编辑:在Products.TinyMCE 1.3.x(Plone 4.3)中不再使用tiny_mce_init.js。相反,覆盖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)

答案 1 :(得分:24)

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

relative_urls: false,

convert_urls: false,

remove_script_host : false,

答案 2 :(得分:3)

另一个解决方案是使用控制面板配置TinyMCE,以便为每个链接和图像使用UID,而不是路径,因此您不会修改任何现有的javascripts,也不会显示任何相对URL。

答案 3 :(得分:1)

在Plone 5中,可以在TinyMCE设置的“高级”选项卡中禁用TinyMCE绝对相对于相对URL添加变量

站点设置> TinyMCE>已撤消

{"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,
...
相关问题