Passa ai contenuti principali

Develop Prestashop Module - puntata 2 creazione di un modulo prestashop


abbiamo sviluppato la base del modulo Prestashop ma in se ha senso se mostra qualcosa.
riprendiamo il filo dal precedete post
cosa vogliamo fare con il modulo? bhè vogliamo mostrare un classico hello world! nooo.. mostreremo un iframe con un video di youtube






iniziamo

creazione della pagina iframe

per prima cosa aggiungiamo delle cartelle al nostro modulo
    <root>
         |--- modules
                   |----- miomodulo
                           |----- views
                                    |--------- templates
                                                |----- front
all'interno della cartella front creiamo il file content.tpl  e aggiungiamo il seguente codice html:
<iframe width="560" height="315" src="//www.youtube.com/embed/nrrice_rREU" frameborder="0" allowfullscreen></iframe>

ora però dobbiamo agganciare il nostro contenuto al modulo, ossia dobbiamo dire al modulo di mostrare il contenuto

per poterlo fare si deve creare delle nuove cartelle nel modulo:


    <root>
         |--- modules
                   |----- miomodulo
                              |------- controllers
                                           |----- front

file controller

dentro la cartella front creiamo il file display.php che è così formato:
<?php

//il nome della calsse del template è farmato da Nome Modulo+Controller+ModuleFrontController
// la classe deve sempre estendere ModuleFrontController

class MiomoduloDisplayModuleFrontController extends ModuleFrontController
{
   //inizializzazione del modulo
    public function init()
    {
        $this->page_name = 'miomodulo';
        parent::init();
    }

   //qui si effettua il collegamento con il contenuto del template
    public function initContent(){

        parent::initContent();

        $this->setTemplate('content.tpl');  //<-- il template precedentemente creato

    }
}

ma funziona?

per testare il suo funzionamento è sufficiente richiamare il link:
  index.php?fc=module&module=miomodulo&controller=display

ora tocca a voi.
alla prossima puntata per agganciare il modulo al template

Commenti

Post popolari in questo blog

install language on osTicket

this simple guide aims you to install and configure your language on osTicket i written this guide based on forum post http://osticket.com/forum/discussion/76252/installing-language-pack

Develop Prestashop Module - puntata 1 creazione di un modulo prestashop

la creazione o lo sviluppo di un modulo   Prestashop funziona sia per il front-end che il back-end del sistema la struttura di un modulo è fissa che si compone con una serie di step: file di configurazione file di installazione files controllers per l'amministrazione files controllers per il frontend files delle view creazione dell'infrastruttura base del modulo per Frontend all'interno della cartella modules di prestashop creare una cartella  esempio     <root>          |---modules                    |-----miomodulo naturalmente il nome del modulo lo potete personalizzare all'interno della cartella miomodulo  creare i seguenti file config.xml index.php miomodulo .php   <-- inserite il vostro nome modulo al posto di mio modulo index.php il codice di index php , file che dovrà essere inserito in ogni cartella : <?php /* ...

Prestashop: override PayPal about.tpl

Abbiamo incontrato una difficoltà nell'override del template "about.tpl" di PayPal su Prestashop. Abbiamo cercato sul forge di Prestashop e abbiamo trovato questo bug . Ora il consiglio che viene dato è quello di utilizzare il "core display method". Così dopo un po' di debug l'abbiamo fatto. Per abilitare all'override l'"about.tpl" di Prestashop è necessario modificare il file "modules/paypal/backaward_compatibility/Display.php": <?php /**  * Class allow to display tpl on the FO  */ class BWDisplay extends FrontController { // Assign template, on 1.4 create it else assign for 1.5 public function setTemplate($template) { if (_PS_VERSION_ >= '1.5') parent::setTemplate($template); else $this->template = $template; } // Overload displayContent for 1.4 public function displayContent() { parent::displayContent();                 echo Module::display('paypal', ...