Jump to content

Premier Dev de Module


Recommended Posts

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

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

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

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...