Consulta acerca de paths relativos

Events happening in the community are now at Drupal community events on www.drupal.org.
scarvajal's picture

Antes que nada soy novato en Drupal y este es mi primer contacto.
Estoy desarrollando un sitio nuevo con Drupal en mi PC para despues moverlo a un hosting como supongo que deben laburar muchos en este grupo.

en mi PC drupal esta instalado en http://localhost/mysite.com.ar/
y finalmente va a residir en http://mysite.com.ar/

Hace unas 4 horas estoy leyendo info sobre el tema de path relativos y absolutos en Drupal y no llego a una opinion que tenga consenso.

El módulo Path filter: obliga a poner inline: antes de cada imagen.

El módulo Pathology: vi que tiene problemas si el sitio usa en parte https.

La pregunta es cual es el consenso en el manejo de los paths relativos y absolutos. Cual es la forma en que Uds trabajan?

Muchisimas gracias!!

Comments

Path relativos

morrillo's picture

Uso paths relativos todo el tiempo, simplifica el mantenimiento
My two cents,

Gustavo Orrillo
Moldeo Interactive

victorkane's picture

En general, y en primero término, hay que distinguir entre los senderos que uno utiliza que son internos a Drupal (en la especificación de un menu, en la especificación de visibilidad de un bloque, etc.). Esos suelen ingresarse en forma relativa, y sin una barra inicial.

En cuanto las URL que forman parte de un nodo de contenido, que aparece, por ejemplo, en un texto, estos deben ser relativos siempre, por ej.:

<img src="/sites/default/files/midir/miarch.jpg" />

Así cuando se despliegue el sitio a otro URL, todo sigue funcionando.

Gracias por las

scarvajal's picture

Gracias por las respuestas.

(Agrego, la pregunta es sobre el contenido de los nodos)
Victor eso funciona bien si tu sitio de desarrollo está ubicado en la raiz.
Como en mi Apache local tengo varios sitios cada uno de ellos está bajo un subdirectorio
ej:

http://localhost/newdrupalsite/

y al publicar el sitio cuando esté listo va a estar en:

http://www.minuevositio.com

El directorio newdrupalsite desaparece y hace que todos los links relativos dejen de funcionar.

Gustavo y Victor como lidian con esta situación?

Sebastián Carvajal

No trabajes con subdirectorios

victorkane's picture

Trabajá siempre con subdominios. NO TRABAJES NUNCA con subdirectorios.

El muchos hosting compartidos, te dejan crear subdominios:

http://prueba1.example.com

http://prueba2.example.com

Estos están asociados con subdirectorios:

/home/misitio/public_html/prueba1/index.php
/home/misitio/public_html/prueba2/index.php

PERO desde el punto de vista de Drupal, y de la URL, files es /files (Drupal está siempre en document root / raíz de url).

Otra opción es una instalación multi-site.

Multisites

morrillo's picture

Para mi la solución ideal es multisites, por sobre todo por como reduce los costos de mantenimiento de los diferentes sitios. Pensa en lo que lleva la actualización de los distintos módulos, lo mismo con los themes

Gustavo Orrillo
Moldeo Interactive

Estimados, IMO, Debo confesar

mariano.barcia's picture

Estimados,

IMO, Debo confesar que Drupal no brilla en este area.

Hay algunas discusiones acerca de si un WYSIWYG es algo adecuado para un cliente, o en cambio, se le deberían proveer varios campos de solo-texto y después armar el markup a través de templates.

En mi experiencia, casi siempre el cliente quiere para sus editores una herramienta WYSIWYG, y para mi lo mejor es documentar su uso (los estilos disponibles, y el uso de cada botón por ej. el teaser break) y capacitar al usuario en cuestiones como copiar & pegar desde MS Word.

En el caso de sitios web2.0, toda la gente (y no solo editores especializados) edita contenidos, y en este caso es más discutible si utilizar o no un editor de texto enriquecido, o cuántas posibilidades se le dan al usuario. Para mi, un buen ejemplo de esta funcionalidad es Blogger (un editor WYSIWYG con funcionalidad limitada, y que no permite enlazar a contenidos dentro del mismo blog, lo cual debería).

Dicho esto, lo que en general es necesario, es una manera de poder enlazar a otras páginas (nodos, terms) desde una ventana de texto enriquecido. Esto es una funcionalidad de alto nivel, que también desacopla el contenido de donde está alojado (=independecia de los paths) que es muy necesaria también.

Hay dos proyectos que tratan de proveer esta funcionalidad:
- TinyMCE Node Picker
- Link to Content

