Cómo crear un módulo de Prestashop (1/X)
Introducción
Prestashop es un proyecto Open source de ecommerce bastante reciente pero que apunta alto, cómo bien demuestra el premio con el que ha sido galardonado recientemente , el Open-Source Award 2010.
Es una solución muy completa y fácil de instalar y configurar…..pero, ¿cómo ampliar sus funcionalidades?, mediante su potente modularidad, ya, pero….¿cómo creo un módulo, por donde empiezo?
La documentación al respecto es más bien escasa, y ahà es dónde entra éste post. Antes de ponernos manos a la obra, dejar claro que se dan por hecho ciertos conocimientos necesarios para el desarrollo del módulo, cómo son MySql,Php y el motor de templates Smarty.
Prestashop se basa en el modelo MVC(modelo vista controlador) para gestionar la información.
Modelo->son todos los objetos que extienden la clase base “ObjectModel”, que define las funciones y comportamiento estándar para gestionar las tablas de prestashop, el CRUD(create,read,update and delete) y la base para el soporte multilenguaje.
Vista->Implementada mediante las plantillas de Smarty, que se encargan de gestionar la presentación de datos en pantalla.
Controlador->Son las clases que se encargan de la gestion del flujo de datos,recuperan los datos del modelo y los envÃan a la vista. Se encuentran en el directorio base de la aplicación y corresponden a las páginas principales de la aplicación.
Dado que cualquier cambio en esa arquitectura serÃa elevadamente difÃcil de controlar y actualizar con las diferentes nuevas versiones del producto, la solución se encuentra en crear módulos, que utilizan las funciones y recursos del núcleo de la aplicación sin interferir en ella.
Creación de los ficheros que componen el módulo
Lo primero a tener en cuenta es la nomenclatura de Prestashop, el nombre de la clase dentro del fuente puede ser capitalizado “MiClase”, sin embargo, el fichero que lo contiene asà cómo el directorio del módulo deben estar nombrados completamente en minúsculas y llamarse igual que la clase. Llamaremos a nuestro directorio “testmodule” y lo crearemos en “directorioBase/modules/”.
Y crearemos el fichero “testmodule.php” que extenderá de la clase base “Module”:
<!--?php Class testModule extends Module{ } ?-->
Una vez creado, el primer método que debemos definir es el __construct(), que es el que se encarga de informar a prestashop de los datos del módulo.
<!--?php Class testModule extends Module{ function __construct(){ $this--->name = 'testmodule';
$this->displayName = 'testModule';
$this->tab = 'Blocks';
$this->version = 1.0;
$this->confirmUninstall = $this->l('Are you sure you want to uninstall testModule?');
$this->description = $this->l('Example module, it does nothing by the time');
$this->page = basename(__FILE__, '.php');
parent::__construct();
}
}
?>
name->nombre del módulo(sigue la misma convención que el directorio del módulo, en minúsculas)
displayName->nombre del módulo a mostrar
tab->etiqueta bajo la cual queremos que se liste nuestro módulo en el backOffice
version->versión del módulo
confirmUninstall->mensaje de confirmación al desinstalar
description->descripción breve de la funcionalidad
Con esto ya tendremos lo suficiente para que nuestro módulo aparezca en el listado de modulos de nuestra tienda.
Si además incluimos en el directorio de nuestro módulo un fichero “logo.gif”, éste será el empleado cómo logo del módulo a la hora de listarlo en nuestra tienda.
Con ésto ya tenemos la estructura base del módulo, ahora nos falta hacer que se muestre en el frontOffice(o en el back, depende de que funcionalidad queramos implementar) y hacer que realmente haga algo. Todo eso lo veremos más adelante, asà que estad atentos a la segunda parte del post.

(4 votes, average: 9,75 out of 10)
Pingback: Cómo crear un módulo de Prestashop (3/X) : Init Developers
Pingback: Cómo crear un módulo de Prestashop (2/X) : Init Developers