Réalisation d'un module personnalisé
Bonjour,
Développeur PHP chevronné, je suis un "newbie" en prestashop...
J'ai commencé à développer un module basique pour appréhender la logique de ce CMS E-commerce, basé sur cette architecture :
1. Module créant une table à l'installation (nommé "ps_mod_clock")
2. Module affichant l'heure sur le front-office
3. Module sauvegardant en base l'heure affichée sur un clic
4. Module supprimant la table à la désinstallation
Pour l'instant, je n'arrive pas à afficher sur le front-office ma template, quelques idées, je tourne le problème en boucle depuis hier soir et ça commence à me prendre le chou grave...
Le code du controleur du module :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
class Clock extends Module
{
public function __construct()
{
$this->name = 'clock';
$this->tab = 'leftColumn';
$this->version = '0.1';
$this->author = 'Mathieu33460';
parent::__construct();
$this->page = basename(__FILE__, '.php');
$this->displayName = $this->l('Clock by Mathieu');
$this->description = $this->l('Display a time in the left column of your front office.');
$this->confirmUninstall = $this->l('Are you sure you want to delete clock ?');
}
public function install()
{
if (parent::install() OR $this->registerHook('leftColumn'))
{
$sql = "CREATE TABLE `prestashop`.`ps_mod_clock` (
`clock_id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`clock_datetime` DATETIME NOT NULL ,
`real_datetime` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ,
`customer_id` INT( 10 ) NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;";
DB::getInstance()->Execute($sql);
return true;
}
return false;
}
public function getContent()
{
}
public function uninstall()
{
if (parent::uninstall())
{
$sql = "DROP TABLE `ps_mod_clock";
DB::getInstance()->Execute($sql);
return true;
}
return false;
}
public function hookLeftColumn($params)
{
return '<div><h4>Test</h4></div>';
#return $this->display(__FILE__, 'clock.tpl');
}
} |
Le code de la vue smarty :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<style type="text/css">@import url({$base_dir}modules/clock/css/clock_styles.css);</style>
<!-- Block clock -->
<div id="clock_block_left" class="block block_clock">
<h4>{l s='Clock' mod='clock'}</h4>
<div class="block_clock_content">
<div class="block_clock_clock">
</div>
<div class="block_save_link">
<a href="modules/clock/classes/clock.function.php" title="{l s='Save time' mod='clock'}"> {l s='Save time' mod='clock'}</a>
</div>
</div>
</div>
<!-- /Block clock --> |
Cordialement,
Mathieu