prestashop:crearmodulo
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| prestashop:crearmodulo [2015/03/22 21:41] – [Módulo básico completo] alberto | prestashop:crearmodulo [2021/05/05 10:04] (actual) – borrado alberto | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Crear un módulo ====== | ||
| - | ===== Introducción ===== | ||
| - | A continuación se explicará la forma de crear un módulo instalable para prestashop. No se entrará en detalles técnicos, ni en funcionalidades, | ||
| - | La funcionalidad del mismo dependerá de la labor del programador. | ||
| - | Como fuente se ha usado la [[http:// | ||
| - | Las normas de edición de código para prestashop pueden verse en la [[http:// | ||
| - | ===== Sistema de archivos ===== | ||
| - | El módulo debe contenerse en una carpeta (directorio) con el nombre del módulo. Esta carpeta debe estar en el directorio: ../ | ||
| - | En la carpeta del módulo deben encontrarse los archivos y directorios necesarios para el funcionamiento del módulo. | ||
| - | Como mínimo es necesario disponer de los siguientes archivos: | ||
| - | - **nombre_del_modulo.php: | ||
| - | - **config.xml: | ||
| - | - **logo.png: | ||
| - | |||
| - | Puede verse una tabla con un sistema de archivos y directorios más completo en la [[http:// | ||
| - | |||
| - | A continuación se explicará el mínimo código necesario que debe existir en el archivo principal del módulo nombre_del_modulo.php | ||
| - | |||
| - | ===== Definición del módulo ===== | ||
| - | En primer lugar hay que comprobar que existe una instalación de prestashop. Para ello lee la " | ||
| - | Si no existe el módulo no continúa la carga.Previene que visitantes maliciosos carguen este archivo directamente. | ||
| - | Para ello: | ||
| - | <code php> | ||
| - | if (!defined(' | ||
| - | exit; | ||
| - | </ | ||
| - | |||
| - | En segundo lugar hay que definir el módulo. Debemos crear la clase que instanciará al módulo como un objeto PHP. Además debe de heredar de la clase " | ||
| - | <code php> | ||
| - | class MiModulo extends Module | ||
| - | { | ||
| - | // Cuerpo del módulo | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ===== Estructura interna del módulo ===== | ||
| - | El módulo tiene que tener al menos tres funciones básicas: | ||
| - | * Constructor | ||
| - | * Función de instalación | ||
| - | * Función de desinstalación | ||
| - | |||
| - | <code php> | ||
| - | class MiModulo extends Module | ||
| - | { | ||
| - | public function __construct() | ||
| - | { | ||
| - | // Contenido de la función // | ||
| - | } | ||
| - | public function install() | ||
| - | { | ||
| - | // Contenido de la función de instalación del módulo. Hace uso de la función de instalación de la clase //Module// | ||
| - | } | ||
| - | public function uninstall() | ||
| - | { | ||
| - | // Contenido de la función de desinstalación del módulo. Hace uso de la función de desinstalación de la clase //Module// | ||
| - | } | ||
| - | |||
| - | } | ||
| - | </ | ||
| - | |||
| - | ==== Constructor ==== | ||
| - | Para ampliar la información se puede recurrir a la [[http:// | ||
| - | En el constructor se especifican los parámetros de la clase //Module//, además de lo que sea necesario para el correcto funcionamiento del módulo. | ||
| - | <code php> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | </ | ||
| - | |||
| - | Las posibles secciones en las que puede aparecer el módulo pueden verse en la tabla de la [[http:// | ||
| - | |||
| - | Ahora debemos llamar a la clase constructor del método padre: | ||
| - | <code php> | ||
| - | parent:: | ||
| - | </ | ||
| - | |||
| - | Lo siguiente definir literales a mostrar en diferentes partes del módulo: | ||
| - | <code php> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | |||
| - | $this-> | ||
| - | |||
| - | if (!Configuration:: | ||
| - | $this-> | ||
| - | </ | ||
| - | |||
| - | ==== Instalador === | ||
| - | Para ampliar información, | ||
| - | Esta función hereda todo lo necesario de la clase padre. | ||
| - | Es en esta función donde deberemos realizar operaciones necesarias al instalar el módulo, como por ejemplo: chequear determinadas características de la tienda, crear tablas SQL, copiar archivos, crear variables de configuración, | ||
| - | |||
| - | <code php> | ||
| - | // Función mínima de instalación | ||
| - | public function install() | ||
| - | { | ||
| - | if (!parent:: | ||
| - | return false; | ||
| - | return true; | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ==== Desinstalador ==== | ||
| - | Para ampliar información ver la [[http:// | ||
| - | Esta función hereda todo lo necesario de la clase padre. | ||
| - | Es en esta función donde deberemos realizar operaciones necesarias al desinstalar el módulo, para dejar el sistema limpio: borrar tablas SQL, borrar variables de configuración, | ||
| - | |||
| - | <code php> | ||
| - | // Función mínima de desinstalación | ||
| - | public function uninstall() | ||
| - | { | ||
| - | if (!parent :: | ||
| - | return false; | ||
| - | return true; | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ===== Objeto Configuration ===== | ||
| - | Ampliar información en la [[http:// | ||
| - | Este objeto tiene como finalidad ayudar a los desarrolladores a administrar las opciones del módulo, sin necesidad de usar SQL querys (API de prestashop). | ||
| - | Algunos ejemplos de funciones útiles para recuperar información de configuración de prestashop las siguientes: | ||
| - | <code php> | ||
| - | Configuration:: | ||
| - | Configuration:: | ||
| - | Configuration:: | ||
| - | Configuration:: | ||
| - | </ | ||
| - | |||
| - | Hay cientos de opciones de configuración posibles, disponibles en la tabla // | ||
| - | |||
| - | Algunos ejemplos: | ||
| - | <code php> | ||
| - | Configuration:: | ||
| - | Configuration:: | ||
| - | Configuration:: | ||
| - | Configuration:: | ||
| - | Configuration:: | ||
| - | </ | ||
| - | |||
| - | En el caso de que tengamos activada la multitienda, | ||
| - | ===== Objeto Shop ===== | ||
| - | Ampliar información en la [[http:// | ||
| - | Este objeto sirve para administrar las opción multitienda de prestashop. | ||
| - | Para saber si esta característica está activada podemos usar el siguiente código: | ||
| - | <code php> | ||
| - | if (Shop:: | ||
| - | Shop:: | ||
| - | </ | ||
| - | |||
| - | Información más detallada en la [[http:// | ||
| - | |||
| - | ===== Módulo básico completo ===== | ||
| - | En el siguiente código se muestra la estructura básica del archivo principal de un módulo, según lo expuesto hasta ahora: | ||
| - | <code php> | ||
| - | <?php | ||
| - | if (!defined(' | ||
| - | exit; | ||
| - | |||
| - | class MyModule extends Module | ||
| - | { | ||
| - | public function __construct() | ||
| - | { | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | |||
| - | parent:: | ||
| - | |||
| - | $this-> | ||
| - | $this-> | ||
| - | |||
| - | $this-> | ||
| - | |||
| - | if (!Configuration:: | ||
| - | $this-> | ||
| - | } | ||
| - | |||
| - | public function install() | ||
| - | { | ||
| - | if (!parent:: | ||
| - | return false; | ||
| - | return true; | ||
| - | } | ||
| - | |||
| - | public function uninstall() | ||
| - | { | ||
| - | if (!parent :: | ||
| - | return false; | ||
| - | return true; | ||
| - | } | ||
| - | } | ||
| - | ?> | ||
| - | </ | ||
| - | |||
| - | Puede descargarse el archivo desde aquí. | ||
prestashop/crearmodulo.1427056903.txt.gz · Última modificación: por alberto
