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
Uso paths relativos todo el tiempo, simplifica el mantenimiento
My two cents,
Gustavo Orrillo
Moldeo Interactive
Distinguir entre paths en HTML y paths internos de Drupal
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.
Victor Kane
http://awebfactory.com
Gracias por las
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
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.
Victor Kane
http://awebfactory.com
Multisites
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
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
@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
El seteo de la variable base_url no ayuda en este caso.
Sebastián Carvajal
el base_url permite trabajar
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 dehref="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
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
Mariano, Gracias!!
Excelente información, mucho mas de lo que estabva esperando.
Muy agradecido.
Sebastián Carvajal
Actualización: LinkIt es un
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 ;-)