Uno de los problemas con los que me he encontrado para separar
componentes como FCKEditor o TinyMCE en el directorio vendors, y
tenerlos disponibles como helpers para todas las aplicaciones, es que
Cake asigna el tipo mime del fichero a cargar en función de la carpeta
en la que se encuentre. Es decir, todo lo que esté contenido en
vendors/js se envía al navegador como javascript, y todo lo que esté
contenido en vendors/css se envía como css.

En principio esto parece bastante razonable, pero hay algunas
situaciones en las que no es deseable. Un javascript que utilize un
archivo XML como fuente de datos (como hace FCKEditor) recibe este XML
con el tipo mime correspondiente a un archivo javascript. Un CSS que
utilize imágenes no puede almacenarlas en vendors/css/images, por
ejemplo, por que se le asignará el tipo mime correspondiente a un CSS.

Por poner un ejemplo más claro, si colocamos FCKEditor en vendors/js
funciona bien hasta que se hace una petición directa a ese directorio
desde FCKEditor (como abrir la ventana de diálogo para poner un enlace
en el texto), momento en el que fallará.

La solución que he econtrado es modificar el siguiente bloque en
"bootstrap.php", línea 117 (CakePHP 1.2):

        if (in_array($requestPath[0], array_keys($folders))) {
                if (file_exists(VENDORS . join(DS, $requestPath))) {
                        $mime = 
mime_content_type(VENDORS.join(DS,$requestPath));
                        header('Content-type: ' . $mime);
                        include (VENDORS . join(DS, $requestPath));
                        exit();
                }
        }

¿A alguien se le ocurre algún motivo por el que esto no sea buena idea
o una forma mejor de solucionar el problema?


--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a