Category: programación
mi primer modulo
¡Porfin pongo las manos dentro del código! Voy a repasar los pasos para conseguir el ejercicio del capitulo 6 del libro Guide to E-commerce Programming with MAGENTO. Este ejercicio consiste en reemplazar el cuadro de texto para introducir la cantidad que se quiere comprar de un articulo en su ficha por un desplegable con unos valores de tipo (x*1) - (x*2) - (x*3) - (x*4): pensar por ejemplo en cajas de huevos, se puede comprar una o más cajas de 6, por lo cual la cantidad pedida sera siempre un multiplo de 6. Pero no para todos los productos de la tienda (seria demasiado facil), sino solo los que elegimos.
Ademas del libro (que no tiene toda la información y parte de ella no es correcta) me he ayudado del tutorial de Fido para crear un modulo simple, que el sí esta muy bien hecho, completo y correcto.
- Ya sabemos que es mejor no tocar el código original de Magento. Lo que se recomienda es crear un directorio dentro de app/code/local/ que llamamos al nombre de la empresa (por ejemplo). La empresa para quien trabajo se llama amantis por lo cual he creado el directorio app/code/local/Amantis/ (primera letra en mayuscula, el resto en minuscula: es importante). Dentro de esta carpeta almacenaremos todos los modulos que desarollamos para esta empresa. Empezamos directamente con este: voy a trabajr con las cantidades, creo un directorio app/code/local/Amantis/Cantidades/.
Amantis es el namespace y Cantidades es el modulo. - Indicamos a Magento que hay que cargar este modulo, y como lo más probable es que haya más modulos despues, voy a reunirles todos en un fichero: app/etc/modules/Amantis_All.xml. Contiene:
<?xml version="1.0"?> <config> <modules> <Amantis_Cantidades> <active>true</active> <codePool>local</codePool> </Amantis_Cantidades> </modules> </config> - Creo app/code/local/Amantis/Cantidades/etc/config.xml para una configuración minima del modulo. Contiene:
<?xml version="1.0"?> <!-- more at http://www.magentocommerce.com/wiki/custom_module_with_custom_database_table#create_configuration_xml --> <config> <!--turn on our module, required for install support --> <modules> <Amantis_Cantidades> <version>1.0</version> </Amantis_Cantidades> </modules> <global> <blocks> <amantis_cantidades> <class>Amantis_Cantidades_Block</class> </amantis_cantidades> </blocks> </global> </config>Estos 2 pasos son fundamentales para que el modulo se active cuando se carga la pagina pero no tienen mucho misterio. Lo unico importante es respetar el UpperCamelCase. El resto habla por si solo: es la versión 1.0 del modulo, es activo, esta dentro del pool local y contiene ficheros de Block cuyas classes empezaran con Amantis_Cantidades_Block.