Come creare una nuova pagina utilizzando il front controller del modulo

Quindi vuoi creare una nuova pagina. È davvero facile, devi solo scrivere qualche riga di codice.

Questo tutorial è per PrestaShop 1.6. Le altre versioni sono simili ma potrebbero differire leggermente.

Supponiamo di voler creare un controller “Test” per un modulo “MyModule“. Cambia “Test” e “MyModule” con i tuoi valori effettivi.

  1. Per prima cosa devi navigare nella directory del tuo modulo.
  2. Crea lì una nuova directory “controllers“. E all’interno di questa crea una directory “front“.
    Quindi la struttura dei file dovrebbe essere “mymodule/controllers/front/”
  3. In quella directory “front” crea un nuovo file PHP: test.php
  4. Incolla il seguente codice in quel file:
    1
    2
    3
    class MyModuleTestModuleFrontController extends ModuleFrontController
    {
    }

    Come puoi vedere, la classe del controller estende ModuleFrontController e dovrebbe chiamarsi come <nome_modulo><nome_controller>ModuleFrontController.

Tutto fatto!

Puoi visualizzare la tua nuova pagina al seguente url:
tuo_sito/index.php?fc=module&module=mymodule&controller=test
OPPURE
tuo_sito/module/mymodule/test
Vai nel tuo back office alla scheda Preferenze > SEO & URL. Lì puoi fare clic su “Aggiungi una nuova pagina” e impostare un url personalizzato comprensibile per la tua pagina.

Ora, puoi personalizzare la nuova pagina

Ad esempio, utilizza la variabile display_column_left per controllare la visualizzazione della colonna di sinistra.

1
2
3
4
class MyModuleTestModuleFrontController extends ModuleFrontController
{
    public $display_column_left = false;
}

Aggiungiamo un po’ di contenuto alla nuova pagina

Crea un nuovo file template: “mymodule/views/templates/front/test.tpl” e inserisci lì del testo.
Utilizza quel template:

1
2
3
4
5
6
7
8
9
class MyModuleTestModuleFrontController extends ModuleFrontController
{
    public function initContent()
    {
        parent::initContent();

        $this->setTemplate('test.tpl');
    }
}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *