La creación de un helper en Magento es muy simple, lo que sí es muy importante, es tener cuidado en el uso de las mayúsculas y minúsculas, así como en el uso de comentarios en los archivos xml.
Este artículo también pretende ser un breve tutorial para comprender el porqué de las cosas.
1) Hay que crear un módulo para alojar nuestro helper, para ello, necesitamos crear un nuevo archivo en la carpeta app/etc/modules/
el cual llamaremos Micodigo.xml
Poner el siguiente código dentro:
<?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Micodigo_Mihelper> <codePool>local</codePool> <active>true</active> </Micodigo_Mihelper> </modules> </config>
Micodigo representa un espacio de nombres (Namespace) en donde podemos colocar uno o varios módulos nuestros.
Mihelper representa el nombre de nuestro módulo
En el nodo codePool
, local significa que nuestro módulo es exclusivamente para nuestra necesidad específica (en Magento, community es por lo general para los plug-ins libres o comerciales que la comunidad de Magento desarrolla y resuelven problemas más comunes, y core significaría que este módulo es de la plataforma de Magento)
2) Crear el directorio app/code/local/Micodigo/Mihelper/etc/
y crear el archivo config.xml
:
<?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Micodigo_Mihelper> <version>1.0.0</version> </Micodigo_Mihelper> </modules> <global> <helpers> <mihelper> <class>Micodigo_Mihelper_Helper</class> </mihelper> </helpers> </global> </config>
3) Crear la carpeta app/code/local/Micodigo/Mihelper/Helper/
y crear el archivo Data.php
<?php class Micodigo_Mihelper_Helper_Data extends Mage_Core_Helper_Abstract { public function test() { return 'Hola mundo' ."\n"; } }
4) Usar el helper de la siguientes maneras:
echo Mage::helper('mihelper')->test();
$helper = Mage::helper('mihelper') echo $helper->test();
O si lo prefieres, puedes probarlo desde el shell, ya sea que hayas iniciado una sesión por SSH en linux:
1) Crear un archivo test.php
en la carpeta raíz de Magento, y poner este código:
<?php require 'app/Mage.php'; Mage::App('default'); if (!Mage::isInstalled()) { echo "Application is not installed yet, please complete install wizard first."; exit; } $_SERVER['SCRIPT_NAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_NAME']); $_SERVER['SCRIPT_FILENAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_FILENAME']); ini_set('display_errors', '1'); require 'Mage/Core/Helper/Data.php'; echo Mage::helper('mihelper')->test();
2) Ejecutarlo desde el prompt de linux, con un comando como este (hay que tomar en cuenta que la ubicación del archivo php binario varía según la distribucion de linux que estés usando, en este caso es con CentOS 6):
/usr/bin/php ./test.php
Muchas gracias por el tutorial, me funcionó correctamente en Magento 1.7
ResponderEliminarSolo hay una corrección. En el paso número 2 cambiar:
2) Crear el directorio app/local/Micodigo/Mihelper/etc/ y crear el archivo config.xml:
por:
2) Crear el directorio app/code/local/Micodigo/Mihelper/Helper/ y crear el archivo config.xml:
y listo.
Hola, gracias, tienes razón, error de dedo. Saludos.
Eliminar