Herramientas de usuario

Herramientas del sitio


prestashop:crearmodulo

¡Esta es una revisión vieja del documento!


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 página de desarrollo oficial de prestashop. Las normas de edición de código para prestashop pueden verse en la 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:

  1. nombre_del_modulo.php: Archivo principal de funcionamiento del módulo
  2. config.xml: Archivo de configuración de caché. Si no existe, la crea prestashop de forma automática.
  3. logo.png: Icono del módulo. Debe tener un tamaño de 32×32 píxeles.

Puede verse una tabla con un sistema de archivos y directorios más completo en la 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:

if (!defined('_PS_VERSION_'))
	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 “padre” de prestashop Module para poder disponer de las características básicas de cualquier módulo de prestashop:

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
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//
	}
 
}

Constructor

Para ampliar la información se puede recurrir a la 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.

$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

Las posibles secciones en las que puede aparecer el módulo pueden verse en la tabla de la página de desarrollo de prestashop.

Ahora debemos llamar a la clase constructor del método padre:

parent::__construct();

Lo siguiente definir literales a mostrar en diferentes partes del módulo:

$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

Instalador

Para ampliar información, ver la 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.

// Función mínima de instalación
public function install()
{
	if (!parent::install())
		return false;
	return true;
}

Desinstalador

Para ampliar información ver la 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..

// Función mínima de desinstalación
public function uninstall()
{
	if (!parent ::uninstall())
		return false;
	return true;
}

Objeto //Configuration

Objeto //Shop//

prestashop/crearmodulo.1426872839.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki