canel Posted October 24, 2012 Share Posted October 24, 2012 (edited) Bonjour tout le monde, Après plusieurs recherche je n'arrive pas à trouver (ou à comprendre) commende je peux overrider un fichier php d'un de mes modules (que j'ai acheté). Pour tout les autres modules j'arrive à mettre les fichiers tpl et css dans mon thème, mais je cherche à faire de même pour le fichier php (j'ai changer le nom du hook). Avez vous une solution svp ? Merci Edited October 24, 2012 by canel (see edit history) Link to comment Share on other sites More sharing options...
DevNet Posted October 24, 2012 Share Posted October 24, 2012 Bonjour, Vous ne pouvez pas faire d'override sur un php de votre module. Vous devez soit le modifier, soit le dupliquer et le renommer (pas seulement le dossier, mais sur chacun de ses appels dans le code php, afin qu'il s'"auto identifie" et se différencie de l'autre). Les modules sont dissociables du noyau, ce sont des 'ajouts'. Si vous pouvez au contraire faire des overrides des tpl des modules, c'est parceque ces modules eux-mêmes sont de paire avec l'intégration dans votre thème. Et le thème lui aussi est dissociable du noyau. Bien cordialement Link to comment Share on other sites More sharing options...
canel Posted October 24, 2012 Author Share Posted October 24, 2012 Donc cela ne posera de problème qu'à la mise à jour du module et non à la mise à jour de Presta ? Link to comment Share on other sites More sharing options...
coeos.pro Posted October 24, 2012 Share Posted October 24, 2012 en fait overrider un module est faisable (je l'ai déjà fait) mais franchement la meilleure solution (la plus rapide et la plus simple) est celle donnée par Devnet : modifier directement le module. Link to comment Share on other sites More sharing options...
canel Posted October 24, 2012 Author Share Posted October 24, 2012 Ok merci je ferais attention lors de leur mise à jour alors !!!! Link to comment Share on other sites More sharing options...
DevNet Posted October 24, 2012 Share Posted October 24, 2012 Ok merci je ferais attention lors de leur mise à jour alors !!!! En fait cela fait partie des impératifs quoiqu'il en soit. Vous devez faire un backup de vos fichiers avant la mise à jour. Et surtout des modules que vous modifiez. Link to comment Share on other sites More sharing options...
Clem01 Posted October 25, 2012 Share Posted October 25, 2012 La surcharge php des modules est tout à fait possible. Elle marche très bien d'ailleurs ;-) Link to comment Share on other sites More sharing options...
DevNet Posted October 25, 2012 Share Posted October 25, 2012 La surcharge php des modules est tout à fait possible. Elle marche très bien d'ailleurs ;-) Je ne vois pas l’intérêt plus que ça. Le dossier thème correspond aux sorties visuelles de la boutique. Je ne vois pas ce que du php ferait dans ce dossier. La technique du MVC initial n'est plus respectée. Le dossier ./modules est l'endroit qui doit attendre les addons, modifications, hack. Il est dissociable du noyau. Le dossier ./themes est l'endroit qui doit attendre les visuels personnalisés. Il est dissociable du noyau. Avoir du php dans son thème casse le fondement même de la séparation des compétences pour le travail en équipe, où l'on va mettre tout n'importe où, n'importe comment. C'est comme si vous posiez un second moteur sur la galerie de votre voiture ... ça ressemble plus à grand chose. Si le but initial est de conserver intact le code du module lui même, et ce que je comprends tout à fait, pourquoi n'archivez-vous pas précieusement celui-ci, dans son contenu d'origine. A+ Link to comment Share on other sites More sharing options...
Clem01 Posted October 25, 2012 Share Posted October 25, 2012 J'utilise cette technique pour surcharger les modules par default de Prestashop. Par exemple pour rajouter un hook, il suffit de faire une surcharge en ajoutant le hook, exemple: <?php class HomeSlider_ovr extends HomeSlider { public function hookDisplayTop() { if(isset($this->context->smarty->tpl_vars['page_name']->value) and $this->context->smarty->tpl_vars['page_name']->value != 'index') return; return $this->hookDisplayHome(); } ?> Après dans l'exemple on voit que l'override se fait depuis le thème mais rien n'empêche de changer la chose et de faire pointer sur /override/modules/ par exemple. Link to comment Share on other sites More sharing options...
DevNet Posted October 25, 2012 Share Posted October 25, 2012 Je ne vois toujours pas l'intérêt ! Il suffit de poser directement son hack dans le module lui-même. A+ Link to comment Share on other sites More sharing options...
Clem01 Posted October 25, 2012 Share Posted October 25, 2012 Ok, ta technique va aussi très bien. Simplement quand tu m'es à jour ton module, tu dois rajouter ton hack à chaque fois... De mon côté, pas besoin ;-) 2 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