2011-03-04 79 views
28

任何人都可以告訴我如何讓TinyMCE停止將我的URL轉換爲Plone中的相關鏈接?將TinyMCE絕對禁用到相對URL轉換

例如,如果我在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的標準行爲。

任何想法?

+0

的可能的複製[獲取TinyMCE的使用完整的圖像的URL,而不是相對的一個(HTTPS ://stackoverflow.com/questions/3796942/get-tinymce-to-use-full-image-url-instead-of-relative-one) – 2017-07-12 06:56:01

回答

39

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

+1正確答案 – Thariama 2011-03-07 09:00:10

+2

謝謝,丹。那樣做了。 有三種設置可以調整以控制URL處理。它們是convert_urls,relative_urls和remove_script_host。通過調整這些設置,你可能會得到你想要的行爲。這些變量不在tiny_mce_init.js中,所以 - 就像你說的 - 你必須添加它們。 – jdeluca 2011-03-07 13:17:26

+4

不要忘記「接受」答案是正確的,以確保回答者獲得他們的「業力點」,並且問題已關閉。 – 2011-09-21 04:16:09

3

的其它的解決方案是使用控制面板配置TinyMCE,以便爲每個鏈接和圖像使用UID,而不是路徑,因此您不需要修改任何現有的javascript,也不會顯示任何相關的url。

20

您應該添加這些CONFIGS到tinymce.int:

relative_urls: false,

convert_urls: false,

remove_script_host : false,