Activate categories in the url causes error 404 in the pages Prestashop cms

0

Good day community.

I'm working with prestashop in a local environment to then set up a store, the problem that has come up is this.

Eh bought the module to delete the IDs of the url: Pretty URLs Module and works perfect.

So I want to show the url of the subcategories in the parent category, example: dominio.com/ropa-dama/camisas

that is achieved using the following code, modifying the file override / classes / Dispatcher.php of the module.

'category_rule' => array(
            'controller' => 'category',
            'rule' =>       'categories:/}{rewrite}',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'category_rewrite'),
                'categories' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
            ),
        ),

and in the prestashop admin adding {categories: /} {rewrite} to the SEO / URL categories.

and the file override / classes / Link.php

public function getCategoryLink($category, $alias = null, $id_lang = null, $selected_filters = null, $id_shop = null, $relative_protocol = false)
    {
        if (!$id_lang) {
            $id_lang = Context::getContext()->language->id;
        }
        $url = $this->getBaseLink($id_shop, null, $relative_protocol).$this->getLangLink($id_lang, null, $id_shop);
        if (!is_object($category)) {
            $category = new Category($category, $id_lang);
        }
        $params = array();
        $params['id'] = $category->id;
        $params['rewrite'] = (!$alias) ? $category->link_rewrite : $alias;
        $params['meta_keywords'] =  @Tools::str2url($category->meta_keywords);
        $params['meta_title'] = @Tools::str2url($category->meta_title);

        $selected_filters = is_null($selected_filters) ? '' : $selected_filters;
        if (empty($selected_filters)) {
            $rule = 'category_rule';
        } else {
            $rule = 'layered_rule';
            $params['selected_filters'] = $selected_filters;
        }
        $cats = array();    
        foreach ($category->getParentsCategories() as $cat){    
            if (!in_array($cat['id_category'], array(1, 2, $category->id)))//remove root, home and current category from the URL    
            {
                $cats[] = $cat['link_rewrite'];
                $params['categories'] = implode('/', array_reverse($cats));
            }
        }

        $r_url = $url.Dispatcher::getInstance()->createUrl($rule, $id_lang, $params, $this->allow, '', $id_shop);
        return $r_url;
    }

But in doing this, all the CMS pages throw me a 404, I do not know what it could be.

I hope you can help me.

Greetings

    
asked by Dontommy 23.08.2018 в 02:53
source

0 answers