Jump to content

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


Bogdan

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

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...