En este post vamos a explicar cómo crear un módulo: la manera limpia y correcta de aplicar cualquier cambio en el código de Magento, por pequeño que sea

El módulo de este tutorial no realiza ninguna funcionalidad, este post únicamente explica cómo crear y activar un módulo, así como mostrar la ubicación y reglas de nomenclatura de sus ficheros básicos. Otros posts de la serie tratan temas más avanzados, como las reescrituras (rewrites) de código

En Magento hay 3 codepools, o repositorios de código

app/code/community
app/code/core
app/code/local

core contiene el código original, mientras que en community & local encontramos las extensiones instaladas. Usualmente los módulos desarrollados de manera interna utilizan el codepool local

El primer paso a la hora de crear un módulo es bautizarlo. Elegimos namespace & nombre. Vamos a llamar al módulo de este post VIAN Tutorial, donde VIAN es el namespace & Tutorial el nombre del módulo

Los módulos deben tener un fichero XML de configuración, en

app/etc/modules

Creamos un fichero XML, generalmente con el mismo nombre del módulo VIAN_Tutorial.xml, y escribimos



	
                
                
		
			local
			true
		
	

Este fichero indica a Magento que queremos activar el módulo (tag active) y debe ser cargado desde el codePool local. Ambos parámetros son definidos dentro del tag XML VIAN_Tutorial, compuesto por namespace & nombre del módulo, separados por _

Creamos las carpetas & ficheros de nuestro módulo, tal como hemos definido, en el codepool local. Creamos la carpeta raíz, con el namespace que hemos elegido, y dentro la carpeta de nuestro módulo, con el nombre que hemos elegido

app/code/local/VIAN/Tutorial

Creamos la carpeta de configuración (etc) & otra serie de carpetas típicas de un módulo en Magento

app/code/local/VIAN/Tutorial/Block
app/code/local/VIAN/Tutorial/controllers
app/code/local/VIAN/Tutorial/etc
app/code/local/VIAN/Tutorial/Helper
app/code/local/VIAN/Tutorial/Model
app/code/local/VIAN/Tutorial/sql

Aunque nuestro módulo únicamente va a contener un fichero de configuración, vamos a explicar brevemente a qué hacen referencia cada una de esas carpetas

Magento está desarrollado siguiendo una estructura modular, dentro de cada uno de sus módulos encontramos algo similar a la típica estructura Modelo-Vista-Controlador. El patrón MVC en Magento es un tanto peculiar, muchas veces los controllers apenas ejecutan lógica, se limitan a crear o cargar un fichero de layout, y es ese fichero de layout el que progresivamente va llamando a blocks (que a su vez llaman a modelos, helpers, etc…), donde se ejecuta la tarea habitual de los controllers (preparar los datos para las vistas) en la mayoría de frameworks. La documentación oficial de Magento explica todo ésto de manera mucho más detallada, por ejemplo aquí

Visto ésto, la única carpeta que no hemos mencionado, sql, es donde podemos localizar los ficheros de instalación o actualización de estructuras de tablas de Base de Datos para nuestro módulo

Dentro de la carpeta de configuración

app/code/local/VIAN/Tutorial/etc

Creamos el fichero principal de configuración, config.xml



    
        
            
            0.1.0
        
    
    
    
        
            
            
                
                VIAN_Tutorial_Block
            
        
        
            
                
                VIAN_Tutorial_Helper
            
        
        
            
                
                VIAN_Tutorial_Model
            
        
    

En este fichero de configuración lo que hacemos es indicar la versión de nuestro módulo (utilizada principalmente en instalaciones & actualizaciones SQL), y las carpetas raíz para Blocks, Helpers & Modelos

Y con ésto tenemos nuestro módulo activo, preparado para realizar todo tipo de funcionalidades en Magento