【问题标题】:Disable TinyMCE absolute to relative URL Conversions禁用 TinyMCE 绝对到相对 URL 转换
【发布时间】:2011-07-08 22:44:13
【问题描述】:

谁能告诉我如何让 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 中的标准行为。

有什么想法吗?

【问题讨论】:

标签: tinymce plone


【解决方案1】:

在 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)

【讨论】:

  • 谢谢,丹。做到了。您可以调整三个设置来控制 URL 处理。它们是 convert_urls、relative_urls 和 remove_script_host。通过调整这些设置,您可能可以获得您想要的行为。这些变量不在 tiny_mce_init.js 中,所以——就像你说的——你必须添加它们。
  • 不要忘记“接受”正确答案,以确保回答者得到他们的“业力点”并且问题已结束。
【解决方案2】:

您应该将这些配置添加到 tinymce.init 中:

  • relative_urls: false,

  • convert_urls: false,

  • remove_script_host : false,

参考:https://www.tiny.cloud/docs/configure/url-handling/

【讨论】:

    【解决方案3】:

    另一种解决方案是使用控制面板配置 TinyMCE,以对每个链接和图像使用 UID,而不是路径,这样您就不会修改任何现有的 javascript,也不会显示任何相对 url。

    【讨论】:

      【解决方案4】:

      在 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,
      ...
      

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 2014-12-12
        • 2021-07-28
        • 2011-10-24
        • 1970-01-01
        • 2019-05-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多