Отключить TinyMCE для преобразования абсолютных URL в относительные - PullRequest
32 голосов
/ 04 марта 2011

Может кто-нибудь сказать мне, как заставить 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 ... так что у меня есть возможность принудительного ввода абсолютного пути, если я считаю это уместным. Это стандартное поведение в купу.

Есть идеи?

Ответы [ 4 ]

42 голосов
/ 05 марта 2011

Установите 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, например ::10000

Если у вас есть пакет со слоем браузера, добавьте 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)
24 голосов
/ 07 ноября 2013

Вы должны добавить эти конфиги в tinymce.int:

relative_urls: false,

convert_urls: false,

remove_script_host : false,

3 голосов
/ 21 сентября 2011

Другое решение состоит в том, чтобы настроить TinyMCE с панелью управления для использования UID для всех ссылок и изображений вместо пути, чтобы вы не изменяли никакие существующие сценарии javascript и не отображали относительные URL.

1 голос
/ 20 сентября 2018

В Plone 5 возможно отключение TinyMCE от абсолютного к относительному URL, добавление переменных во вкладке «Дополнительно» в TinyMCE Settings

Настройка сайта> TinyMCE> Advaced

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

Далеепеременные доступны в продуктах / CMFPlone / статические / компоненты / сборки на основе tinymce / 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,
...
...