¿Cómo incluyo imágenes en un módulo de Magento?

Quiero que las imágenes se muestren en la página web, pero incluidas en el módulo de Magento.

  1. en que carpeta los pongo
  2. ¿Cómo me refiero a ellos? (Necesitaré una variable para la ruta del módulo).

La documentación, varios tutoriales externos y una búsqueda en Google no brindan ayuda.

Todo lo que veo debajo design/frontend/default/default carpeta es etc layout locale template y no hay donde poner imágenes.

¿Los pongo en el skin/frontend/default ¿carpeta? ¿Si es así, donde?

preguntado el 01 de julio de 12 a las 18:07

2 Respuestas

Suponiendo que su módulo se aplica a Magento 1.4+, sus imágenes pertenecen a ./skin/frontend/base/default/images/, idealmente en una carpeta que indique el espacio de nombres y el nombre de su módulo, por ejemplo namespace_module. Luego pueden ser referenciados de las siguientes maneras:

  • Un archivo CSS de módulo en base/default/css/namespace_module/file.css: url(../../images/namespace_module/image.jpg)

  • Una plantilla (o bloque): $this->getSkinUrl('images/namespace_module/image.jpg')

  • En cualquier lugar: Mage::getDesign()->getSkinUrl('images/namespace_module/image.jpg');

FYI, nada bajo el ./app/ Se accede al directorio (debería ser accedido) directamente por el navegador.

Respondido 01 Jul 12, 20:07

Cuando tu dices espacio de nombres del módulo y luego nombre, ¿eso significa que puedo tener mi /desbest/showdown carpeta dentro del skin/frontend/default carpeta y tener Mage::getDesign()->getSkinUrl señalar eso? - desmejorar

Es sólo una cuestión de preferencia. Por convención, diría que coloque sus carpetas dentro de cada carpeta de tipo de activo (css, image, js). los Mage::getDesign()->getSkinUrl() siempre apuntará al tema configurado, que recurrirá a base/default. - Benmarks

estoy haciendo un magento módulo, no un tema. Debido a que estoy usando el tema predeterminado, siempre vuelve a base/default. Quiero incluir imágenes dentro de mi módulo, así que necesito saber exactamente cómo hacerlo. - desmejorar

Es inútil apuntar mis carpetas de activos al tema específico, porque la persona que usa mis módulos podría cambiar el tema. Eso haría que los activos de mi módulo (img/css/js) como roto Quiero crear carpetas de activos para módulos y no para un tema. - desmejorar

... que es lo que he explicado aquí. Los activos del tema de Magento vuelven al tema base/predeterminado, bajo el cual debe colocar sus activos. Consulte Mage_Core_Model_Design_Package para obtener información detallada. - Benmarks

Una alternativa a enviar su imagen como parte de su extensión es alojarla en su servidor web (o de otra persona) y luego inclúyalo por URL en su extensión.

Si ese es el caso, y desea que la imagen aparezca en sus páginas de administración básicas, simplemente coloque html directamente en su system.xml (escápelo primero). De lo contrario, si lo incluye en sus plantillas, póngalo con un img etiqueta html.

Un par de beneficios de este enfoque:

1) Puede mirar sus registros de Apache cada mes y ver cuántas veces se vio su imagen (es decir, cuántas personas están instalando su extensión) y también, desde el encabezado HTTP de referencia, puede ver qué sitios también lo están usando.

2) Cuando se adquiere su exitosa empresa de Internet, puede intercambiar fácilmente un logo.jpg diferente en su servidor web, sin tener que implementar una nueva versión de su extensión.

Entonces no es el manera correcta, pero es una manera simple con un par de beneficios.

Respondido 02 Jul 12, 09:07

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