Jump to content

Il mio primo modulo


disarci

Recommended Posts

Ciao a tutti riassumo come ho creato il mio primo modulo (in realta' non e' il prima ma l'unico che possa servire anche ad altri)

1) Ho creato una sottocartella in modules e l'ho chiamata budgetplan
2) Poi ho creato un file php con il nome del modulo (budgetplan.php) che contenga ad esempio:

[color=green]<?php
class budgetplan extends Module
{
   function __construct()
   {
       $this->name = 'budgetplan';
       $this->tab = 'Blocks';
       $this->version = 0.2;
       parent::__construct(); /* The parent construct is required for translations */
       $this->page = basename(__FILE__, '.php');
       $this->displayName = $this->l('Budget plan print');
       $this->description = $this->l('Print Budget Plan from the cart');        
   }
function install()
   {
       if (!parent::install() OR !$this->registerHook('shoppingCart') OR !$this->registerHook('orderConfirmation'))
           return false;
       return true;
   }
function hookShoppingCart($params)
   {
       global $smarty;
       $smarty->assign('ENT_QUOTES', ENT_QUOTES);
       return $this->display(__FILE__, 'budgetplan.tpl');
   }
}
?>
[/color]


spiegazioni:

* class budgetplan extends Module ---un nome univoco che e' caricato come nome del modulo creato nel BO
* $this->name = 'budgetplan'; ---idem
* if (!parent::install() OR !$this->registerHook('shoppingCart') ---questa e' la parte noiosa, devi decidere in che posizione andra' il tuo modulo! - a fine post l'elenco degli HOOK
* function hookShoppingCart($params) ---devi creare una funsioni che richiami il tuo template nella posizione dove hai scelto di installare il modulo in questo caso: shoppingCart
* return $this->display(__FILE__, 'budgetplan.tpl'); ---devi scegliere il nome del file templates che verra' inserito nel FE


3) Ho creato il file templates (budgetplan.tpl) che contenga il vero codice che si visualizzera'
In questo caso ho deciso di richiamare una funzione javascript gia' fatta di stampa che mi stampi il carrello:

>[color=green]{include file=$tpl_dir./errors.tpl}
</pre>
<ul>
{l s='Print Cart as Budget Plan'}
</ul>
<br>[/



4) ho creato un'immaginina 60x60 in gif e chiamata logo.gif sempre nella stessa cartella che visualizzi l'icona nel BO

Allego il modulo zippato.
su un dominio a caso visti i problemi di upload
www.planete-i.fr/budgetplan.zip


ELENCO DEGLI HOOK utilizzabili. Top, Header, rightColumn e leftColumn sono quelli tipici

1. payment
2. newOrder
3. paymentConfirm
4. paymentReturn
5. updateQuantity
6. rightColumn
7. leftColumn
8. home
9. header
10. cart
11. authentication
12. addproduct
13. updateproduct
14. top
15. extra
16. deleteproduct
17. productfooter
18. invoice
19. updateOrderStatus
20. adminOrder
21. footer
22. PDFInvoice
23. adminCustomers
24. orderConfirmation
25. createAccount
26. customerAccount
27. orderSlip
28. productTab
29. productTabContent
30. shoppingCart

budgetplan.zip

  • Like 1
Link to comment
Share on other sites

Se a qualcuno serve il modulo per inserire skype, come avevo già detto, posso darlo senza problemi.
Non l'ho messo sul sito perchè avevo chiesto se a qualcuno interessava ma nessuno si è fatto avanti......


Vuoi vedere se interessa? Mettilo nel forum e conta i download ;-)

a me interessa molto!

-------------------------------------------------------
P.S: Bravo disarci! ottimo lavoro!
Link to comment
Share on other sites

Se a qualcuno serve il modulo per inserire skype, come avevo già detto, posso darlo senza problemi.
Non l'ho messo sul sito perchè avevo chiesto se a qualcuno interessava ma nessuno si è fatto avanti......


