dutom007 Posted July 2, 2010 Share Posted July 2, 2010 Bonjour,Je voudrais m'initier à la création de module sous prestashop. Pour joindre utilité et facilité, je voudrais créer un module qui permet de rajouter une icones facebook et twitter sur le site.Le lien de chaque icône étant configurable dans la config du module.Je suis déjà bloqué lors de l'installation du module. L'installation se fait sans avertissement d'erreur mais ma TABLE n'est pas créé dans la base...Voici le code des parties en cause: class BlockFanPage extends Module { function __construct() { $this->name = 'blockfanpage'; $this->tab = '****'; $this->version = 0.1; parent::__construct(); // The parent construct is required for translations $this->page = basename(__FILE__, '.php'); $this->displayName = $this->l('Block Facebook And Twitter Link'); $this->description = $this->l('Add Facebook and Twitter Link Fan Page'); } function install() { if (!parent::install()) return false; if (!$this->registerHook('rightColumn') OR !$this->registerHook('leftColumn')) return false; //Initialisation de la DB if (!$this->installDB()) return false; return true; } public function installDB () { $create = "CREATE TABLE IF NOT EXISTS "._DB_PREFIX_."block_fanpage` ( `id` int(11) NOT NULL auto_increment, `nom` varchar(50) NOT NULL, `link` varchar(250) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1" ; $insert = "INSERT INTO "._DB_PREFIX_."block_fanpage` (`id`, `nom`, `link`) VALUES (1, 'facebook', ''), (2, 'twitter', '')"; Db::getInstance()->Execute($create); Db::getInstance()->Execute($insert); return true; } /** *Configuration * */ public function getContent () { // Instructions ici …. } /** * Returns module content * * @param array $params Parameters * @return string Content */ function hookRightColumn($params) { return $this->display(__FILE__, 'blockfanpage.tpl'); } function hookLeftColumn($params) { return $this->hookRightColumn($params); } } Difficile de savoir ce qui se passe sans débugeur...merci de votre aide Link to comment Share on other sites More sharing options...
jherbaux Posted July 5, 2010 Share Posted July 5, 2010 sans m'être attardé sur le code, passes tu pars la function installDB ?met un exit('test'); pour en être sur Link to comment Share on other sites More sharing options...
Pierre-Yves Posted July 5, 2010 Share Posted July 5, 2010 Tu as des erreurs dans tes requêtes MySQL. Et vu que tu ne teste pas le résultat de tes requête, ta fonction "installDB" renvoie toujours "true".Essayes avec ceci : $create = "CREATE TABLE IF NOT EXISTS `"._DB_PREFIX_."block_fanpage` ( `id` int(11) NOT NULL auto_increment, `nom` varchar(50) NOT NULL, `link` varchar(250) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1" ; $insert = "INSERT INTO `"._DB_PREFIX_."block_fanpage` (`id`, `nom`, `link`) VALUES (1, 'facebook', ''), (2, 'twitter', '')"; Link to comment Share on other sites More sharing options...
dutom007 Posted July 5, 2010 Author Share Posted July 5, 2010 Tu as des erreurs dans tes requêtes MySQL. Et vu que tu ne teste pas le résultat de tes requête, ta fonction "installDB" renvoie toujours "true".Essayes avec ceci : $create = "CREATE TABLE IF NOT EXISTS `"._DB_PREFIX_."block_fanpage` ( `id` int(11) NOT NULL auto_increment, `nom` varchar(50) NOT NULL, `link` varchar(250) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1" ; $insert = "INSERT INTO `"._DB_PREFIX_."block_fanpage` (`id`, `nom`, `link`) VALUES (1, 'facebook', ''), (2, 'twitter', '')"; Merci certaines ` étaient passé à la trappe.Comment tester que la requete soit bonne ? Link to comment Share on other sites More sharing options...
dutom007 Posted July 6, 2010 Author Share Posted July 6, 2010 Grâce à vous j'ai pu faire mon premier module.N'hésitez pas à donner vos remarque Link to comment Share on other sites More sharing options...
Pierre-Yves Posted July 6, 2010 Share Posted July 6, 2010 Moi quand je crée une requête, j'effectue d'abord des tests sur PhpMyAdmin avant de la mettre dans mon code PHP.Content d'avoir pu t'aider. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now