Zencart tiene la opción de realizar un paginado cuando muestra la lista de productos pero a veces es necesario además un link que muestre todos los productos de una categoría y no usando paginación.
Una opción simple sería aumentar el número máximo de producto para mostrar: configuration/maximun values/Products Listing- Number Per Page
Pero si quisieramos mantener ambas opciones funcionando mediante un link «view all» debemos modificar en nuestro template el archivo templates/tpl_modules_product_listing.php
Buscamos las líneas:
[cc lang=»php»]
number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == ‘1’) || (PREV_NEXT_BAR_LOCATION == ‘3’) ) ) {
?>
[/cc]
Y vamos a reemplazarlas por:
[cc lang=»php»]
number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == ‘1’) || (PREV_NEXT_BAR_LOCATION == ‘3’) ) ) {
?>
$max_display_products_listing_override = $db->Execute($listing_sql);
$max_display_products_listing_override = $max_display_products_listing_override->RecordCount();
$listing_split = new splitPageResults($listing_sql, $max_display_products_listing_override, ‘p.products_id’, ‘page’);
} else {
// Si estamos paginando mostramos el link «View All»
echo ($listing_split->number_of_rows > MAX_DISPLAY_PRODUCTS_LISTING ? ‘‘ . ‘View All’ . ‘‘ : »);
}
?>
[/cc]
Hay un detalle más que tal vez debamos cambiar según nuestra versión de Zencart en el archivo de nuestro template modules/tpl_tabular_display.php
Probablemente en la línea 17, buscamos:
[cc lang=»php»]
$listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_PRODUCTS_LISTING, ‘p.products_id’, ‘page’);
[/cc]
Simplemente borramos o dejamos comentada dicha línea
Observaciones
- Si no encuentras dichos archivos en tu template debes copiarlos de la carpeta template_default
- No olvides realizar un backup antes de hacer cualquier cambio
- Si te aparece algun error tipo unexpected Var…. eso significa que te haz comido alguna llave o punto y coma