Link to Content
http://drupal.org/project/linktocontent
No tiene una versión estable para D6 aun. Lo probé hace un tiempo, lo encontramos dificil de configurar, sufre de versionitis y además no anduvo bien. No probé la versión que existe actualmente en http://drupal.org/node/252938#comment-1976238 (de todos modos, parece funcionar solo con TinyMCE y es bastante incompatible con i18n).

TinyMCE Node Picker
http://drupal.org/project/tinymce_node_picker
Parece mas usable, solo acepta TinyMCE. No lo hemos probado aun, pero al menos declara tener una versión estable y no le hemos visto protestas.

Si lo que se quiere es trabajar con texto plano, entonces pathologic es suficiente (y el más completo). El problema con https no lo encuentro crítico como para no utilizarlo, para mi es seguro que hay workarounds a eso. El usuario de esto es generalmente el admin del sitio.

Cuando es necesario trabajar con código PHP (en bloques custom por ej.), entonces es necesario utilizar la funcion l() que recibe como parametro el nid.

Nosotros preferimos FCKEditor a TinyMCE pero parece que no queda otra alternativa que utilizar TinyMCE por ahora, si queremos enlazar a contenido dentro del CMS.

HTH, salud

PS:
@morrilo
el multisites del core es una alternativa un poco limitada. Hay muchas desventajas y limitaciones que hacen que nunca lo utilizasemos, ni para desarrollo ni para hostear.
@victor y todos:
en nuestra experiencia, no es obligatorio trabajar con subdominios, con subcarpetas está bien, siempre y cuando se configure el base_url correctamente en el settings.php

@victor y Gustavo Victor, en

scarvajal's picture

@victor y Gustavo

Victor, en el hosting compartido que voy a usar no necesito usar subdominio porque el sitio va a estar en la raiz y la idea es disponer del host www.

El problema es entonces solo en mi laptop mientras desarrollo.

La opcion de multisitios no me resuelve el problema porque no solo desarrollo sitios en Drupal. En localhost conviven sitios de diferentes CMS y sitios en html puro también.

Podría tratar de crear subdominios en mi localhost, no se como se hace pero a priori pareciera sumar trabajo de configuración por cada nuevo sitio que instale.

@Mariano la variable base_url pordria ser la solución? ahora lo pruebo.
Probé pathologic y resuelve el problema aunque me gustaria no tener que instalar un módulo para esta cuestión tan sencilla.
Mariano es lo que vos haces? usar pathologic? o como es tu forma de trabajo.

Sebastián Carvajal

El seteo de la variable

scarvajal's picture

El seteo de la variable base_url no ayuda en este caso.

Sebastián Carvajal

el base_url permite trabajar

mariano.barcia's picture

el base_url permite trabajar con una subcarpeta de la carpeta raíz del webserver porque hay ocasiones en que Drupal necesita escribir links (en el output de una página), y no puede determinar dicho URL-base a partir de la solicitud HTTP.

Por ej. si tenes el drupal instalado en una subcarpeta de htdocs por ej. "miaplicacion", y no seteas el $base_url, un link al nodo con nid 1 saldría escrito href="http://example.com/node/1" en vez de href="http://example.com/miaplicacion/node/1" y al hacer click te encontras con un error 404.

Podés ver este blogpost con algunos detalles adicionales (en ingles)
http://www.drupalcoder.com/story/18-portable-sites-with-base-href-baseur...

HTH,
salud

Cuando es un texto de

mariano.barcia's picture

Cuando es un texto de usuario, plano, hemos usado pathfilter (ahora Pathologic parece ser más robusto). Es el mismo método: un input filter.

Cuando se trata de subir imagenes de usuario, en general lo hacemos a traves de imagefield, pero siempre permitimos al usuario subir imagenes dentro del "cuerpo" y lo solucionamos con un WYWIWYG (FCKEditor la mayoría de los casos).
http://drupal.org/project/fckeditor

Cuando se trata de código PHP, utilizamos l().
http://api.drupal.org/api/function/l/6

En los themes, utilizamos path_to_theme() o path_to_subtheme()
http://drupaleasy.com/blogs/ryanprice/2008/08/drupal-theming-path-vs-bas...

HTH, salud
--m

Mariano, Gracias!! Excelente

scarvajal's picture

Mariano, Gracias!!

Excelente información, mucho mas de lo que estabva esperando.

Muy agradecido.

Sebastián Carvajal

Actualización: LinkIt es un

mariano.barcia's picture

Actualización: LinkIt es un nuevo módulo que da una solución a esta necesidad.

http://drupal.org/project/linkit

Habrá que probarlo un poco ;-)

Argentina

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: