En la primera parte de esta serie, aprendimos los conceptos básicos del desarrollo del módulo Magento, incluida la estructura del directorio de Magento, la estructura del módulo personalizado, y creamos un módulo básico "Hello World" para comprender cómo funcionan los controladores en Magento..
En este artículo, aprenderemos cómo crear archivos de bloques y diseños. Específicamente, veremos cómo funcionan los archivos de diseño y los archivos de bloques en Magento y veremos la representación de los archivos de diseño.
Si está buscando una solución rápida, hay una gran colección de temas y plantillas de Magento en Envato Market. Es una excelente manera de crear rápidamente una colección de artículos de baja calidad de baja poli para su proyecto.
También puede obtener ayuda personalizada contratando a uno de los proveedores de servicios de Magento en Envato Studio.
Pero, ¡con el tutorial! Primero, veremos qué son los archivos de diseño y de bloque y cómo son útiles para representar las páginas de aplicaciones en Magento, y luego veremos cómo podemos incluirlos en nuestro módulo personalizado..
Como su nombre indica, los archivos de diseño son útiles para renderizar las portadas de Magento. Los archivos de diseño son archivos XML que se encuentran en la aplicación> diseño> interfaz> su interfaz> su tema> diseño. Aquí, puede ver que hay muchos archivos de diseño para cualquier módulo dado. Cada módulo Magento tiene sus propios archivos de diseño al igual que el módulo del cliente tiene cliente.xml
archivo de diseño, módulo de catálogo tiene catalog.xml
archivo de diseño, etc. Estos archivos de diseño contienen bloques estructurales y bloques de contenido.
Si se está preguntando por qué Magento necesita estos bloques, puede aprender más sobre esto en la primera parte de la serie..
Vamos a profundizar en los archivos de diseño mirando un ejemplo. Ir a la aplicación> diseño> frontend> base> diseñoy abre el cliente.xml
expediente. Aquí, todos los bloques se envuelven alrededor de la principal
etiqueta. Puedes ver los diferentes
que contiene bloques específicos.
Vea el siguiente fragmento de código:
page / 1column.phtml
Los identificadores son la entidad principal a través de la cual Magento identifica qué bloque cargar cuando se llama a un módulo en particular.
es el controlador específico del módulo. Este identificador se activa cuando alguien abre la página de registro de clientes.
Cada uno maneja el bloque anidado de contenido específico de la página. Algunos de los archivos de diseños contienen
encargarse de. En esta etapa, puede preguntar sobre la diferencia entre los controladores específicos del módulo y los controladores predeterminados. En resumen, los manejadores específicos del módulo solo representan los bloques dentro de él cuando ese módulo se procesa en el navegador, mientras que el manejador predeterminado se carga en la mayor parte de la página.
Dentro del manejador hay diferentes bloques diferentes que especifican el archivo de plantilla que se va a representar cuando se llama a ese bloque. Los bloques son de dos tipos:
En nuestro archivo de diseño estamos definiendo solo el Bloques de contenidoy luego los envolvemos en Sbloques tructurer. Por ejemplo, si alguien está llamando a una página de registro de cliente y queremos cargarla en el lado izquierdo, derecho, contenido o pie de página, envolvemos ese bloque en su respectivo bloque estructurador. Aquí, hemos envuelto dos bloques dentro del bloque "contenido" que es un bloque estructurador.
Los bloques contienen atributos como los siguientes:
phtml
Nombre de archivo y ruta donde va nuestro código HTML y PHPlos
La etiqueta se usa para extender los bloques que ya existen. En este caso, hemos ampliado el bloque de contenido e insertado nuestro propio bloque en él. Debe usar el nombre de bloque correcto que desea extender.
los
La etiqueta se usa para eliminar el bloque específico. Por ejemplo, diga que en la página de registro de su cuenta, no desea mostrar las columnas derecha e izquierda. En ese caso, simplemente puede eliminar ese bloque con la siguiente sintaxis
Cuando envuelve un bloque debajo de otro bloque, ese bloque envuelto se llama bloque hijo. Cuando nuestro módulo principal llama a nuestro bloque principal, el bloqueo secundario se llama automáticamente.
También puede llamar al bloqueo secundario por separado con la siguiente sintaxis en su archivo de plantillaecho $ this-> getChildHtml ('child');
Abierto page.xml
archivo de diseño, encontrará el
bloque que se ve abajo
Magento comienza a renderizar desde el bloque raíz. Todos los otros bloques son bloques hijos del bloque raíz. El bloque raíz define la estructura de la página. Aquí, puedes ver que actualmente está configurado para 3columns.phtml
, puedes cambiar esto a 1column.phtml
, 2columns-right.phtml
o 2columns-left.phtml.
Para cualquier página en particular, puede agregar archivos CSS y JavaScript en la etiqueta de diseño de esta manera:
css / styles.css
Aquí puede ver que hemos agregado un archivo CSS y un archivo JavaScript dentro de cabeza
de nuestra página de cuenta de cliente.
Las clases de bloque se utilizan para definir las funciones que son específicas de un bloque en particular. Las clases de bloque de archivos residen en aplicación> código> local / community / core> espacio de nombres de su módulo> nombre de su módulo> Bloqueardirectorio. Este archivo contiene las funciones que podemos usar directamente con $ esto
palabra clave en el archivo de plantilla específica de bloque. Tomemos un ejemplo para entender las clases de bloques..
Ir review.xml
archivo que reside en aplicación> diseño> frontend> base> predeterminado> diseño directorio y encontrar la siguiente línea de código:
Aquí puedes ver el bloque. review / customer_recent
que se refieren a la plantilla recent.phtml
. Ir aplicación> diseño> frontend> base> predeterminado> plantilla> revisión> clientey abierto recent.phtml
.
En este archivo, puedes ver dos funciones que son llamadas usando $ esto
palabra clave. Son $ this-> getCollection ()
y $ esto-> contar ()
. Estas funciones se definen en su archivo de clases de bloque. recent.php
que reside en aplicación> código> núcleo> Mago> revisión> Bloquear> clientedirectorio.
Aquí, el bloque. type = "review / customer_recent"
se refiere a Mage_Review_Block_Customer_Recent
clase de bloque que se define en recent.php
expediente. Cualquiera que sea la función que defina en esta clase, puede usarla directamente en el archivo de plantilla correspondiente con $ esto
.
Por último, nos quedamos con el módulo personalizado "Hello World" con el controlador. Aquí, creamos el archivo de diseño de nuestro módulo personalizado. Así que vamos a crearlo.
Para crear el archivo de diseño, primero debemos crear el archivo de clase de bloque. Antes de agregar el archivo de clase, debemos informarle a nuestro módulo que estamos incluyendo los archivos de bloque. Así que ve a app> code> local> Chiragdodia> Mymodule> etc>config.xml
y agregue la siguiente línea de código:
mymodule.xml Chiragdodia_Mymodule_Block
El archivo XML final contiene las siguientes líneas de código:
0.1.0 Chiragdodia_Mymodule mymodule mymodule.xml Chiragdodia_Mymodule_Block
A continuación, vaya a app> code> local> Chiragdodia> Mymodule> Blocky crea el archivo Mymodule.phpque contiene las siguientes líneas de código
Aquí hemos declarado la clase.
Chiragdodia_Mymodule_Block_Mymodule
que contiene la funciónmi funcion
que podemos llamar directamente desde nuestro archivo de plantilla de diseño.Crear el archivo XML de diseño
Ir aplicación> diseño> frontend> predeterminado> predeterminado> diseñoy crea el
mymodule.xml
archivo que contiene las siguientes líneas de códigoCrear el archivo de plantilla
Ir aplicación> diseño> frontend> predeterminado> predeterminado> plantillay crea el
mymodule.phtml
expediente. En este archivo, llamaremos a la función.mi funcion
Que hemos declarado en nuestra clase de bloque..mi función (); ?>Si todo está correcto hasta ahora, verá la salida con el diseño de tres columnas al acceder a la URL yoursite.com/index.php/mymodule/index.
En algunas versiones de Magento, los temas predeterminados no contienen los directorios de diseño y de plantilla. En ese caso, puede crear su diseño y archivo de plantilla en aplicación> diseño> frontend> basedirectorio.
Así es como funcionan los diseños en Magento. En el artículo anterior, creamos el módulo simple "Hello World", en este artículo lo hemos creado usando un archivo de diseño. La estructura de diseño de Magento es un poco difícil de entender al principio, pero una vez que comiences a jugar con ella, obtendrás fácilmente la idea..
En esta publicación, he adjuntado los archivos de demostración del módulo que hemos creado hasta ahora. Siéntase libre de comentar y hacer cualquier pregunta que pueda tener sobre este tema en particular.