Jump to content

Cambiar el theme según la categoría en la que estamos


lunaroja

Recommended Posts

Estoy intentando conseguir (Prestashop 1.4.8.2) que el theme de la web cambie cuando cambiamos de categoría.

 

Para ello simplemente se modifica el config/settings.inc.php

 

Se cambia

 

define('_THEME_NAME_', 'tema');

 

por

 

define('_THEME_NAME_', 'tema' . (isset($_GET['id_category']) ? $_GET['id_category'] : ''));

 

Luego necesitamos tener dentro de la carpeta Themes un tema completo para cada categoría cuyo nombre debe ser 'tema' seguido del número de la categoría, por ejemplo 'tema14', 'tema15', 'tema20', etc, y otro que se llame solo 'tema' para cuando no hay categoría, en el carrito por ejemplo. En lugar de 'tema' podemos usar otra palabra.

 

Pero hay un problema, esto solo funciona cuando pulsamos en las categorías, si pulsamos en un producto se carga el tema básico, el que se llama solo 'tema' sin números detrás, no el de la categoría.

 

Se podrían usar los códigos de los productos, pero entonces necesitariamos tener un tema por cada producto, lo cual sería una locura. Lo mejor es usar las categorías.

 

He visto el panel de navegación, en él siempre se indica en que categoría estamos (ver foto), lo que no consigo saber es como se crea ese panel, de donde saca esa información, qué variables usa, ¿alguien lo sabe?

 

Sabiendo que variable usa el panel de navegación podriamos usar esa variable en lugar de id_category, o eso espero yo.

 

Si conseguimos hacer esto creo que a mucha gente le interesaría usarlo en sus webs.

post-379339-0-37034800-1348975276_thumb.jpg

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

Gracias por tu respuesta.

 

Esto lo saque de respuestas en otros hilos, allí usaban $smarty.get.id_category, lo bueno es que funciona en las categorías y lo malo es que solo funciona en las categorías, cuando estas en un producto el valor de $smarty.get.id_category es nulo y en esos casos el sistema te manda al 'tema' por defecto no al 'tema' de la categoría en la que está el producto.

 

Lo que he visto es que el único sitio en el que siempre aparece la categoría cuando estás en una categoría y tambien cuando estás en un producto es en la navegación esa, por eso intento averiguar de donde saca la navegación la información de la categoría.

 

He descubierto que en breadcrumb.tpl la variable $path toma el valor de la posición completa en la navegación, me falta saber como obtiene la parte de la categoría.

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

Lo he conseguido, la forma correcta es

 

$kategoria = $_GET['id_category'];
define('_THEME_NAME_', 'prestashop' . (isset($kategoria) ? $kategoria : ''));

 

Ahora me falta saber poner los condicionales (if) para $kategoria.

 

Lo que quiero es comparar $kategoria con varios valores numéricos, y que según esa comparación tome un valor u otro.

 

A ver si lo consigo, una ayuda no me vendría mal, jejeje.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...