Realizzare moduli per Prestashop Ecommerce

domenica, aprile 26, 2009 14:25 scritto da neryo

Sviluppare un modulo per la piattaforma Prestashop Ecommerce

Per chi non lo sapesse Prestashop è una piattaforma opensource per realizzare siti ecommerce. Questo prodotto abbastanza giovane, ha da poco superato la realease 1.0 e stà avendo parecchi consensi positivi nell’ambito delle soluzioni moderne per il commercio elettronico, tanto da essere preferibile in molti casi a Magento Ecommerce, quest’ultimo giudicato l’alternativa sostitutiva a osCommerce e Zen-cart.

I punti di forza di Prestashop sono la ricchezza di funzionalità pur garantendo un ottima facilità di utilizzo sia per chi gestisce il proprio negozio online sia per chi deve svilupparlo, oltre ad essere veloce, leggero, e facilmente integrabile, il tutto grazie ad un codice di ottima fattura, moderno e ben organizzato.

Questo post non vuole essere però una introduzione a Prestashop, che in questi ultimi mesi è stato discusso ampliamente e recensito in molti altri siti, ma si vuole illustrare come sia semplice realizzare la base di un modulo personalizzato che si potrà installare sulla piattaforma in questione.

La procedura per la creazione di un modulo è molto semplice:

I moduli stanno tutti dentro alla cartella /modules, alcuni per velocizzare la creazione di un nuovo modulo copiano direttamente una cartella di un altro modulo poi iniziano a personalizzarlo per crearsi il proprio.. ma in questo esempio vediamo come crearlo from scratch.

  1. Creazione della cartella mymodule/ dentro a /modules
  2. Creazione del file vista mymodule.tpl dentro a /modules/mymodule/
  3. Creazione della classe mymodule.php sempre dentro a /modules/mymodule/

Classe mymodule.php

In questo esempio di codice sottostante si vuole mostrare come realizzare una semplice classe Mymodule, che estende la classe padre module di prestashop, ereditandone le caratteristiche fondamentali. Tramite il costrutture vengono inizializzate le variabili necessarie, e attraverso il metodo install si puo’ registrare il modulo nel Hook di default, in questo caso il Left, visualizzando il contenuto della vista tramite la chiamata a hookLeftColumn.

  1. class Mymodule extends Module
  2. {
  3.         function __construct()
  4.         {
  5.                 $this->name = ‘mymodule’;
  6.                 $this->tab = ‘Blocks’;
  7.                 $this->version = 0.l;
  8.  
  9.                 parent::__construct(); // The parent construct is required for translations
  10.  
  11.                 $this->page = basename(__FILE__, ‘.php’);
  12.                 $this->displayName = $this->l(‘Block mymodule’);
  13.                 $this->description = $this->l(‘Add a mymodule block’);
  14.         }
  15.  
  16.         function install()
  17.         {
  18.                 if (!parent::install())
  19.                         return false;
  20.                 if (!$this->registerHook(‘leftColumn’))
  21.                         return false;
  22.                 return true;
  23.         }
  24.  
  25.         /**
  26.         * Returns module content
  27.         *
  28.         * @param array $params Parameters
  29.         * @return string Content
  30.         */
  31.         function hookLeftColumn($params)
  32.         {
  33.            global $smarty;
  34.            $myvariable = ‘this is my var’;
  35.            $smarty->assign(‘myvariable’, $myvariable);
  36.            return $this->display(__FILE__, ‘mymodule.tpl’);
  37.         }
  38.  
  39. }

Come si può notare all’interno del metodo hookLeftColumn posso passare le variabili elaborate nella classe alle viste per poi visualizzarle. All’interno del modulo posso fare riferimento chiaramente a tutte le classi disponibili del framework di prestashop.. As esempio potrei fare una semplice query su una tabella del database:

  1.         function hookLeftColumn($params)
  2.         {
  3.            global $smarty;
  4.  
  5.            $myquery = Db::getInstance()->Execute(‘SELECT * FROM mytable’);
  6.            $smarty->assign(‘myresult’, $myquery);
  7.  
  8.            return $this->display(__FILE__, ‘mymodule.tpl’);
  9.         }

semplice vero?

Creare la vista mymodule.tpl
Un semplice esempio di vista che verrà richiamata dalla precedente classe e sarà visualizzata nel parte left del nostro eshop.

  1.  
  2. <div class="mymoduleblock">
  3. <h4>{l s=‘My first module’ mod=‘mymodule’}</h4>
  4. <div class="block_content" style="padding:0px;">
  5.         My First Prestashop module, {myvariable}
  6.         <a href="http://www.neryo.com/">Neryo consulenza software</a></div>
  7. </div>

Come si può notare Prestashop utilizza smarty come motore di template, quindi abbiamo a disposizione tutte le sue funzionalità per fare cicli e manipolazioni.. e inoltre attraverso il quale si possono definire alcuni stringhe di codice, es {l s=’My first module’ mod=’mymodule’} all interno delle viste, che poi potranno essere tradotti dal sistema di traduzione presente nella piattaforma, generando vari files all’intenro della cartella del modulo (es. it.php, fr.php).

All’interno del modulo possiamo usare ad esempio la variabile smarty {$module_dir} per far riferimento alla directory di questo modulo e quindi facilitarci i riferimenti all’interno di esso.

Questo Mymodule chiaramente non fa molto, visualizza questo blocco di codice html nella colonna di sinistra del eshop… però è il punto di partenza che ci permette di capire come funziona il sistema e sviluppare qualcosa di complesso e di personalizzato. Ci basterà quindi dare un occhiata agli altri moduli e prendere spunto.

Riferimenti

http://www.prestashop.com/forums/viewthread/730/modules/how_to_create_a_new_module_any_kind
http://marghoobsuleman.com/blogs/how-to-create-prestashop-modules

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (3 voti, media: 4,33 di 5)
Loading ... Loading ...

Lascia una commento

(*) campi obbligatori

Spam protection by WP Captcha-Free