Desarrollo de tema magento archivos de diseño

En este artículo, cubriremos los conceptos básicos del diseño de Magento XML. 

Vamos a repasar local.xml Y hacer algunas modificaciones básicas. Esto incluirá agregar y eliminar scripts, eliminar bloques y agregar cambios de diseño.

Ahora que tenemos una comprensión básica de la jerarquía de temas del primer artículo de esta serie, profundizaremos un poco más y explicaremos los archivos de plantillas..

Los archivos de plantillas constan de dos subdirectorios de los cuales son:

  • Diseño: aplicación / diseño / frontend ///diseño/
  • Modelo: aplicación / diseño / frontend ///modelo/

Hay mucho que cubrir, por esta razón los dividiré en sus propios artículos. Hoy solo estaremos cubriendo el aspecto del diseño. El aspecto de la plantilla entrará en juego en el próximo artículo..

Espera, antes de comenzar, necesitamos hacer una cosa vital: deshabilitar el caché de Magento, si es que aún no lo has hecho, ¡eso es! Al hacerlo, nos permitirá ver nuestras modificaciones al instante, en lugar de tener que actualizar la memoria caché cada vez que realizamos un cambio. Lo ideal es que se apague durante el desarrollo de un sitio. Para hacer esto inicie sesión en el área de administración y diríjase a sistema> gestión de caché y deshabilitar todo.

Ahora que está ordenado vamos a empezar.

Diseño

La carpeta de diseño contiene los archivos XML que dictan en gran medida lo que se muestra en la parte frontal de la tienda. La estructura del diseño es bastante compleja en Magento, pero esta es una de las razones que la hacen tan poderosa y flexible.. 

Encontrará cientos de archivos XML cada uno haciendo lo suyo, cada vista o módulo en aplicación / código / obtiene su diseño especificado por su propio archivo XML. Si alguna vez instala un módulo de terceros en su tienda y afecta la parte frontal, sin duda tendrá su propio archivo XML.

Entonces, ¿cómo sé qué archivo editar si necesito?

Bueno, la convención de nomenclatura de los archivos hace que sea más fácil localizarlos cuando necesite realizar modificaciones. Por ejemplo, magento app / code / core / Mage / Page / módulo tiene su propio archivo XML llamado app / design / frontend / base / default / layout / page.xml ¡Como pueden ver, hay un patrón que comienza a surgir aquí! Una vez que se haya familiarizado y haya hecho algunas tiendas, pronto notará algo de repetitividad y recordará qué archivos necesita editar..

Nota:Tenga en cuenta los módulos de terceros, ya que técnicamente el desarrollador puede asignar un nombre a su archivo XML como desee. En este escenario, a menos que esté en su documentación, tendrá que buscar el nombre del archivo dentro del módulo que se encuentra generalmente en el config.xml expediente. También tenga en cuenta que no todos los módulos tienen un archivo XML, por lo general, el archivo XML solo estará presente si afecta el extremo frontal de la tienda, así que no espere uno todo el tiempo.!

Ruta de configuración: aplicación / código / local ///etc/config.xml

Aviso que he referenciado base / predeterminado arriba, recuerde que estos son los lugares donde residen los archivos principales. Si necesita hacer modificaciones, cópielos siempre a su cuenta. paquete / tema Nunca editar base / predeterminado archivos. 

Al igual que:

app / design / frontend / base / default / layout / page.xml

copiar a:

aplicación / diseño / frontend ///layout/page.xml

La modificación considerable de estos archivos requiere experiencia y, al ser un tutorial para principiantes, está fuera del alcance de esta serie. sin embargo, voy a correr a través de local.xml y cómo esto se relaciona con el desarrollo del tema, así como con una serie de modificaciones básicas que creo que serán útiles.

¿Qué es local.xml??

En pocas palabras, es un archivo que se coloca dentro de nuestra carpeta de diseño de temas que albergará una gran parte de nuestras anulaciones o actualizaciones a las referencias XML para ese tema. Se considera una buena práctica y Magento lo recomienda. Podríamos verlo como la versión Magento de WordPress funciones.php expediente.

Espera, una "gran parte", ¿por qué no "todos" de nuestras anulaciones o actualizaciones??

Hay un debate sobre este tema y si investigamos un poco encontraremos que cada uno tiene su propia opinión. Algunos dirán solo usar local.xml y no haga ediciones en ningún otro lugar mientras que otros no estarán de acuerdo, así que no tome el siguiente conjunto en piedra.

Personalmente, creo que es un lugar ideal para pequeñas modificaciones, como agregar bloques, eliminar bloques o cambiar plantillas. No es un lugar para diseñar completamente la página de su producto o algo similar, si desea hacerlo, hágalo en el archivo correspondiente, por ejemplo, catalog.xml

Sí, podría ahorrarnos un poco de tiempo cuando actualizamos Magento, ya que todas nuestras ediciones están en un solo archivo, pero en primer lugar, obtener todas nuestras ediciones en un solo archivo, con todos los dolores de cabeza de intentar anular otros archivos XML. simplemente se supera.

Además, cuando realizamos una gran cantidad de modificaciones a una página, lo ideal sería que hiciéramos referencia al otro XML que forma parte de esa página, tendríamos que cambiar constantemente entre los dos archivos, y al final estábamos dividiendo la funcionalidad entre dos archivos separados. no es lo que realmente queremos!

