IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Réalisation d'un module personnalisé [PrestaShop]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 36
    Points
    36
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (parent::install() OR $this->registerHook('leftColumn'))
    Je pense que le souci vient d'ici, la condition va s'arrêter à parent::install() car la valeur est TRUE.

    Et donc l'autre commande ne va pas s'effectuer. Tu peux déjà essayer avec un "AND".

    Ensuite, si tu es en 1.4, pour ton CSS il vaut mieux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tools::addCSS($this->_path.'toncss.css');

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Salut,

    Effectivement, c'était ça, il ne passait pas dans la deuxième partie de la condition, j'aurais du y penser, c'est super logique...

    Eh mon gars, tu m'a sorti de la mouïse !!!

    Un grand merci, t'es un "killer" en Prestashop...

    Bien Cordialement,

    Mathieu

    Ps : Tu cherches pas du taf en tant qu'auto-entrepreneur, non ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 43
    Points : 36
    Points
    36
    Par défaut
    Oui je le suis

    Je suis surtout présent sur le Forum de Prestashop que je te conseille.
    Je t'ai aussi envoyé un Mp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb paramétrage module personnalisé
    Par FULGONI dans le forum SugarCRM
    Réponses: 0
    Dernier message: 31/05/2013, 17h00
  2. [Xoops] Réalisation d'un module, requête SQL/Formulaire
    Par OcB974 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 04/02/2013, 13h51
  3. [PrestaShop] Prestashop 1.5 module personnalisé.
    Par wyllos dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 05/01/2013, 20h50
  4. Réalisation d'un blog personnalisé
    Par Ashin dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 22/10/2007, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo