[PHP] Haciendo modulo “Hola Mundo” en Magento

Standard

Hace tiempo no hacia un post elaborado y como tenia que recordar algunas buenas practicas hoy les traigo esta entrada tipo “How-to” para que tu primer modulo en Magento salga con fritas. Vale aclarar, que veremos el código mínimo para hacer andar un modulo.

En primer instancia debemos tener un Magento andando en nuestro servidor local (http://magento.local/ por ejemplo), esto es bastante fácil y no requiere de una guiá extensa. Descargamos del sitio oficial la ultima versión de Magento, descomprimimos, creamos una base de datos y sin mas vueltas tenemos a nuestro Magento funcionando. Si tienen problemas con la instalación, solo dejen un comentario debajo…

1. Crear archivo Zarpele_Holamundo.xml

Nuestro Modulo se llamará Holamundo y el espacio de trabajo será Zarpele, buscamos la carpeta /app/etc/modules/ y creamos el archivo Zarpele_Holamundo.xml con este contenido:

Archivo: /app/etc/modules/Zarpele_Holamundo.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Zarpele_Holamundo>
            <active>true</active>
            <codePool>local</codePool>
        </Zarpele_Holamundo>
    </modules>
</config> 

En nuestro backend (/admin), podemos observar el modulo activo si vamos a System -> Configuration -> Advanced -> Advanced junto a a otros módulos que proporcionan el funcionamiento correcto del sitio (es aconsejable no desactivarlos)

2. Configurando nuestro modulo

Ahora nos queda configurar nuestro modulo, en /app/code/local vamos a crear una carpeta con nuestro espacio de trabajo “Zarpele”, y crearemos otra carpeta dentro de esta con el nombre del modulo “Holamundo”.

En esta carpeta /app/code/local/Zarpele/Holamundo van a estar todos los archivos de nuestro modulo (configuraciones, controladores, vistas, modelos, bloques, etc).

Vamos a crear el archivo de configuración de nuestro modulo.

Archivo: /app/code/local/Zarpele/Holamundo/etc/config.xml

<?xml version="1.0"?>
<config>
    <!--Indicamos la version del modulo-->
    <modules>
        <Zarpele_Holamundo>
            <version>0.1.0</version>
        </Zarpele_Holamundo>
    </modules>    
    <!--Indica que estamos desarrollando para el frontend-->
    <frontend>
        <routers>
            <Zarpele_Holamundo_NombreDeRoute><!--NombreDeRoute es simplemente el nombre del route-->
                <use>standard</use><!--admin o standard-->
                <args>
                    <module>Zarpele_Holamundo</module><!--Nombre del modulo-->
                    <frontName>zarpele-holamundo</frontName><!--URL donde se podra acceder-->
                </args>
            </Zarpele_Holamundo_NombreDeRoute>
        </routers>
    </frontend>    
</config>

Expliqué brevemente este archivo en el mismo con comentarios, a medida que vayamos aumentando la complejidad de nuestro modulo les iré mostrando diferentes configuraciones.

3. Creando el controlador

Ahora solo nos falta crear el controlador para que funcione con esta configuración…

Archivo: /app/code/local/Zarpele/Holamundo/controllers/IndexController.php

<?php
class Zarpele_Holamundo_IndexController extends Mage_Core_Controller_Front_Action
{
    /*http://magento.local/index.php/zarpele-holamundo*/
    public function indexAction()
    {
        echo 'Hola Mundo Zarpele...';
    }
     
    /*http://magento.local/index.php/zarpele-holamundo/index/otraPagina*/
    public function otraPaginaAction()
    {
        echo 'Hola Mundo 2 Zarpele...';
    }
}
?><

Listo, ya hicimos nuestro primer modulo en Magento. Si este no funciona, no se olviden de limpiar cache (importante siempre a la hora de encontrar un problema) System -> Configuration -> Cache Management

Saludos y buen código…