Studio Kaloa Posted August 12, 2019 Share Posted August 12, 2019 Bonjour la communauté, Je rencontre un problème avec le module "Produits phares". J'utilise Prestatshop 1.7.4 avec un thème personnalisé enfant du thème "Classic". Le module est greffé à un hook personnalisé de mon thème : "displayHomeFeaturedProduct" mais il est également greffé à "displayHome" (par défaut). Lorsque je le dégreffe de "displayHome", que ce soit par le menu "Apparence > Position" ou directement dans la base de donnée "shop_hook_module", au premier chargement de la page d'accueil, il est bien absent, mais il est "automatiquement" re-greffé ce qui fait que les chargement suivant le font apparaître… (liaison recréée en base de donnée). Une idée d'où pourrait venir ce problème ? Link to comment Share on other sites More sharing options...
Studio Kaloa Posted August 21, 2019 Author Share Posted August 21, 2019 Un p'tit up ! Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 21, 2019 Share Posted August 21, 2019 (edited) Salut, pourquoi ne pas virer l'enregistrement du hook dans la fonction d install ? ps_featuredproducts.php public function install() { $this->_clearCache('*'); Configuration::updateValue('HOME_FEATURED_NBR', 8); Configuration::updateValue('HOME_FEATURED_CAT', (int) Context::getContext()->shop->getCategory()); Configuration::updateValue('HOME_FEATURED_RANDOMIZE', false); return parent::install() && $this->registerHook('addproduct') && $this->registerHook('updateproduct') && $this->registerHook('deleteproduct') && $this->registerHook('categoryUpdate') // on vire --> && $this->registerHook('displayHome') && $this->registerHook('displayOrderConfirmation2') && $this->registerHook('displayCrossSellingShoppingCart') && $this->registerHook('actionAdminGroupsControllerSaveAfter') ; } cordialement Edited August 21, 2019 by Alexandre Carette (see edit history) Link to comment Share on other sites More sharing options...
Studio Kaloa Posted August 22, 2019 Author Share Posted August 22, 2019 Salut, merci de te pencher sur le problème ! Je vais essayer mais je reste septique… la méthode Install() est normalement appelée uniquement lors de l'installation du module. Dans mon cas, je n'installe/désinstalle pas le module, ni même l'active/désactive. Donc la méthode Install() n'est pas sensé être appelée. Je souhaite juste le dégreffer du hook "displayHome" … mais la greffe est recréée systématiquement après le premier chargement de page… par quel miracle ? là est la question ! Link to comment Share on other sites More sharing options...
Studio Kaloa Posted August 22, 2019 Author Share Posted August 22, 2019 Bon bah, test non concluant… Grrrr… Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 22, 2019 Share Posted August 22, 2019 (edited) Quote la méthode Install() est normalement appelée uniquement lors de l'installation du module ben oui effectivement tu commentes le code (on vire les hook), apres tu desinstalles + tu reinstalles le module, cordialement Edited August 22, 2019 by Alexandre Carette (see edit history) Link to comment Share on other sites More sharing options...
Studio Kaloa Posted August 22, 2019 Author Share Posted August 22, 2019 Bon, le problème est clairement ailleurs… même en commentant la ligne de création du hook dans le code de ps_featuredproducts.php, désinstallation, réinstallation, … le module se regreffe dès que l'on charge la page d'accueil en front… J'ai également supprimé la ligne de déclaration dans le fichier de config/theme.yml du thème Classic pour être sûr. Merci. Il faut que j'investigue ailleurs… trouver par quel méthode cette liaison est recréée en base de donnée… Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 22, 2019 Share Posted August 22, 2019 essaye de supprimer (ou renommer) /var/cache/ dev et prod pour voir, cdt Link to comment Share on other sites More sharing options...
Studio Kaloa Posted August 22, 2019 Author Share Posted August 22, 2019 Déjà fait… je suspecte un lien avec le thème Classic et la fonctionnalité "Configuration de la page d'accueil" : le module : "ps_themecusto" Même lorsque le module n'est pas installé, il apparaît dans la liste des options "Produits en page d'accueil". Maintenant, il faut que je trouve où est gérée cette partie et le lien avec "home_products" Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 22, 2019 Share Posted August 22, 2019 yes, tu peux egalement desinstaller ps_themecusto voir si ca regle ton pb, cdt Link to comment Share on other sites More sharing options...
Studio Kaloa Posted August 23, 2019 Author Share Posted August 23, 2019 Bon bah, le coupable est trouvé ! C'est en fait le module ps_googleanalytics qui regreffe le module ps_featuredproducts. En recherchant de ce côté, je suis donc tombé sur : https://github.com/PrestaShop/ps_googleanalytics/issues/33 1 Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 23, 2019 Share Posted August 23, 2019 wtf return $module->registerHook('displayHome'); un dev qui a voulu nous faire une petite blague Link to comment Share on other sites More sharing options...
Studio Kaloa Posted August 23, 2019 Author Share Posted August 23, 2019 Voila, voila… on est d'accord ! Problème résolu. Link to comment Share on other sites More sharing options...
BGUERBET Posted October 5, 2019 Share Posted October 5, 2019 Bonjour, Vous dites "Problème résolu"... Qu'avez-vous fait exactement ? Quand je commente la ligne, plus rien ne s'affiche... sur 1.7.4.2. Link to comment Share on other sites More sharing options...
Studio Kaloa Posted October 5, 2019 Author Share Posted October 5, 2019 Ajouter un nouvel override pour ce module (overrides/modules/ps_googleanalytics/ps_googleanalytics.php ) et faites le retourner true au lieu de faire une greffe : <?php if (!defined('_PS_VERSION_')) { exit; } class Ps_GoogleanalyticsOverride extends Ps_Googleanalytics { public function isModuleEnabled($module_name) { if (($module = Module::getInstanceByName($module_name)) !== false && Module::isInstalled($module_name) && $module->active) { // return $module->registerHook('displayHome'); return true; } } } 1 Link to comment Share on other sites More sharing options...
BGUERBET Posted October 5, 2019 Share Posted October 5, 2019 Merci beaucoup... J'ai ajouté un override, puis finalement j'ai opté pour la modification directe de ps_googleanalytics.php, car j'avais désactivé Google analytics (officiel) et ça m'avait créé une erreur 500 qui me bloquait l'accès au backoffice. Un grand merci pour votre réponse si rapide Link to comment Share on other sites More sharing options...
BGUERBET Posted January 17, 2020 Share Posted January 17, 2020 Pour Google Analytics v3.2.0 voici la modification dans "modules/ps_googleanalytics/ps_googleanalytics.php" ligne 524 à 526 1 Link to comment Share on other sites More sharing options...
laurentdevilleplee Posted October 10, 2020 Share Posted October 10, 2020 Bonsoir à tous. Je viens de faire les mises à jour sur Prestashop pour passer en 1.7.6.8. Et le problème que j'avais résolu jusqu'à maintenant grâce à votre idée d'ajouter une ligne de code "return true" dans le fichier ps_googleanalytics.php, ne peut plus être fait car le fichier de Google a changé... Je vous joins le fichier suite à la mise à jour du module de Google aussi à cette occasion. Je ne vois pas comment faire vu que le module, bien que dégreffé revient maintenant systématiquement. Avez vous une idée ? C'est un vrai probleme. Merci encore, Laurent ps_googleanalytics.php Link to comment Share on other sites More sharing options...
Studio Kaloa Posted November 23, 2020 Author Share Posted November 23, 2020 Remplacer l'override proposé précédemment par : <?php if (!defined('_PS_VERSION_')) { exit; } class Ps_GoogleanalyticsOverride extends Ps_Googleanalytics { public function hookDisplayHome() { //$hook = new PrestaShop\Module\Ps_Googleanalytics\Hooks\HookDisplayHome($this, $this->context); //return $hook->run(); } } 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