Jump to content

Adaptation du code php d'un module pour un thème


Recommended Posts

Bonjour,

 

Je débute avec Prestashop et j'essaye de me débrouiller comme un grand dans la mesure du possible avec les divers tutos disponibles et je trouve que la doc est, de manière générale, plutôt complète. Merci aux éditeurs et bravo pour le boulot !

 

Par contre, c'est inévitable, tout ne s'y trouve pas et je suis face à une question qui, je l'espère trouvera une réponse ici dans le forum (au passage, désolé si elle a déjà été posée/répondue mais je ne l'ai pas trouvée).

 

Je personnalise actuellement le thème d'un projet et dans ce cadre je souhaite afficher le module "nouveaux produits" (blocknewproducts) dans la zone centrale de la page (homepage).

Le module en question ne pouvant à l'origine se greffer sur ce "hook", j'ai donc compris qu'il me fallait modifier le code du module dans blocknewproducts.php.

 

Ayant dupliqué le thème "prestashop_new", j'ai donc commencé par explorer le dossier

/themes/mon_theme/modules/blocknewproducts/

mais n'y ai trouvé que le fichier smarty (.tpl) et les traductions (.php)... J'ai effectué une tentative en dupliquant le fichier

/modules/blocknewproducts/blocknewproducts.php
vers
/themes/mon_theme/modules/blocknewproducts/blocknewproducts.php

et j'ai modifié le code de ce dernier: sans succès.

 

J'ai donc fini par modifier le code de

/modules/blocknewproducts/blocknewproducts.php

et là ça fonctionne. Pour l'instant j'ai seulement ajouté une méthode:

 

public function hookHome($params)
{
return $this->hookRightColumn($params);
}

 

J'en viens à ma question (enfin !)...

Pour la personnalisation d'un thème, il est bien logiquement recommandé de ne pas modifier les fichiers en dehors de "l'espace" /themes/mon_theme/ , alors comment dois-je procéder pour ajouter ce "hook" à blocknewproducts.php uniquement dans l'espace de mon thème ?

 

J'espère que cette question est formulée de manière assez claire pour être compréhensible et obtenir une réponse d'un utilisateur plus expérimenté que moi. Si ce ne devais pas être le cas, dites le moi et j'essayerai d'être plus précis.

 

En vous remerciant.

Link to comment
Share on other sites

  • 3 months later...

Bonjour,

 

Je ne sais pas si tu as trouvé une réponse, mais je me pose actuellement la même question donc je me permets de remonter le topic.

 

Du coup comment as tu fait ?

Est ce que quelqu'un a maintenant une solution viable ?

 

Merci

Link to comment
Share on other sites

Hello !

 

Oui j'y suis finalement arrivé... mais cela fait déjà quelques mois que j'ai terminé ce job et ce n'est plus tout à fait clair dans ma tête, alors plutôt que de te donner de l'à peu près, je vais reprendre mon code modifié et je reviens ici avec une explication claire (je l'espère en tout cas) aussi vite que possible ;-)

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

Bonjour,

 

On ne peut pas surcharger un module (.php), dans prestashop, seulement un template de module (.tpl) que l'on copira dans les dossier /themes/default/modules/nom_du_module/

 

par exemple pour modifier le block des tags, vous creez le fichier :

/themes/default/modules/blocktags/blocktags.tpl

et vous inserez votre nouveau code (ou copier celui existant que vous modifiez)

Edited by webaide (see edit history)
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...