Aprendiendo magento crear un modulo II: Hola Mundo

Continuando con el post anterior Crear un módulo Parte 1, veremos a continuación como crear un módulo desde 0 y como meta final conseguir nuestro ya famosísimo “Hola Mundo”.

Primer paso es:

Crear el activador de nuestro módulo

Nos ubicamos dentro del directorio raíz de nuestra instalación y a continuación accedemos a app/etc/modules. Ya dentro de ese directorio crearemos un archivo .xml,  con el nombre de “Machakando_Holamundo” (Namespace_Modulo), y le agregaremos el siguiente contenido:

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

Una vez creado esto, necesitamos limpiar la cache de Magento y preferiblemente desactivarla para notar este tipo de cambios, ya que los cambios que se realizan sobre los .xml siempre se almacenan en cache. Para esto accedemos a nuestro backend y “System”->”Cache Management”, Seleccionamos todos los tipos de cache, cambiamos la acción a “refresh” y posteriormente seleccionamos todos los tipos de cache nuevamente y cambiamos el action por “disable” y “submit”.

Una vez realizado esto, nos aseguramos que Magento este reconociendo la activación de nuestro módulo, para esto accedemos a “System”-> “Configuration” -> “Advanced” -> “Advanced”,  y veremos una lista con todos los módulos activados hasta el momento. Si localizamos el nuestro en la lista, entonces todo habrá salido bien.

– Crear nuestro módulo

Como siguiente paso, crearemos un directorio “local” dentro de la carpeta “app” (en caso de que no exista) y siguiendole el nombre de nuestro Namespace (Por lo regular, se coloca la empresa de quien lo está desarrollando). Quedando de la siguiente manera

/magento/app/code/local/Machakando

Dentro de nuestra carpeta local, crearemos otro directorio con el nombre de nuestro módulo, en este caso, el directorio es “Holamundo”

/magento/app/code/local/Machakando/Holamundo

Dentro de este directorio crearemos un directorio etc, y dentro un xml llamado, config.xml. Quedando la estructura de directorios de esta manera:

/magento/app/code/local/Machakando/Holamundo/etc/config.xml

Abrimos el archivo config.xml y colocamos lo siguiente:

<config>
    <modules>
        <Machakando_Holamundo>
            <version>0.1.0</version>
        </Machakando_Holamundo>
    </modules>
    <frontend>
        <routers>
            <holamundo>
                <use>standard</use>
                <args>
                    <module>Machakando_Holamundo</module>
                    <frontName>holamundo</frontName>
                </args>
            </holamundo>
        </routers>
    </frontend>
</config>

Donde el nodo Define información básica de nuestro módulo, así como la versión actual del mismo (Más adelante veremos como manejar la versión), posteriormente, dentro del nodo definimos a el controller que despachará a este módulo, donde el valor de es el valor que se accesará desde la url. Quedando el acceso a nuestro módulo de la siguiente manera:

http://misitio/holamundo/

Si tratamos de accesar nos arrojará un error 404 o algo similar. Lo que nos falta entonces, es declarar la clase controller. Para esto creamos el siguiente directorio en nuestro módulo /Holamundo/controllers/ y Agregamos la clase IndexController.php, quedando los directorios de la siguiente manera:

/Holamundo/controllers/IndexController.php

Y a continuación el contenido de esta clase será:

class Machakando_Holamundo_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        echo "hola mundo";
    }
}

Si vemos con cuidado, la manera en que formamos el nombre de nuestra clase, es tal cual, la ruta donde esta almacenado nuestro controller, es decir:

Machakando_Holamundo_IndexController es muy similar a Machakando/Holamundo/controllers/IndexController solamente con la diferencia que estamos omitiendo la palabra “controllers”. Todos los controllers del frontend, extienden de Mage_Core_Controller_Front_Action.

La manera en que comprobaremos es la siguiente:

http://misitio/holamundo/index/index

Y con esto obtendremos nuestro primer módulo funcionando y el mensaje de Hola Mundo mostrandose correctamente.

Que se traduciría a http://misitio/modulo/controller/action si observamos esta analogía, nos damos cuenta que la palabra Controller y Action se omitén al escribirla en la barra de direcciones.

En caso de no funcionar, no está de mas revisar los logs, Como activar logs en Magento

Loading Facebook Comments ...