¿Cómo obtengo la URL de una imagen dentro de un directorio de módulo?

En el directorio que contiene un módulo personalizado, tengo un directorio que contiene imágenes.

¿Cómo obtengo la URL de esas imágenes?

preguntado el 08 de enero de 11 a las 19:01

5 Respuestas

drupal_get_path('module', $module_name);

Respondido el 08 de enero de 11 a las 23:01

La forma más sencilla, como se mencionó anteriormente, es utilizar la ruta relativa a la raíz del sitio:

'/' . drupal_get_path('module', $module_name) . '/img1.jpg'

Usarlo sin la barra inclinada al principio lo rompería en alias de múltiples niveles, p. Ej. http://www.your_site.dev/category/2012/11/02/

Respondido el 25 de diciembre de 12 a las 17:12

¡Gracias! drupal_get_path() sin una barra anterior me estaba arruinando. - Mate

// path
drupal_get_path('module', $module_name) . '/images';

file_create_url (drupal_get_path ('módulo', $ nombre_módulo)). '/ imágenes';

respondido 13 mar '14, 00:03

Incorrecto. La file_create_url siempre funcionará en relación con predeterminado / archivos no el directorio del módulo, por lo que las URL terminarían como your_site.dev/sites/default/files/sites/all/modules/your_module/… lo cual es incorrecto. - Ain Tohvri

Sí correcto. file_code_url devolverá la URL en / sites / default / files. Gracias. - Marco Florian

Para obtener la URL correcta de su imagen, debe agregar base_path() al comienzo de la ruta de su imagen. La URL correcta sería:

$url = base_path() . drupal_get_path("module", "MY_MODULE") . "/image.png";

Respondido el 21 de junio de 17 a las 02:06

Un ejemplo más completo que funciona en Drupal 7 y 8. Todas las demás respuestas solo muestran cómo devolver la ruta al módulo, pero no cómo hacer una URL a partir de él.

<?php
$module_path = drupal_get_path('module', 'mymodule');
$image_path = "$module_path/images/img1.jpg";
$image_url = file_create_url($image_path);

Respondido 03 Feb 20, 22:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.