Jump to content
utilisateurlambda

Créer un block dans la page "mon compte"

Recommended Posts

Bonjour, je suis en phase de développement d'un module prestashop. Cependant, la gestion des hook reste trop floue pour moi. J'aimerais afficher un block dans la page "mon compte" de prestashop pour l'utilisateur, cependant, je n'arrive pas à l'afficher.

Dans le corps de mon module, j'ai lancé l'installation du hook désirer :


public function install() {
/* .... */
return parent::install() && $this->registerHook('DisplayMyAccountBlock');
    return true;
/* ... */
}

Et j'ai bien établi ma fonction :
public function hookDisplayMyAccountBlock($params)
    {
      return $this->display(__FILE__,'displayMyAccountBlock.tpl');
    }

Qui renvoie donc ma page view/template/hook/displayMyAccountBlock.tpl :
<a class="col-lg-4 col-md-6 col-sm-6 col-xs-12" id="upload-link" href="http://localhost/test2-prestashop/link">
    <span class="link-item">
          Uploads
    </span>
</a>

Cependant, je n'ai aucun block qui s'affiche. Qu'ais-je fait de mauvais ? Qu'ais-je oublié ?
Je rappelle donc que je ne suis pas un expert, de plus je suis nouveau sous prestashop. Merci de vos réponses ! :)

Edited by rygegor (see edit history)

Share this post


Link to post
Share on other sites

Bonjour.

Tu peux d'inspirer du module blockwishlist, il utilise ce hook.

  • Thanks 1

Share this post


Link to post
Share on other sites
il y a 8 minutes, BeComWeb a dit :

Bonjour.

Tu peux d'inspirer du module blockwishlist, il utilise ce hook.

Merci bien, je vais de ce pas étudier ça de plus près :)

Share this post


Link to post
Share on other sites

J'ai donc pris exemple sur le module que BeComWeb m'a conseiller d'exploiter, cependant, je dois très mal utiliser les hook, car je n'arrive toujours pas à afficher mon block :(

Je ne demande pas une solution miracle, mais je suis un peut coincer. J'ai lu et relu pas mal de docs, mais je reste au même point ou je n'arrive pas à afficher ce block pour les utilisateurs dans la partie "mon compte" :(

Share this post


Link to post
Share on other sites

Je suis désolé, mais ce lien ne m'a pas aidé, j'ai déjà trouvé une documentation sur la création et l'utilisation d'un hook. Je pense que je n'arrive pas à bien l'appliquer.

Share this post


Link to post
Share on other sites

Tu réinitialises bien ton module quand tu lui ajoutes un hook ?

Tu respectes bien la casse dans le nom de tes fonctions ?

Share this post


Link to post
Share on other sites

Autres points à vérifier : ton template s'appelle bien displayMyAccountBlock.tpl et il est bien en racine du module ?

Share this post


Link to post
Share on other sites

Oui je réinstalle mon module après chaque nouveau hook

comment-ça, respecter les cases dans le nom de ma fonction ?

Mon template s'appelle bien displayMyAccountBlock.tpl, cependant, il se trouve dans racine/templates/hook/displayMaAccountBlock.tpl

Share this post


Link to post
Share on other sites
42 minutes ago, rygegor said:

Mon template s'appelle bien displayMyAccountBlock.tpl, cependant, il se trouve dans racine/templates/hook/displayMaAccountBlock.tpl

 

Bin le module risque pas de te renvoyer le contenu du template alors... <_<

Essaye avec ça :

return $this->display(__FILE__,'templates/hook/displayMyAccountBlock.tpl');

 

Share this post


Link to post
Share on other sites
Citation

return $this->display(__FILE__,'templates/hook/displayMyAccountBlock.tpl');

J'ai oublié de le réécrire lorsque j'ai donné mon code, mais le chemin est déjà correctement mis dans mon code :wacko:

Je viens de remarquer que mon hook ne s'installe pas, Lorsque je suis dans la partie back-office, Apparence-possition, mon module n'apparaît pas. Donc je présume que mon hook ne s'installe pas et que mon erreur proviens sûrement de là ? Qu'en pensez-vous ?

Share this post


Link to post
Share on other sites

Déjà dans la fonction d'install c'est $this->registerHook('displayMyAccountBlock').

Le "d" est en minuscule.

Ensuite tu as essayé de vider le cache après avoir réinitialisé le module ?

Et si ça ne fonctionne pas, essaye d'installer blockwishlist. S'il ne s'affiche pas non plus c'est peut-être que le hook est absent du template my-account.tpl (celui du thème).

Share this post


Link to post
Share on other sites
Le 24/03/2018 à 11:23 AM, BeComWeb a dit :

Déjà dans la fonction d'install c'est $this->registerHook('displayMyAccountBlock').

Le "d" est en minuscule.

Ensuite tu as essayé de vider le cache après avoir réinitialisé le module ?

Et si ça ne fonctionne pas, essaye d'installer blockwishlist. S'il ne s'affiche pas non plus c'est peut-être que le hook est absent du template my-account.tpl (celui du thème).

Malheureusement, je ne peu pas installer d'installer "blockwishlist", c'est un module pour la version 1.6, je suis sous prestashop 1.7 :wacko:
Oui, je vide le cache à chaque tentative de réinstallation :D
Comment ça le hook serait absent du template my-account.tpl ?

Edited by rygegor (see edit history)

Share this post


Link to post
Share on other sites

C'est bon, tout fonctionne, j'ai repris une base vide ou j'ai seulement fait la gestion de mon hook et tout à correctement fonctionner, il s'affiche.

Share this post


Link to post
Share on other sites

Si tu avais précisé depuis le début que tu utilisais Prestashop 1.7...

Le hook a été renommé en "displayCustomerAccount" dans cette version : voir ici.

Share this post


Link to post
Share on other sites

J'avais déjà vu que ça avait changer le nom, j'avais bien complété mon code comme ceci :

        public function hookDisplayCustomerAccount($params){
                   return $this->display(__FILE__,'fichier.tpl');
        }

        public function hookDisplayMyAccountBlock($params){
                  return $this->hookDisplayCustomerAccount($params);
        }

Mais il m'a simplement fallu repasser par une base vide de mon module. Au final, je n'ai pas compris d'où venait l'erreur, car j'ai laissé mon code tel quel et ça à fonctionner. La magie peut-être :D

Edited by rygegor (see edit history)

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More