Tag: crear hola mundo en magento

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