Aldo Pasteur
Aldo Pasteur

Reputation: 11

Prestashop Remove id categories

I am Prestashop user im trying to find a url category solution

I need to know the process to remove the category id (Numeric) for Prestashop url. For Example www.mydomain.com/16-myproducts

Regards

Upvotes: 1

Views: 3786

Answers (1)

Matt Loye
Matt Loye

Reputation: 1311

Actually you might do an Override of Dispatcher.php class. It pretty much depends on which version you are.

Here is how we did this at Malttt on 1.6, last year, please take care with this code, as it may be outdated, it also covers other cases (products, suppliers ...) :

/*
*  @author      Matt Loye <[email protected]>
*  @copyright   2016-2017 Agence Malttt
*/

class Dispatcher extends DispatcherCore
{
    /**
     * @var array List of default routes
     */
    public $default_routes = array(
        'supplier_rule' => array(
            'controller' => 'supplier',
            'rule' =>       'supplier/{rewrite}/',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'supplier_rewrite'),
                'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
            ),
        ),
        'manufacturer_rule' => array(
            'controller' => 'manufacturer',
            'rule' =>       'manufacturer/{rewrite}/',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'manufacturer_rewrite'),
                'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
            ),
        ),
        'cms_rule' => array(
            'controller' => 'cms',
            'rule' =>       'info/{rewrite}',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'cms_rewrite'),
                'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
            ),
        ),
        'cms_category_rule' => array(
            'controller' => 'cms',
            'rule' =>       'info/{rewrite}/',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'cms_category_rewrite'),
                'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
            ),
        ),
        'module' => array(
            'controller' => null,
            'rule' =>       'module/{module}{/:controller}',
            'keywords' => array(
                'module' =>         array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'module'),
                'controller' =>     array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'controller'),
            ),
            'params' => array(
                'fc' => 'module',
            ),
        ),
        'product_rule' => array(
            'controller' => 'product',
            'rule' =>       '{category:/}{rewrite}.html',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'product_rewrite'),
                'ean13' =>          array('regexp' => '[0-9\pL]*'),
                'category' =>       array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'categories' =>     array('regexp' => '[/_a-zA-Z0-9-\pL]*'),
                'reference' =>      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]*'),
                'manufacturer' =>   array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'supplier' =>       array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'price' =>          array('regexp' => '[0-9\.,]*'),
                'tags' =>           array('regexp' => '[a-zA-Z0-9-\pL]*'),
            ),
        ),
        'layered_rule' => array(
            'controller' => 'category',
            'rule' =>       '{rewrite}/filter{selected_filters}',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                /* Selected filters is used by the module blocklayered */
                'selected_filters' =>       array('regexp' => '.*', 'param' => 'selected_filters'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'category_rewrite'),
                'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
            ),
        ),
        'category_rule' => array(
            'controller' => 'category',
            'rule' =>       '{rewrite}/',
            'keywords' => array(
                'id' =>             array('regexp' => '[0-9]+'),
                'categories' =>     array('regexp' => '[/_a-zA-Z0-9-\pL]*'),
                'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'category_rewrite'),
                'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
            ),
        ),
    );
}

Upvotes: 0

Related Questions