Bogdan Posted August 9, 2018 Share Posted August 9, 2018 Witam szanownych współuserów, problem, który tu opisuje już został przeze mnie rozwiązany ale być może w niewłaściwy sposób dlatego postanowiłem poruszyć tą kwestię na forum. Korzystam z modułu ps_categorytree, który zachowywał się w dziwny sposób. Po wybraniu którejś kategorii o przejściu na jej stronę a następnie powrocie na stronę główną menu nadal pozostawało na poziomie wybranej kategorii i nie wracało do głównego drzewa. Po analizie doszedłem do konkluzji, że w funkcji setLastVisitedCategory() tak jakby brakuje warunku else który by resetował numer kategorii w każdym innym przypadku, Jednak nie jest do końca przekonany czy to nie będzie miał niepożądanego wpływu na inne sytuacje. Póki co takowych nie zauważyłem ale nie jestem w stanie przeanalizować wszystkich przypadków. Czy ktoś z was miał taki problem ? Może istnieje bardziej oczywisty sposób rozwiązania tego problemu ? Nie wiem czy to bug czy tylko moja niekompetencja Oryginał: public function setLastVisitedCategory() { if (method_exists($this->context->controller, 'getCategory') && ($category = $this->context->controller->getCategory())) { $this->context->cookie->last_visited_category = $category->id; } elseif (method_exists($this->context->controller, 'getProduct') && ($product = $this->context->controller->getProduct())) { 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) ) { $this->context->cookie->last_visited_category = (int)$product->id_category_default; } } } Override public function setLastVisitedCategory() { if (method_exists($this->context->controller, 'getCategory') && ($category = $this->context->controller->getCategory())) { $this->context->cookie->last_visited_category = $category->id; } elseif (method_exists($this->context->controller, 'getProduct') && ($product = $this->context->controller->getProduct())) { 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) ) { $this->context->cookie->last_visited_category = (int)$product->id_category_default; } } else{ $this->context->cookie->last_visited_category = 0; } } W załącznikach starałem się zobrazować problem. _56.png - Sytuacja na starcie po wyczyszczeniu ciasteczek _04.png - po przejściu do odpowiedniej podkategorii _13.png - powrót na stronę główną a drzewo dalej tkwi w podkategorii 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