Andaba yo queriendo desarrollar mi propia solución a la cuestión de listar productos o mostrarlos en malla, y me preguntaba en qué idioma habría que hablarle a prestashop para que me entendiese.
Mi idea es dar la opción al usuario de mostrar los productos listados o en grid, y guardar la preferencia en un cookie.
Hasta aquí todo bien, el problema es el modelo de cookies de prestashop y cómo hacer uso del mismo. He intentado hacer ésto en un override de CategoryController, sin éxito:
La idea es que pulsas un botón, y vuelve a pedir la url añadiendo el valor displaygrid (true/false):
public function init() {
parent::init();
global $cookie;
if(Tools::getIsset('displaygrid')) {
$display_grid = (bool)Tools::getValue('displaygrid');
if(!isset($cookie->display_grid) || $display_grid <> $cookie->display_grid) {
$cookie->display_grid = $display_grid;
$cookie->write();
}
} else {
if (isset($cookie->display_grid)) {
$display_grid = $cookie->display_grid;
} else {
$display_grid = true;
$cookie->display_grid = true;
$cookie->write();
}
}
self::$smarty->assign('display_grid',$display_grid);
}
Pero el resultado no es el esperado: devuelve la página con &displaygrid=true&displaygrid=false, y sin ningún efecto en el template.
¿Alguna pistilla?