Récemment
-
Des modules et des hacks - liste non exhaustive des modules présentant un risque
Discussion générale17 -
Thème enfant
PhenixSuite16 -
SumUp Payments Constant Update Request
Modules2 -
PaypalAPI erreur
PhenixSuite53 -
Problèmes de prix avec plusieurs devises et PayPal
PhenixSuite6 -
Solutions de paiement...
Discussion générale5 -
Petit code pour les descriptions de produits
Discussion générale3 -
Feuilles de styles non chargées si smart cache activé [RÉSOLU]
PhenixSuite5 -
PayPal Module Error
Bugs & Améliorations2 -
Transient Bug after 1.6.2.31 Upgrade
Bugs & Améliorations2 -
blockcategory et left_column
BUG connus1 -
[REGLÉ] override - je n'y arrive pas.
Modules10 -
les routes sur mesures
Discussion générale6 -
Nouvelle attaque ?
Discussion générale11 -
Problème calcul HT
Bugs & Améliorations42 -
Erreur sur facture générée depuis le FO
PhenixSuite3 -
Factures ne se génèrent plus depuis 06/12 [RÉSOLU]
Bugs & Améliorations20 -
Edition en masse des déclinaisons
Nouvelles fonctionnalités4 -
Mise à niveau de Prestashop 1.6.24 vers PhenixSuite 1.6.30
Discussion générale2 -
Thème possible
Questions relatives à l'installation/upgrade2
blockcategory et left_column
-
Bon, cela fait quelques temps que je rame dessus et j'ai trouvé une piste peut être?
j'ai activé le blockcategory dans mon hook_left_column. MAIS il ne s'affiche pas à la première visite , il faut choisir un produit et revenir pour qu'il reste affiché. Certains pensent que cela vient du cache navigateur, mais mes test semblent montrer que non. vider le cache navigateur, partir d'une nouvelle session.... vider les cokkies... vider le cache smarty... la totale
Donc je lis le code.. schématisons
public function hookLeftColumn($params) { if(!$this->setLastVisitedCategory()) { return; } $phpself = $this->context->controller->php_self; $current_allowed_controllers = array('category'); blablabla }
Si je commente ce return, elle s'affiche comme désiré. Mais disons que j'hésite à faire le bourrinr, je vais plus loin...
public function setLastVisitedCategory() { if(method_exists($this->context->controller, 'getCategory') && ($category = $this->context->controller->getCategory()) ) { if(!$category->active) { // c'est pas le bon controller donc on passe à la suite return false; } } $cache_id = 'blockcategories::setLastVisitedCategory'; // normalement vide if(!Cache::isStored($cache_id)) { if(method_exists($this->context->controller, 'getCategory') // probablement pas && ($category = $this->context->controller->getCategory()) ) { $this->context->cookie->last_visited_category = $category->id; // pas de cookie déposé } elseif(method_exists($this->context->controller, 'getProduct') // non plus, sauf quand && ($product = $this->context->controller->getProduct())) { // on a vu une page produit if(!isset($this->context->cookie->last_visited_category) || !Product::idIsOnCategoryId($product->id, array(array('id_category' => $this->context->cookie->last_visited_category))) || !Category::inShopStatic($this->context->cookie->last_visited_category, $this->context->shop) ) { //// la il ne dépose pas de cookie $this->context->cookie->last_visited_category = (int)$product->id_category_default; } } //// donc au saute là... ??? mais pas de cookies non plus.... Cache::store($cache_id, $this->context->cookie->last_visited_category); } //// et donc pas pastèque return false... tout le temps..... return Cache::retrieve($cache_id); } }
De ce que je comprends... Lorsque l'on arrive sur la page la première fois, il n'y a pas de catégorie disponible donc on demande d'activer la dernière catégorie visitée, ce qui ne donne rien et renvient rien et donc return vide....
il n'y a pas de dépôts de cookie lors de cette navigation... je vais prendre le temps d'investiguer"" je ne sais pas si c'est vraie ou pas, ce navigateur de m* firefox à jour, me dit qu'il n'y pas de cookie alors même qu'il y en a puisque je me suis logué sur un site... p*tain je devrais regarder d'un autre navigateur...
en ce moment je n'ai pas le temps de faire dans la dentelle alors je vai commenter à la bourrin, mais il faudrait se pencher plus sur la question, ce que je ferais si le soucis persiste et que personne ne voit la solution évidente.