2011-03-04 19 views
28

¿Alguien puede decirme cómo conseguir que TinyMCE deje de convertir mis URL a enlaces relativos en Plone?Inhabilitar conversiones absolutas a relativas de TinyMCE URL

Por ejemplo, si entro en esto en el código HTML:

<img src="/images/dir/subdir/my_image.png" /> 

lo convertirá a:

<img src="../../../my_image.png" /> 

He editado tiny_mce.js (en portal_skins) para establecer:

convert_urls:false, 
relative_urls:false, 

pero a ningún efecto. He leído todas las publicaciones similares aquí, pero ninguna realmente responde esta pregunta.

Está bien si hace lo relativo cuando los usuarios seleccionan imágenes navegando por el sistema de archivos (es decir, el catálogo). Solo quiero que respete lo que escribo en el cuadro html ... para que tenga la opción de forzar una ruta absoluta si lo considero apropiado. Este es el comportamiento estándar en kupu.

¿Alguna idea?

+0

duplicado posible de [Obtener TinyMCE utilizar URL de la imagen completa en lugar de una relación] (https : //stackoverflow.com/questions/3796942/get-tinymce-to-use-full-image-url-instead-of-relative-one) –

Respuesta

39

Conjunto convert_urls: false en tiny_mce_init.js, no tiny_mce.js. Al principio de tiny_mce_init.js verá una llamada a window.tinyMCE.init pasando un montón de opciones de inicialización. En Products.TinyMCE que estoy viendo, la última opción es fix_list_elements: false. Agregue su opción allí.

Editar: tiny_mce_init.js ya no se utiliza en Products.TinyMCE 1.3.x (Plone 4.3). En su lugar, anular el tinymce-jsonconfiguration vista del navegador, por ejemplo:

Asumiendo que tiene un paquete con una capa navegador, añadir en browser/configure.zcml:

<browser:page 
    for="*" 
    name="tinymce-jsonconfiguration" 
    class=".tinymce.TinyMCEBrowserView" 
    permission="zope2.View" 
    attribute="jsonConfiguration" 
    layer="..interfaces.IMyBrowserLayer" 
    /> 

A continuación, agregue 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 respuesta correcta – Thariama

+2

Gracias, Dan. Eso lo hizo. Hay tres configuraciones que puede ajustar para controlar el manejo de URL. Son convert_urls, relative_urls y remove_script_host. Al ajustar esas configuraciones, probablemente pueda obtener el comportamiento que desea. Esas variables no están en tiny_mce_init.js entonces, como dijiste, tienes que agregarlas. – jdeluca

+4

No se olvide de "aceptar" las respuestas como correctas para garantizar que el que responde obtenga sus "puntos de karma" y que la pregunta esté cerrada. –

3

Otra solución es configurar TinyMCE con el panel de control para usar UID para cada enlace e imagen, en lugar de ruta, para que no modifique ninguno de los javascripts existentes y no se muestre ninguna url relativa.

20

Usted debe agregar estas configuraciones en tinymce.int:

relative_urls: false,

convert_urls: false,

remove_script_host : false,

Cuestiones relacionadas