Child pages
  • Creación de un módulo de PrestaShop

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Quizás el interés principal de un módulo es agregar funciones a PrestaShop sin tener que editar sus archivos principales, haciéndolo más fácil para realizar una actualización sin necesidad de transponer todos los cambios fundamentales.

Esa es la forma en que deben debe tratar de mantenerse alejado de los archivos centrales cuando construya un módulo, aunque esto puede resultar difícil de realizar en algunas situaciones...

...

Esto comprueba la existencia de una constante de PHP, y si no existe, abandona. El único propósito de esta prueba es evitar que los visitantes cargauen carguen este archivo directamente.

...

Code Block
$this->name = 'mymodule';
$this->tab = 'Test';
$this->version = 1.0;
$this->author = 'PrestaShop';

En esta Esta sección asigna unos cuantos atributos de la instancia de clase (this):

  • Un atributo 'name'. Este es un identificador interno, así que hágalo único, sin caracteres especiales o espacios, y en minúsculas.
  • Un atributo 'tab'. Este es el título del cuadro que deberá contener este módulo en la lista de módulos del back office de PrestaShop. Usted puede utilizar un nombre ya existente, como Products, Blocks or Stats, o uno personalizado, como lo hicimos aquí. En este último caso, un nuevo cuadro se ha creado con su título.
  • Número Un número de versión para el módulo, aparece en la lista de módulos.
  • Un atributo 'author'. Este se muestra en la lista de módulos de PrestaShop.

...

La bandera need_instance indica si se debe cargar la clase del módulo cuando se muestran los "Módulos", en la el back-office. Si se establece en 0, el módulo no cargará, por lo tanto gastará menos recursos para generar el módulo de página. Si sus módulos necesitan mostrar un mensaje de advertencia en la página "Módulos", entonces debe establecer este atributo en 1.

Code Block
parent::__construct();

Llamar al constructor del padre. Esto se debe realizar antes de cualquier uso del método $this->l() y después de la creación de $this->name.

...

En esta primera encarnación extremadamente simple, este método no es útil, ya que lo único que realiza es comprobar el valor devuelto por el método install() class de Módulo. Además, si no hubiéramos creado este método, el método superclase hubiera sido llamado en su lugar de todas formas, logrando que el resultado final sea idéntico.
Sin embargo, debemos mencionar que este método , ya que será muy útil una vez que tengamos que realizar las pruebas y acciones durante el proceso de instalación del módulo: crear cuadros tablas de SQL, copiar archivos, crear variables de configuración, etc.

Asimismo, el módulo debe contener un método uninstall() para contar con un proceso de desinstalación personalizado. Este método podría realizarse algo así como:

Code Block
public function uninstall()
  {
  if ( !parent::uninstall() )
    Db::getInstance()->Execute( 'DELETE FROM `' . _DB_PREFIX_ . 'mymodule`' );
  parent::uninstall();
  }

Para poner "el toque final" a este módulo básico, podemos agregar un icono, que se mostrará junto al nombre del módulo en la lista de módulos de back-office.
El archivo de icono debe respetar los siguientes requisitos:

  • imágenes 16*16.
  • llamado nombrado logo.gif.
  • colocado en la carpeta principal del módulo.

Puede encontrar un excelente conjunto de iconos gratuitus para elegir en el sitio web de FamFamFam..

Ahora que todos los fundamentos están en su lugar, coloque la carpeta del módulo en la carpeta /modules de su instalación de prueba de PrestaShop, abra PrestaShop, y en la pestaña "Módulos", bajo "Otros módulos", debería encontrar su módulo. Instálelo para ser capaz de manejarlo por el resto de esta guía.

...