Este modelo irá ajudá-lo a criar um módulo básico prestashop 1.5 que você só precisa alterar:
módulo nome
guia nome
autor
descrição
da tabela nome
gancho nome
</> nome do
módulo de classe extends Module
{
// contém back Office html, $ this-> html. = ‘<tags> foo </tags>’ para exibir qualquer coisa …
private $ html;
//contains back Office errors to display, $this->errors.= 'warning, something's wrong<br/>' to display anything...
private $errors;
//contains back Office good message, $this->messages.= 'Congrats ! Your settings have been saved<br/>' to display anything...
private $messages;
//use id to fill forms after posted them
private $postForms;
function __construct() {
$this->name = 'module_name';
$this->tab = 'tab_name';
$this->version = 1;
$this->author = 'author';
parent::__construct();
$this->displayName = $this->l('module_name');
$this->description = $this->l('description');
$this->confirmUninstall = $this->l('Are you sure you want to delete your configuration ?');
}
function install() {
Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'table_name`;');
if (!Db::getInstance()->Execute('
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'table_name` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`id`))
ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8')
|| !Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'ludi_idols` (`id`, `name`, `description`) VALUES (1, "John Doe", "Da best customer ever")')
) return false;
if (!parent::install() || !$this->registerHook('hook_name'))
return false;
return true;
}
function uninstall() {
if (!parent::uninstall() || !Db::getInstance()->Execute('DROP TABLE `'._DB_PREFIX_.'table_name`;'))
return false;
return true;
}
public function getContent() {
if (Tools::isSubmit('submit') )
$this->_postDatas();
$this->showConfig();
return $this->_html;
}
//This function will display the admin module configuration pannel
private function showConfig(){
//used to get module infos from sql
$infos = $this->getInfos();
$this->_html .= '
<link rel="stylesheet" media="all" href="'.$this->_path.'style/style.css" type="text/css" />
<h2>'.$this->l('module_name').'</h2>
<form action="" id="sentences" method="post">
<fieldset>
<legend><img src="'.$this->_path.'logo.gif" alt="" title="" /> module_name</legend>
<p>Some stuffs to display</p>
<input type="submit" name="submit" value="'.$this->l('Submit').'"
</fieldset>
</form>';
}
//This function manage all $_POST Vars selected in BO and will display errors
private function _postDatas(){
if(isset($_POST['submit'])){
//What you'll do with $_POST vars
}
if ($this->errors != '') $this->_html .= $this->displayError($this->errors);
elseif ($this->messages != '') $this->_html .= $this->displayConfirmation($this->messages);
else $this->_html .= $this->displayConfirmation( $this->l('Configuration updated').'<br />');
}
//This function will catch all BO values
private function getInfos(){
$sql = 'SELECT id,name,description FROM '. _DB_PREFIX_ .'table_name ORDER BY id';
if($result = Db::getInstance()->ExecuteS($sql))
return($result);
}
//This is where you'll get and sort FO vars
private function displayFront(){
return $this->l('hello world !');
}
//the hook, to display FO
public function hookHome() {
global $smarty;
$smarty->assign(Array(
'foo' => $this->display_front()
));
return $this->display(__FILE__, 'module_name.tpl');
}
}
</>