lunaroja Posted September 30, 2012 Share Posted September 30, 2012 (edited) 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. Edited September 30, 2012 by lunaroja (see edit history) Link to comment Share on other sites More sharing options...
lunaroja Posted September 30, 2012 Author Share Posted September 30, 2012 He estado mirando breadcrumb.tpl pero no consigo sacar nada en claro. Link to comment Share on other sites More sharing options...
joseantgv Posted September 30, 2012 Share Posted September 30, 2012 Prueba con $smarty.get.id_category Link to comment Share on other sites More sharing options...
lunaroja Posted September 30, 2012 Author Share Posted September 30, 2012 (edited) 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 September 30, 2012 by lunaroja (see edit history) Link to comment Share on other sites More sharing options...
lunaroja Posted September 30, 2012 Author Share Posted September 30, 2012 (edited) ¿En settings.inc.php se puede escribir algo como {assign var='kategoria' value=$id_category}; define('_THEME_NAME_', 'prestashop' . (isset($_GET['kategoria']) ? $_GET['kategoria'] : '')); con assign y condiciones if? Edited September 30, 2012 by lunaroja (see edit history) Link to comment Share on other sites More sharing options...
lunaroja Posted September 30, 2012 Author Share Posted September 30, 2012 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 More sharing options...
Recommended Posts