Crear nuestro primer Hello World

Crear nuestro primer Hello World

Sin valoraciones

Vamos a empezar creando nuestro módulo de Prestashop 1.7 y a escribir a un hook el típico Hello World para seguir con el módulo más adelante

Las funciones principales

Lo primero de todo que tenemos que hacer es crear las funciones de __construct, install y uninstall

Función __construct()

En ella se definen los parámetros y variables públicas que va a tener el módulo. Tales como el nombre, la descripción, la versión…

Es imprescindible. Sin esta función no hay módulo.

Función install()

Es la función que usa prestashop para instalar el módulo. Aquí pondremos todo lo que sea necesario para instalar el módulo.

Función uninstall()

Es lo mismo que la función install() pero para desinstalarlo.

Empezamos a programar

Si has utilizado la herramienta de Validación de Prestashop para crear la estructura de tu módulo, ya tendrás creadas las funciones principales.

Ahora tocará vaciar las funciones de install y uninstall para que hagan lo que queramos.

Nuestro objetivo es mostrar un “Hello World” en un hook de prestashop cualquiera. Así que hemos cogido de ejemplo el hook “displayAfterProductThumbs” que se muestra debajo de las miniaturas del producto.

Función install()

Lo que haremos será añadir la acción de registerhook(‘displayAfterProductThumbs’). Quedaría así:

public function install()
{
    return parent::install() && $this->registerHook('displayAfterProductThumbs');
}

Ahora cuando el módulo se instale, automáticamente se va a registrar en el hook ‘displayAfterProductThumbs’. Así que ahora tendremos que crear la función de ejecución del hook.

Es decir, lo que prestashop hace cuando abre una página es:

  • Abrir archivos de la plantilla que toque ahora mismo
  • Localizar todos los hooks que hay
  • Para cada hook mira qué módulos hay instalados
  • Para cada módulo busca su función dentro del módulo para ejecutarla

Así que si registramos un hook X y no le decimos qué tiene que hacer en ese hook, no se va a ejectuar nunca.

Entonces, creamos la función hookNombreDelHook()

public function hookDisplayAfterProductThumbs($params)
{
    echo 'Hello World';
}

Esta funcion que se llama hookDisplayAfterProductThumbs es la que se va a ejecutar cuando Prestashop ejecute ese hook. En este caso vamos a devolver un echo de ‘Hello Word’.

Código completo

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class UriModuleTest extends Module
{
    protected $config_form = false;

    public function __construct()
    {
        $this->name = 'urimoduletest';
        $this->tab = 'administration';
        $this->version = '1.0.0';
        $this->author = 'urimarti';
        $this->need_instance = 1;
        $this->bootstrap = true;
        parent::__construct();
        $this->displayName = $this->l('Módulo de Test');
        $this->description = $this->l('Descripción del Módulo de Test');
        $this->confirmUninstall = $this->l('¿Estás segur@ que quieres desinstalarlo?');
        $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);
    }

    public function install()
    {
        return parent::install() && $this->registerHook('displayAfterProductThumbs');
    }

    public function uninstall()
    {
        return parent::uninstall();
    }

    public function hookDisplayAfterProductThumbs()
    {
        echo 'Hello World';
    }
}

Valoración de la Información

1 comentario

  1. Hola Uri

    La formació que estàs fent és molt bona però hi ha un problema que la desvirtua. Et comento.
    Les imatges que hi ha als vídeos de Youtube no son visibles. M’he quedat al vídeo “https://www.youtube.com/watch?v=TAtzY-dFx30” i no puc seguir per què no soc capàs de seguir el teu ritme sense poder veure el que escrius.
    He buscat el vídeo a la teva web per veure el detall “escrit” de la construcció del mòdul però no l’he trobat.
    Permetem l’atreviment de demanar-te si pots penjar o enviar-me els fitxers del curs per poder-los seguir i anar completant tot el que fas.
    És una llàstima no poder aprofitar tota la feina i esforç que hi dediques.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *