Por defecto en prestashop tenemos la «vista cuadrícula» por defecto en el listado de productos. Para poner la «vista lista» siempre por defecto hay que hacer 2 pequeños cambios en nuestro theme default-bootstrap.
1. Buscamos en el archivo: /themes/default-bootstrap/produt-list.tpl el siguiente código:
<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list grid row{if isset($class) && $class} {$class}{/if}{if isset($active) && $active == 1} active{/if}">
Y lo reemplazamos por:
<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list list row{if isset($class) && $class} {$class}{/if}{if isset($active) && $active == 1} active{/if}">
2. Buscamos en el archivo: /themes/default-bootstrap/js/global.js el siguiente código:
function bindGrid(){ var view = $.totalStorage('display'); if (view && view != 'grid') display(view); else $('.display').find('li#grid').addClass('selected'); $(document).on('click', '#grid', function(e){ e.preventDefault(); display('grid'); }); $(document).on('click', '#list', function(e){ e.preventDefault(); display('list'); }); }
Y lo reemplazamos por:
function bindGrid(){ var view = $.totalStorage('display'); if (view && view != 'list') display(view); else { $('.display').find('li#list').addClass('selected'); display('list'); } $(document).on('click', '#grid', function(e){ e.preventDefault(); display('grid'); }); $(document).on('click', '#list', function(e){ e.preventDefault(); display('list'); }); }
Con eso basta. Básicamente lo único que hacemos es cambiar la clase «grid» por «list» en el listado.
Agradezco tu comentario 🤘