Entonces, cómo configurarlo ...

Crear el local.xml archivo dentro de nuestra carpeta de diseño de tema aplicación / diseño / frontend //default/layout/local.xml y añade alguna estructura básica de marcado XML:

    

Ahora que tenemos nuestro archivo listo, te mostraré algunas técnicas comunes.

1. Agregar y eliminar scripts / hojas de estilo

Una modificación muy común es agregar o eliminar JavaScript y CSS. Si está trabajando con jQuery, tendrá que agregar esto ya que Magento no lo incluye de manera predeterminada y cualquier JavaScript personalizado que necesite también deberá agregarse..

Si vemos el código fuente en una instalación de Magento, veremos un montón de JavaScript que se está incorporando, algunos de los cuales no utilizaremos, en cuyo caso es necesario eliminarlos, ya que es innecesario. http solicitud - Magento no es rápido, así que hagamos lo básico!

Para incluir un archivo, debemos decidir si será global, por ejemplo, en cada página de nuestra tienda o solo en ciertas áreas. Con esto podemos seleccionar el controlador de diseño correcto para usar.

Voy a introducir dos controladores de diseño, y . Por supuesto, hay muchos más disponibles para nosotros, pero por ahora nos centramos en estos.

los El manejo es global y afectará a todas las páginas, mientras que solo afectara la pagina de inicio.

Ahora, al código.

     skin_jsjs / libs / jquery.min.js       ]]>     skin_jsjs / libs / modernizr.min.js skin_jsjs / libs / html5shiv.min.jses IE 9 skin_jsjs / libs / respond.min.jses IE 9 skin_jsjs / libs / selectivizr.min.jses IE 9  skin_csscss / widgets.css skin_csscss / print.css skin_csscss / styles-ie.csslt IE 8 skin_jsjs / ie6.jslt IE 7 jslib / ds-sleight.jslt IE 7      skin_jsjs / libs / home.min.js skin_csscss / home.css   

Hay mucho que hacer aquí, pero cuando se desglosa es relativamente sencillo.

 tipo de archivo / ubicación ruta al archivo 
  1. Método es donde entramos lo que queremos lograr.
  2. Type hace referencia al tipo de archivo que es y también determina dónde se encuentra el archivo en la jerarquía.
  3. Nombre es donde ingresamos la ruta al archivo.

Siguiendo con el punto dos: también determina dónde está el archivo en la jerarquía, cada tipo hace referencia a una posición diferente en la jerarquía que se antepone a lo que ingresa en el campo. Los he enumerado a continuación para referencia:

  • skin_js: piel / frontend // default / nombre
  • skin_css: piel / frontend // default / nombre
  • js js / nombre

Tenga en cuenta que cargar un archivo desde una fuente externa, como un CDN, tiene una sintaxis ligeramente diferente. También es importante incluir el jQuery.noConflict (); al final para evitar que jQuery entre en conflicto con Magento integrado en la biblioteca Prototype.

2. Eliminando Bloques

Magento viene con varios bloques de barra lateral que enfrentemos que nunca usaremos en una situación de la vida real, como el anuncio "Regreso a la escuela". A continuación se presentan dos métodos que podemos utilizar: 

       right.poll   

los retirar El método es una buena manera de eliminar un bloque, independientemente de qué controlador de diseño haya cargado el bloque, a veces solo queremos que desaparezca globalmente sin importar dónde esté y nunca volver.!

Por otra parte unsetChild solo eliminará un bloque desde un controlador de diseño específico. Puedes ver que lo estoy llamando dentro de la Correcto Manejador de diseño por lo que sólo se eliminará de allí. Si el right.poll el bloque se llama desde cualquier otro lugar en un controlador de diseño diferente que se mostrará.

3. Agregar un cambio de diseño

Aquí tenemos un ejemplo de agregar un bloque estructural adicional a la página de inicio. Estamos haciendo referencia al bloque de contenido y usando el después etiqueta para especificar el bloque que se mostrará al final del bloque de contenido.

       

4. Agregando un Bloque de CMS Estático

Por último, tenemos un ejemplo de agregar un bloque de CMS estático, pero primero deberá crear uno para que esto funcione..

Una vez que haya iniciado sesión en el área de administración, diríjase a CMS> Bloques Estáticos y añadir un nuevo bloque. Tome nota del "Identificador" ya que necesitamos hacer referencia a esto en el código XML.

     home_static_block    

Dentro de block_id Es donde ingresamos nuestro identificador..

Otras lecturas

Apenas hemos arañado la superficie y hay muchos otros usos para XML, por no mencionar más controladores de diseño y etiquetas XML disponibles para nosotros. El diseño de Magento en sí mismo garantiza ser una serie, ya que hay mucho que cubrir, por ahora lo mantengo solo para lo básico.

Si desea leer un poco más sobre el XML, le recomiendo que lea este artículo y que también descargue una copia de la Guía de diseño oficial de Magento que profundice y tenga una buena explicación de las otras etiquetas XML que podemos usar..

Que sigue?

En el siguiente artículo, vamos a avanzar y ver los archivos de plantilla..