Jump to content
Bogdan

Moduł ps_categorytree - brak resetowania poziomu po przejściu na stronę główną

Recommended Posts

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
2018-08-08_15h53_56.png.a9bc1ba0646cc498baa2ef6917619c38.png


_04.png - po przejściu do odpowiedniej podkategorii
2018-08-08_15h54_04.thumb.png.cdf5a60a7ade7bf0e306389784097985.png

 

_13.png - powrót na stronę główną a drzewo dalej tkwi w podkategorii

2018-08-08_15h54_13.thumb.png.f57a9c6a1ecac6db3e4295f4a567f762.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More