megaspoilt Posted February 25, 2010 Share Posted February 25, 2010 Bonjour,J'utilise Prestashop depuis peu, et je trouve l'outil vraiment pratique. Par contre, je ne comprends pas bien comment il fonctionne.En fait, je souhaite utiliser le module Menu Haut Horizontal. Le problème c'est qu'il est gris, donc pas du tout adapté à mon thème. J'aimerais simplement lui donner l'apparence de mon thème. J'ai donc essayé de court-circuiter le fichier tpl depuis mon thème, mais ça ne fonctionne pas. (ou je ne sais pas comment faire plutôt)J'aimerais savoir comment je peux modifier l'apparence (donc prendre le pas sur le css ou le tpl du module) depuis mon thème. Car je ne veux pas modifier les fichiers du module (ça serait une aberration dans toute logique de programmation et de maintenance d'un site)Merci d'avance pour votre aide ;-)PS: je ne sais pas si j'ai posté au bon endroit, mais c'est là où ça me paraissait le plus logiqueDéplacé dans la section Intégration - Atch Link to comment Share on other sites More sharing options...
Christophe Klein Posted February 25, 2010 Share Posted February 25, 2010 L'avantage de l'utilisation des templates est justement de séparer le traitement (php) de la structure (tpl) et de la présentation.Ce n'est donc pas une aberration de modifier le tpl ou la css puisque cela ne change en rien la logique de traitement.Tu peux évidemment garder une copie des fichiers originaux, au cas où.L'aberration serait plutôt selon moi d'intégrer dans ton thème une dépendance à un module, en effet le jour où tu voudras remplacer le menu par un autre tu ne pourras pas simplement désactiver le menu actuel et activer un autre module, il faudra retoucher la CSS de ton thème. En appliquant tes modifs de présentation dans la CSS du module, ce problème ne se pose pas. Link to comment Share on other sites More sharing options...
megaspoilt Posted February 25, 2010 Author Share Posted February 25, 2010 Hum... Mais qui a parlé de dépendance ? Je ne veux pas que mon thème dépende d'un module, je veux que l'apparence du module change en fonction du thème installé. C'est justement là le concept de séparer design et traitement.Que le design soit dans le dossier du module, oui, la version "par défaut" du module. Mais un thème doit pouvoir écraser l'apparence "par défaut" du module par la sienne. Sinon, c'est une aberration.Essaie de mettre à jour 30 sites utilisant Prestashop si ça fonctionne de cette manière. Tu devras vérifier chaque module installé pour ne pas l'écraser. Donc au lieu d'une mise à jour de 1h avec une simple vérification, tu y passes 3 jours parce qu'il faut que tu vérifie manuellement tous les modules de chaque site. Super !Enfin bref, tu ne réponds donc pas à ma question.Quelqu'un d'autre peut-être ? Link to comment Share on other sites More sharing options...
Christophe Klein Posted February 25, 2010 Share Posted February 25, 2010 Je comprends ta logique. Dans ce cas, comme tu le dis, le problème qui se pose est que la CSS du module "écrase" celle du thème, qui est chargée en premier dans le code. Pour éviter cela, je vois 2 solutions :- soit tu édites ton header.tpl et tu déplaces {$HOOK_HEADER} quelques lignes plus haut, juste avant {if isset($css_files)} , ainsi la CSS du module sera chargée en premier- soit tu peux utiliser la déclaration CSS " !important " dans la CSS de ton thème et ainsi ce que tu y déclareras ne pourra pas être écrasé. (voir ici pour plus d'informations)Si tu as également besoin de toucher au fichier tpl, tu peux toujours modifier le fichier blocktopmenu.php du module pour qu'il ne charge non pas le fichier blocktopmenu.tpl situé dans le dossier du module, mais un autre fichier tpl que tu créeras dans le dossier de ton thème. Je n'ai pas le code de Prestashop sous les yeux, mais ça se passe dans la fonction hookTop, dans la dernière ligne.En espérant avoir répondu à ta question. Link to comment Share on other sites More sharing options...
megaspoilt Posted February 26, 2010 Author Share Posted February 26, 2010 Merci pour la réponse.Effectivement, monter le hook aurait été une solution si le module s'en servait... Mais le link css est directement déclaré dans le tpl du module en plein de le corp HTML (ce que je trouve hyper limite d'ailleurs).Et puis les !important, ça empêcherait toute autre règle de priorité, je préfère donc éviter.Mais ça me parait quand même étonnant qu'on ne puisse pas redéclarer un tpl d'un module dans le thème !Enfin bon, si y a pas d'autres solutions, je vais modifier les fichiers du module... Mais je reste ouvert à toute autre proposition si quelqu'un a une idée :-) Link to comment Share on other sites More sharing options...
jeckyl Posted February 26, 2010 Share Posted February 26, 2010 Salut,Tu peux intégrer le tpl de ton module dasn un répertoire module/nom du module/ directement dans ton thème et y insérer un tpl qui prendra le pas sur celui du module, ainsi tu peux faire une adaptation pour chaque thèmes. Link to comment Share on other sites More sharing options...
megaspoilt Posted February 26, 2010 Author Share Posted February 26, 2010 Youhouuu!Super ! Merci beaucoup !Je me disais bien que c'était possible. Ca fonctionne parfaitement bien ! Mon tpl prend le pas sur celui du module. C'est vraiment génial.Je fais juste une correction pour ceux qui arriveraient sur ce sujet : dans le répertoire du thème, il faut créer ce répertoire : modules/nom du module/fichier.tplMerci pour le coup de main jeckyl ;-) Link to comment Share on other sites More sharing options...
jeckyl Posted February 26, 2010 Share Posted February 26, 2010 Youhouuu!Super ! Merci beaucoup !Je me disais bien que c'était possible. Ca fonctionne parfaitement bien ! Mon tpl prend le pas sur celui du module. C'est vraiment génial.Je fais juste une correction pour ceux qui arriveraient sur ce sujet : dans le répertoire du thème, il faut créer ce répertoire : modules/nom du module/fichier.tplMerci pour le coup de main jeckyl ;-) Penses à faire une recherche la prochaine fois car c'est déjà traité sur le forum vu que c'est là que je l'ai appris. Link to comment Share on other sites More sharing options...
megaspoilt Posted February 26, 2010 Author Share Posted February 26, 2010 Alors j'ai effectivement fait une recherche avant de poser la question. Sur google et sur le forum, je n'ai rien trouvé. L'étape suivante que j'avais prévu était d'aller voir le code source de presta... (mais comme je n'ai encore jamais trop regardé, je ne sais pas s'il est bien lisible)Petit edit : j'ai effectivement trouvé la réponse dans le forum, mais les titres des sujets n'étaient pas très pertinent.. j'espère que celui-ci aidera les prochains en tout cas ! Link to comment Share on other sites More sharing options...
pasko Posted May 22, 2010 Share Posted May 22, 2010 Et bien moi c'est avec le CSS que je souhaite faire cela!Un idée??? Link to comment Share on other sites More sharing options...
botmez Posted May 27, 2011 Share Posted May 27, 2011 Et dans monthemespecial/modules/monmodule vous mettez juste le .tpl rien d'autre ? Link to comment Share on other sites More sharing options...
Jacques Biais Posted May 31, 2011 Share Posted May 31, 2011 C'est un module que j'adapte très souvent, je n'ai pas une seule fois touché au TPL!Le fichier css étant largement suffisant pour faire tout ce que l'on souhaite. 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