Facciamo come fanno sul forum inglese: fai un topic dal titolo: modulo skype [v 1.0]

se posti un altra versione cambi il titolo in

modulo skype [v 1.0] [v 1.1]
Link to comment
Share on other sites

Aggiungo qualche cosina carina alle indicazioni di disarci

Conferma della disinstallazione del modulo

Se dopo $this->version ... aggiungete le tre righe


$this->error = false;
$this->valid = false;
$this->confirmUninstall = $this->l('Are you sure you want to delete all votes?');


Vi chiede conferma della disinstallazione utilizzando la traduzione nella lingua corrente del messaggio "Are you sure you want to delete all votes?"

---------------------------------------
Creare una tabella nella funzione Install e disinnstallarla con unistall

    function install()
    {
        if (parent::install() == false OR $this->registerHook('leftColumn') == false)
             return false;

       /**
       *    Create the table to store votes
       */
       $db = Db::getInstance();

       $query= "DROP TABLE IF EXISTS `"._DB_PREFIX_."vote`";
       if( !$db->Execute($query) ) return false;

       $query= "CREATE TABLE `"._DB_PREFIX_."vote` (
                   `id_vote` SMALLINT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
                   `id_customer` SMALLINT( 10 ) UNSIGNED NOT NULL ,
                   `id_product` SMALLINT( 10 ) UNSIGNED NOT NULL ,
                   `vote1` INT( 2 )  NULL DEFAULT '0' ,
                   `vote2` INT( 2 )  NULL DEFAULT '0' ,
                   `vote3` INT( 2 )  NULL DEFAULT '0' ,
                   `vote4` INT( 2 )  NULL DEFAULT '0' ,
                   `vote5` INT( 2 )  NULL DEFAULT '0' ,
                   `TotVote` INT( 3 )  NULL DEFAULT '0' ,
                   PRIMARY KEY ( `id_vote` )
                   ) ENGINE=MyISAM DEFAULT CHARSET=utf8";

       if( !$db->Execute($query) ) return false;

       return true;
         }
   }



    public function uninstall()
    {
         if (!parent::uninstall()) return false;
         if(!Db::getInstance()->Execute('DROP TABLE '._DB_PREFIX_.'vote')) return false;
      }



_DB_PREFIX_ è una costante che indica il prefisso da voi scelto in fase di installazione

--------------------

Utilizzare variabili memorizzate nella tabella config

Nel metodo install

   if( !Configuration::updateValue('VOTE_NUM_ROWS',   5   ) ) return false;



Questa riga aggiunge nella tabella config una riga con name='VOTE_NUM_ROWS' e value=5

Ricordatevi di disinstallarla nel metodo unistall con

    if( !Configuration::deleteByName('VOTE_NUM_ROWS')) return false;



Per utilizzarla nel modulo:

   $nm=Configuration::get('VOTE_NUM_ROWS');



-------------------------------------

Leggere l'attuale ID dell'utente connesso


   /* get current id_customer */
       $cookie = new Cookie('ps');
       $id_customer=intval($cookie->id_customer);

Link to comment
Share on other sites

Bella discussione questa qui, gran bel lavoro!
Tra l'altro gli allegati sul forum funzionano di nuovo e, interessante da sapere, sembra anche che con un po' di fortuna la comunità italiana disporrà presto di un forum un po' meglio strutturato di quello che abbiamo adesso.

Ciao!

Link to comment
Share on other sites

Bella discussione questa qui, gran bel lavoro!
Tra l'altro gli allegati sul forum funzionano di nuovo e, interessante da sapere, sembra anche che con un po' di fortuna la comunità italiana disporrà presto di un forum un po' meglio strutturato di quello che abbiamo adesso.

Ciao!


si molto interessante....direi che la devi spostare.....;) nella sezione di competenza...
auguri per la moderazione ;););)
Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...