Jump to content

Module qui modifie une partie d'un tpl


Recommended Posts

Bonjour tout le monde,

 

voici ma question du jour : comment faire pour qu'un module puisse modifier une partie d'un tpl (par exemple la fiche technique d'un produit). Je ne souhaite pas modifier tout le product.tpl seulement une partie.

 

Est-ce que certains ont eu ce cas ?

 

Merci d'avance :)

Link to comment
Share on other sites

Bonjour,

 

Je pense que le mieux serait de créer un tpl qui correspond à la partie que tu veux modifier, et de l'inclure dans le product.tpl à la place de la fiche technique actuelle.

Je dirais même plus : Le mieux serait de créer un hook (ou utiliser un hook existant) dans ton module, qui appelle ton tpl dans le module et qui est ensuite utilisé dans la fiche produit.

 

Je quote Shagshag pour un exemple :

 

Link to comment
Share on other sites

Bonjour tous les deux,

 

tout d'abord désolé pour le délai de réponse mais j'ai été très pris ces derniers jours. Le problème c'est que je ne peux pas permettre que mon module modifie entièrement le template product.tpl, car l'utilisateur pourrait déjà avoir modifié son template.

 

Pour le coup du hook, ça me dérange un peu car mon module se contente simplement de réorganiser l'affichage du template. On en revient quasiment à du theming au final.

 

Du coup, auriez-vous une idée du comment ?

 

Merci encore :)

Link to comment
Share on other sites

Si il s'agit d'un module qui agit sur le rendu final: jQuery. Maintenant, chaque thème ayant parfois des classes et ID différents, cela devient compliqué de tout gérer.

 

Très honnêtement, les solutions proposées au-dessus sont valables. Entièrement.

 

Mais, oui, pas dans le contexte de votre module. Bien entendu, en fait, je ne connais nullement réellement le contexte de celui-ci. Et c'est un peu là que le bas blesse: nous ne savons pas trop vous aiguiller, c'est vraiment trop vague.

 

Vous semblez savoir ce que vous voulez et vous avez une idée des contraintes liées, mais nous pas ! ;-)

Link to comment
Share on other sites

Bonjour J. Danse,

 

je vais essayer de me montrer plus concret avec deux exemples :

 

1) Module qui agit directement sur le template

 

Imaginons un module qui a pour objectif de remettre en place les onglets sur la fiche d'un produit. L'idée serait de réorganiser le template product.tpl pour mettre chaque section (fiche technique, avis, ...) dans les bons blocs. Or, je ne peux pas directement surcharger le product.tpl sachant que l'utilisateur peut y avoir fait ses propres modifications.

 

2) Module qui surcharge une classe / controller

 

Maintenant, imaginons un module qui surcharge un controller ou une classe du cœur de prestashop. Une solution serait de déplacer un fichier php dans le dossier override lors de l'installation du module. Mais si une surcharge existe déjà, je ne peux pas non plus remplacer tout le fichier, sous peine de faire perdre à l'utilisateur ses modifications.

 

J'espère que ces deux exemples pourront mieux montrer mes interrogations :)

 

Merci d'avance :)

Link to comment
Share on other sites

Bonjour,

 

Dans le premier contexte, la solution est surement d’interagir après post-compilation ou encore en JavaScript, avec un remaniement à la volée, finalement. Mais cela veut dire qu'on travaille du côté client. 

 

Pour ce cas-ci, soit vous travailliez en mode "générique" sans visés de clients particuliers et concevez donc un module compatible avec le thème par défaut, soit vous savez sur quel thème vous évoluez et bien que le client puisse modifier son template, rien ne vous empêche d'y mettre un canvas plus précis.

 

Dans le second contexte, le module peut embarquer votre surcharge dans le dossier override. Si la surcharge existe déjà, le module ne l'installera pas et avertira l'administrateur du site en Back Office.

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