Panoramica

Questa pagina è una guida pratica per sviluppare un modulo PrestaShop (focus 1.7/8). L’obiettivo è mostrarti un percorso ripetibile: struttura del progetto, hook, template e configurazione.

1) Struttura minima del modulo

Crea una cartella in /modules, ad esempio pcdemomodule. Dentro, almeno: file principale del modulo, template e opzionalmente una config.

/modules/pcdemomodule/
  pcdemomodule.php
  logo.png
  config.xml
  views/templates/hook/home.tpl

2) File principale: classe Module

Il file principale deve chiamarsi come la cartella: pcdemomodule.php. La classe deve avere lo stesso nome in CamelCase: PcDemoModule.

<?php

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

class PcDemoModule extends Module
{
    public function __construct()
    {
        $this->name = 'pcdemomodule';
        $this->tab = 'front_office_features';
        $this->version = '1.0.0';
        $this->author = 'Autore';
        $this->need_instance = 0;
        $this->bootstrap = true;

        parent::__construct();

        $this->displayName = $this->l('PC Demo Module');
        $this->description = $this->l('Esempio: stampa un banner in homepage via hook.');
        $this->ps_versions_compliancy = ['min' => '1.7.0.0', 'max' => _PS_VERSION_];
    }

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

    public function hookDisplayHome($params)
    {
        $this->context->smarty->assign([
            'pcdemo_message' => 'Ciao! Questo contenuto arriva da un modulo PrestaShop.',
        ]);

        return $this->fetch('module:pcdemomodule/views/templates/hook/home.tpl');
    }
}

3) Template Smarty del modulo

Il template viene caricato con $this->fetch(...) e vive in views/templates. Qui puoi usare Smarty e classi CSS del tema.

{* views/templates/hook/home.tpl *}
<div class="card" style="margin: 18px 0;">
  <h3 style="margin: 0 0 8px;">Modulo PrestaShop</h3>
  <p style="margin: 0;">{$pcdemo_message|escape:'htmlall':'UTF-8'}</p>
</div>

4) Hook: dove “agganciarsi”

Il trucco per lavorare bene con PrestaShop è scegliere i punti giusti dove inserire contenuti. Alcuni hook comuni: displayHeader, displayHome, displayFooter, actionProductSave.

Per capire quali hook sono disponibili nel tema, si cerca nel template .tpl dove viene richiamato {hook h=\"...\"}.

5) Dettagli “da produzione”: cache, override, manutenzione

6) Esempio “modifiche codice” su un tema (approccio corretto)

Se devi personalizzare un tema, l’approccio consigliato è: child theme (se previsto) / override di template nel tema / asset ben organizzati. Evita di modificare core e moduli di terze parti direttamente.

Keyword: moduli prestashop, prestashop hook, smarty prestashop, sviluppo prestashop

Domande frequenti

Qual è la differenza tra modulo e override in PrestaShop?

Il modulo si aggancia a hook e incapsula funzionalità. L’override modifica classi core: è più fragile e va usato solo quando non esistono alternative pulite.

Dove metto i template Smarty del modulo?

In /views/templates/ (hook/front/admin). Per output in hook tipicamente: /views/templates/hook/.

Collegamenti interni