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:31] – 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 | ||
| - | /** \brief Este es el archivo mymodule.php que hace referencia al módulo del mismo nombre. | ||
| - | Es un módulo de prueba cuya única función es aprender a hacer módulos para prestashop. | ||
| - | */ | ||
| - | |||
| - | /** Comprueba 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. | ||
| - | */ | ||
| - | if (!defined(' | ||
| - | exit; | ||
| - | |||
| - | /** \class MyModule Esta es la clase que define la instanciación del módulo y que se ejecuta cuando se carga. | ||
| - | Es una clase extendida de la clase ' | ||
| - | */ | ||
| - | class MyModule extends Module | ||
| - | { | ||
| - | /** Constructor | ||
| - | Se especifican diversos parámetros propios de la clase ' | ||
| - | Además de lo que sea necesario para el correcto funcionamiento del módulo | ||
| - | */ | ||
| - | public function __construct() | ||
| - | { | ||
| - | /** \var string name | ||
| - | Sirve como identificador. Debe tener el mismo nombre que el directorio del módulo | ||
| - | */ | ||
| - | /** \var string tab | ||
| - | Sección que contendrá el módulo | ||
| - | " | ||
| - | --------------- | -------------- | ||
| - | Administration | ||
| - | advertising_marketing | Advertising & Marketing | ||
| - | analytics_stats | ||
| - | billing_invoicing | ||
| - | checkout | ||
| - | content_management | ||
| - | dashboard | ||
| - | emailing | ||
| - | */ | ||
| - | /** \var string version | ||
| - | Versión del módulo | ||
| - | */ | ||
| - | /** \var string author | ||
| - | Autor del módulo | ||
| - | */ | ||
| - | /** \var boolean need_instance | ||
| - | Si necesita mostrar un mensaje de warning en la página de módulos | ||
| - | */ | ||
| - | /** \var array ps_versions_compliancy | ||
| - | Indica las versiones de Prestashop con las que es compatible el módulo | ||
| - | */ | ||
| - | /** \var boolean bootstrap | ||
| - | Indica si los archivos de plantilla han sido construidos con bootstrap tools | ||
| - | */ | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | $this-> | ||
| - | |||
| - | /** Llamamos al método constructor de la clase padre | ||
| - | */ | ||
| - | parent:: | ||
| - | |||
| - | /** En el siguiente bloque de código se utiliza el método de traducción l() | ||
| - | */ | ||
| - | /** \var string displayName | ||
| - | Nombre del módulo que se mostrará en el backoffice | ||
| - | */ | ||
| - | /** \var string description | ||
| - | Descripción del módulo que será mostrada en el backoffice | ||
| - | */ | ||
| - | $this-> | ||
| - | $this-> | ||
| - | |||
| - | /** \var string confirmUninstall | ||
| - | Mensaje que se muestra cuando se va a desinstalar el módulo | ||
| - | */ | ||
| - | $this-> | ||
| - | |||
| - | /** Se produce un warning si el módulo no tiene el valor MYMODULE_NAME establecido en la base de datos | ||
| - | */ | ||
| - | if (!Configuration:: | ||
| - | $this-> | ||
| - | } | ||
| - | |||
| - | /** Función básica de instalación | ||
| - | Muy útil si es necesario realizar operaciones 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, | ||
| - | */ | ||
| - | public function install() | ||
| - | { | ||
| - | if (!parent:: | ||
| - | return false; | ||
| - | return true; | ||
| - | } | ||
| - | |||
| - | /** Función básica de desinstalación | ||
| - | Necesaria si hay que llevar a cabo acciones para dejar el sistema limpio al desinstalar: | ||
| - | */ | ||
| - | |||
| - | public function uninstall() | ||
| - | { | ||
| - | if (!parent :: | ||
| - | return false; | ||
| - | return true; | ||
| - | } | ||
| - | } | ||
| - | ?> | ||
| - | </ | ||
prestashop/crearmodulo.1427056292.txt.gz · Última modificación: por alberto
