Zencart: Link View All/Ver Todo

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’) ) ) {
?>

number_of_rows > MAX_DISPLAY_PRODUCTS_LISTING ? ‘‘ . ‘Paginate Products’ . ‘‘ : »);
$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