Jump to content

Placer le bloc Liste de cadeaux dans la header


Recommended Posts

Bonjour,

Je viens d'installer la version 1.5.4.1 de Prestashop pour faire une site vitrince/Commerce mais sans vente directe. Les clients pourront créer des listes de cadeaux (ou liste de naissance), l'imprimer ou l'envoyer par mail à un revendeur près de chez eux.

J'aimerais mettre à la place du panier, dans la header la liste de cadeaux (voir la copie d'écran). Je n'arrive pas à greffer ce bloc depuis la back office. Avez-vous des idées?

 

Keweem

post-562535-0-92503900-1368206746_thumb.jpg

Link to comment
Share on other sites

Si j'ai bien suivis, vous êtes allé dans le Back-Office (BO), onglet module > positions. Vous avez cliqué sur greffer un module, puis choisi votre module de liste de cadeau, et choisi "DisplayTop" (et pas DisplayHeader) comme hook/greffe.

A ce moment, vous avez eu un petit message d'erreur du genre "Ce module ne peut être greffé ici ?" C'est cela ?

 

Si vous avez pas suivi cette étape je vous conseil de la faire =)

 

Si vous êtes bien victime du message d'erreur, il va falloir se plonger un peu dans le code =D

 

Le problème : quand on créer un module, on lui décide les endroits où il va se greffer (i.e. le header, le footer, la colonne de droite etc), on est pas obligé de le programmer pour qu'il se greffe partout.

 

Quand on rencontre ce genre de problème, deux solutions :

- Soit on développe son propre module (Dans ce cas là, vous ne poseriez pas la question :D )

- Soit on rajoute tout simplement la "bonne" greffe sur le module.

 

Je serais ravi de vous aider à rajouter la bonne greffe, par contre il va falloir quelque détails supplémentaires :

Êtes-vous sur une version locale ? Ou bien vous avez déjà votre site en ligne ?

Savez-vous comment accéder aux pages de code de votre site ?

 

Deux doc sont aussi à votre dispo : http://doc.prestasho...pageId=15171588

http://doc.prestasho...pageId=15171877

Bien cordialement,

Edited by Juda (see edit history)
Link to comment
Share on other sites

Bonjour,

J'ai suivi effectivement la procédutre décrite ci-dessous :

"Si j'ai bien suivis, vous êtes allé dans le Back-Office (BO), onglet module > positions. Vous avez cliqué sur greffer un module, puis choisi votre module de liste de cadeau, et choisi "DisplayTop" (et pas DisplayHeader) comme hook/greffe.

A ce moment, vous avez eu un petit message d'erreur du genre "Ce module ne peut être greffé ici ?" C'est cela ?"

Mais j'ai bien un message qui me dit qu'il n'est pas possible de greffer à cet endroit.

Je n'ai pas les compétences pour faire du dév. et donc de faire du sur mesure :-(

Je suis sur un serveur hébergé (1and1) et en ce moment sur un site de test.

J'ai regardé les docs, mais je ne m'en sort pas...

Voici le site test : www.keo-home.com

 

Merci pr vos réponses

Link to comment
Share on other sites

D'accord, avez-vous accès aux fichiers de prestashop (le code source) ?

 

Si vous avez directement installé votre site en ligne, vous pouvez récupéré les donnés par FTP (ex: FileZilla).

 

On recherche sur tout un dossier en particulier, celui du module wishlist (dont je connais pas le nom), qui doit surement se trouver dans le dossier modules.

 

Ne vous inquiété pas, il n'ya rien de très compliqué, je vais essayer de vous guider/aider pas à pas.

Donc si vous comprenez pas quelque chose, posez donc la question ;).

Edited by Juda (see edit history)
Link to comment
Share on other sites

Oui, j'ai les codes sources.

Au fait, on a enlever le bloc panier, on arrive à placer le bloc Wishlist en haut mais quand on veut intégrer l'image de fond de la header, le bloc liste de cadeau disparait!

Bon, on laisse tomber....

Merci encore pour ton aide.

Link to comment
Share on other sites

Bon je post quand même la méthode au cas ou des gens serait intéressé. Solution pour Prestashop 1.5.X .

 

Une fois que vous avez repéré votre module, ouvrez dans votre éditeur préféré (Notepad++ est recommandé pour débuter) le fichier .php (En principe il a le même nom que le dossier e.g. dossier wishlist, le fichier sera nommé wishlist.php).

 

A l'intérieur vous devriez y trouver la méthode install

public function install()
{
 return parent::install() &&
$this->registerHook('leftColumn');
}

 

Cette méthode indique à l'installation du module où il va se greffer, ici sur la colonne gauche en l'occurence :).

Il est conseillé de rien supprimer si vous n'avez pas les compétences requis.

 

Si vous voulez que ce module se greffe autre part que sur la colonne gauche il va falloir lui indiquer. Par exemple en haut de la page.

 

public function install()
{
 return parent::install() &&
$this->registerHook('leftColumn') &&
$this->registerHook('displayTop');

//Parfois le && peut être remplacé par AND
}

On a juste rajouté une ligne : $this->registerHook('displayTop')

 

Une liste des différents hook est disponible dans la doc

 

 

Maintenant qu'on lui indiqué qu'il pouvait aussi se greffer dans le top (haut de la page), il nous faut lui indiquer comment il va s'afficher (Ewi toujours obligé de les prendre par la main ses modules :x).

Un peu plus bas, vous devriez apercevoir des méthodes qui gére le comportement des greffes.

public function hookDisplayLeftColumn($params)
{
 $this->context->smarty->assign(
  array(
	  'my_module_name' => Configuration::get('MYMODULE_NAME'),
	  'my_module_link' => $this->context->link->getModuleLink('mymodule', 'display')
  )
 );
 return $this->display(__FILE__, 'mymodule.tpl');
}

Cette méthode indique comment va s'afficher le module quand ll est greffer à gauche. On va donc créer notre méthode pour le comportement au top.

 

public function hookDisplayTop($params)
{
 return $this->hookDisplayLeftColumn($params);
}

On fais au plus simple ! On créer une méthode qui indique qu'on veut le même comportement que sur la colonne gauche, facile ?

 

Maintenant il vous reste plus qu'a ré-initialiser votre module (BackOffice Onglet modules > modules).

Et le positioner correctement (BackOffice Onglet modules > positions).

 

Ceci est un peu la façon sale de le faire, la bonne méthode serait de copier le dossier du modules dans votre dossier /themes/modules/ et d'y faire les changements là-bas.

 

Voilà. Bonne journée.

  • Like 1
Link to comment
Share on other sites

  • 9 months later...

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