Herramientas de usuario

Herramientas del sitio


prestashop:crearmodulo

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
prestashop:crearmodulo [2015/03/22 21:41] – [Módulo básico completo] albertoprestashop: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, sino que se expondrá el código mínimo para la creación del módulo.  
-La funcionalidad del mismo dependerá de la labor del programador. 
-Como fuente se ha usado la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-Creatingafirstmodule|página de desarrollo oficial de prestashop]]. 
-Las normas de edición de código para prestashop pueden verse en la [[http://doc.prestashop.com/display/PS16/Coding+Standards|página de convenciones para prestashop]]. 
  
-===== 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: ../directorio_raiz_de_prestashop/modulos/ 
-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:** Archivo principal de funcionamiento del módulo 
-  - **config.xml:** Archivo de configuración de caché. Si no existe, la crea prestashop de forma automática. 
-  - **logo.png:** Icono del módulo. Debe tener un tamaño de 32x32 píxeles. 
- 
-Puede verse una tabla con un sistema de archivos y directorios más completo en la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-FilestructureforaPrestaShopmodule|sección de estructura de un módulo para prestashop]]. 
- 
-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 "constante de Prestashop" que es su número de versión. 
-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('_PS_VERSION_')) 
- exit; 
-</code> 
- 
-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 "padre" de prestashop //Module// para poder disponer de las características básicas de cualquier módulo de prestashop: 
-<code php> 
-class MiModulo extends Module 
-{ 
- // Cuerpo del módulo 
-} 
-</code> 
- 
-===== 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 //constructor// que instanciará el objeto que será el módulo 
- } 
- 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// 
- } 
- 
-} 
-</code> 
- 
-==== Constructor ==== 
-Para ampliar la información se puede recurrir a la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-Theconstructormethod|página de desarrollo de prestashop]], de donde se extrajo esta información. 
-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->name = 'mymodule';    // Sirve como identificador. Debe tener el mismo nombre que el directorio del módulo  
-$this->tab = 'front_office_features';    // Sección de prestashop en que aparecerá el módulo. 
-$this->version = '1.0';   // Versión del módulo 
-$this->author = 'Firstname Lastname';    // Autor del módulo 
-$this->need_instance = 0;    // Si necesita mostrar un mensaje de warning en la página de módulos 
-$this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);    // Indica las versiones de Prestashop con las que es compatible el módulo 
-$this->bootstrap = true;    // Indica si los archivos de plantilla han sido construidos con bootstrap tools 
-</code> 
- 
-Las posibles secciones en las que puede aparecer el módulo pueden verse en la tabla de la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-Theconstructormethod|página de desarrollo de prestashop]]. 
- 
-Ahora debemos llamar a la clase constructor del método padre: 
-<code php> 
-parent::__construct(); 
-</code> 
- 
-Lo siguiente definir literales a mostrar en diferentes partes del módulo: 
-<code php> 
-$this->displayName = $this->l('My module');    // Nombre del módulo que se mostrará en el backoffice 
-$this->description = $this->l('Description of my module.');    //Descripción del módulo que será mostrada en el backoffice  
-  
-$this->confirmUninstall = $this->l('Are you sure you want to uninstall?');    // Mensaje que se muestra cuando se va a desinstalar el módulo 
-  
-if (!Configuration::get('MYMODULE_NAME'))   
-    $this->warning = $this->l('No name provided.');    // Se produce un warning si el módulo no tiene el valor MYMODULE_NAME establecido en la base de datos 
-</code> 
- 
-==== Instalador === 
-Para ampliar información, ver la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-Theinstall()method|página de desarrollo de prestashop]]. 
-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, etc. 
- 
-<code php> 
-// Función mínima de instalación 
-public function install() 
-{ 
- if (!parent::install()) 
- return false; 
- return true; 
-} 
-</code> 
- 
-==== Desinstalador ==== 
-Para ampliar información ver la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-Theuninstall()method|página de desarrollo de prestashop]]. 
-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, etc.. 
- 
-<code php> 
-// Función mínima de desinstalación 
-public function uninstall() 
-{ 
- if (!parent ::uninstall()) 
- return false; 
- return true; 
-} 
-</code> 
- 
-===== Objeto Configuration ===== 
-Ampliar información en la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-TheConfigurationobject|página de desarrollo de prestashop]]. 
-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::get('myVariable') 
-Configuration::getMultiple(array('myFirstVariable', 'mySecondVariable', 'myThirdVariable')) 
-Configuration::updateValue('myVariable', $value) 
-Configuration::deleteByName('myVariable') 
-</code> 
- 
-Hay cientos de opciones de configuración posibles, disponibles en la tabla //ps_configuration// de la base de datos SQL de nuestro prestashop. 
- 
-Algunos ejemplos: 
-<code php> 
-Configuration::get('PS_LANG_DEFAULT') 
-Configuration::get('PS_TIMEZONE') 
-Configuration::get('PS_DISTANCE_UNIT') 
-Configuration::get('PS_SHOP_EMAIL') 
-Configuration::get('PS_NB_DAYS_NEW_PRODUCT') 
-</code> 
- 
-En el caso de que tengamos activada la multitienda, estos métodos dependerán del contexto en el que nos encontremos. Sin embargo es posible especificar a la tienda a la que nos referimos con los parámetros //id_lang//, //id_shop// y //id_shop_group//. Más información en el cuadro gris de la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-Themainmethods|página de desarrollo de prestashop]]. 
-===== Objeto Shop ===== 
-Ampliar información en la [[http://doc.prestashop.com/display/PS16/Creating+a+first+module#Creatingafirstmodule-TheShopobject|página de desarrollo de prestashop]]. 
-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::isFeatureActive()) 
-  Shop::setContext(Shop::CONTEXT_ALL); 
-</code> 
- 
-Información más detallada en la [[http://doc.prestashop.com/display/PS16/Using+the+Context+Object|página de desarrollo]]. 
- 
-===== 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('_PS_VERSION_')) 
- exit; 
-  
- class MyModule extends Module 
- { 
- public function __construct() 
- { 
- $this->name = 'mymodule';  
- $this->tab = 'front_office_features'; 
- $this->version = '1.0'; 
- $this->author = 'Firstname Lastname'; 
- $this->need_instance = 0; 
- $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); 
- $this->bootstrap = true; 
-  
- parent::__construct(); 
-  
- $this->displayName = $this->l('My module'); 
- $this->description = $this->l('Description of my module.'); 
-  
- $this->confirmUninstall = $this->l('Are you sure you want to uninstall?'); 
-  
- if (!Configuration::get('MYMODULE_NAME')) 
- $this->warning = $this->l('No name provided'); 
- } 
-  
- public function install() 
- { 
- if (!parent::install()) 
- return false; 
- return true; 
- } 
-  
- public function uninstall() 
- { 
- if (!parent ::uninstall()) 
- return false; 
- return true; 
- } 
- } 
-?> 
-</code> 
- 
-Puede descargarse el archivo desde aquí. 
prestashop/crearmodulo.1427056903.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki