Jump to content

[Solucionado]El no tener los IDs en las url no hace funcionar la case "active" del menu


lordheiden

Recommended Posts

Buen día amigos de la comuinidad.

Soy nuevo en prestashop, estoy usando la version 1.6.1.19 en un entorno de desarrollo.

Eh comprado un modulo "Pretty Urls" que me quita los IDs de las url, lo que pasa ahora es que la clase css "active" dejo de funcionar en el menu, el cual funcionaba correctamente antes de instalar el modulo.

sin las url amigables y teniendo el modulo activo mis url quedan de la siguiente manera: http://localhost/presta16/index.php?category_rewrite=ropa-dama&controller=category

con el modulo desactivado quedan: http://localhost/presta16/index.php?id_category=14&controller=category

la funcion original que recibe el parametro es la siguiente:

public function getCurrentCategoriesId($lang_id = NULL) {
        if (isset($_GET['id_category'])) {
            $lastCateId = $_GET['id_category'];
        } else {
            $lastCateId = 0;
        }

        $lastCate = new Category((int) $lastCateId);
        $parentCate = $lastCate->getParentsCategories($lang_id);
        $arrayCateCurrent = array();
        foreach ($parentCate as $pcate) {
            $arrayCateCurrent[] = $pcate['id_category'];
        }
        return $arrayCateCurrent;
    }

y la eh editado de la siguiente manera pero sin tener respuestas del parametro obtenido de la url:

public function getCurrentCategoriesId($lang_id = NULL) {
        if (isset($_GET['category_rewrite'])) {
            $link_rewrite = $_GET['category_rewrite'];
            $id_lang = $this->context->language->id;
        $id_shop = $this->context->shop->id;
        $sql = 'SELECT `id_category`
                FROM '._DB_PREFIX_.'category_lang
                WHERE `link_rewrite` = \''.pSQL($link_rewrite).'\'
                AND `id_lang` = '.(int)$id_lang.'
                AND `id_shop` = '.(int)$id_shop;
        $id_category = (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
        } else {
            $link_rewrite = false;
        }

        $lastCate = new Category((int) $id_category);
        $parentCate = $lastCate->getParentsCategories($lang_id);
        $arrayCateCurrent = array();
        foreach ($parentCate as $pcate) {
            $arrayCateCurrent[] = $pcate['id_category'];
        }
        return $arrayCateCurrent;
    }

 

si alguien pudiera darme una mano con esto le estaria agradecido.

Saludos

Edited by lordheiden (see edit history)
Link to comment
Share on other sites

  • 8 months later...
On 8/21/2018 at 3:14 AM, lordheiden said:

Buen día amigos de la comuinidad.

Soy nuevo en prestashop, estoy usando la version 1.6.1.19 en un entorno de desarrollo.

Eh comprado un modulo "Pretty Urls" que me quita los IDs de las url, lo que pasa ahora es que la clase css "active" dejo de funcionar en el menu, el cual funcionaba correctamente antes de instalar el modulo.

sin las url amigables y teniendo el modulo activo mis url quedan de la siguiente manera: http://localhost/presta16/index.php?category_rewrite=ropa-dama&controller=category

con el modulo desactivado quedan: http://localhost/presta16/index.php?id_category=14&controller=category

la funcion original que recibe el parametro es la siguiente:


public function getCurrentCategoriesId($lang_id = NULL) {
        if (isset($_GET['id_category'])) {
            $lastCateId = $_GET['id_category'];
        } else {
            $lastCateId = 0;
        }

        $lastCate = new Category((int) $lastCateId);
        $parentCate = $lastCate->getParentsCategories($lang_id);
        $arrayCateCurrent = array();
        foreach ($parentCate as $pcate) {
            $arrayCateCurrent[] = $pcate['id_category'];
        }
        return $arrayCateCurrent;
    }

y la eh editado de la siguiente manera pero sin tener respuestas del parametro obtenido de la url:


public function getCurrentCategoriesId($lang_id = NULL) {
        if (isset($_GET['category_rewrite'])) {
            $link_rewrite = $_GET['category_rewrite'];
            $id_lang = $this->context->language->id;
        $id_shop = $this->context->shop->id;
        $sql = 'SELECT `id_category`
                FROM '._DB_PREFIX_.'category_lang
                WHERE `link_rewrite` = \''.pSQL($link_rewrite).'\'
                AND `id_lang` = '.(int)$id_lang.'
                AND `id_shop` = '.(int)$id_shop;
        $id_category = (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
        } else {
            $link_rewrite = false;
        }

        $lastCate = new Category((int) $id_category);
        $parentCate = $lastCate->getParentsCategories($lang_id);
        $arrayCateCurrent = array();
        foreach ($parentCate as $pcate) {
            $arrayCateCurrent[] = $pcate['id_category'];
        }
        return $arrayCateCurrent;
    }

 

si alguien pudiera darme una mano con esto le estaria agradecido.

Saludos

Hola, 

Después de casi 1 año, acabo de comprar el módulo y tengo un problema parecido con las páginas de las marcas. ¿Nadie sabe respuesta?

A mí lo que me pasa es que al intentar entrar en la página del listado de artículos por marca, me redirige siempre a la página de todas las marcas con una URL así:

/marcas?category_rewrite=?category_rewrite="marcaEnCuestion"

La URL en el apartado de Tráfico & SEO está de la siguiente manera: 

marcas/{rewrite}

Ya e probado quitando la palabra marcas, probando la que venía por defecto que era brand, volviendo a introducir el id... pero nada sigue igual. 

¿Alguna idea?

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...