Categories: zencart - Tags: ecommerceZencart 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:
1 2
| <?php if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?> |
Y vamos a reemplazarlas por:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>
<div>
<?php
if ($_GET['override'] == 'more') {
// Si estamos mostrando todo ponemos un link "Paginate"
echo ($listing_split->number_of_rows > MAX_DISPLAY_PRODUCTS_LISTING ? '<a href="' . zen_href_link (FILENAME_DEFAULT , 'cPath=' . $_GET['cPath']) . '">' . 'Paginate Products' . '</a>' : '');
$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 ? '<a href="' . zen_href_link (FILENAME_DEFAULT , 'cPath=' . $_GET['cPath'] . '&override=more') . '">' . 'View All' . '</a>' : '');
}
?>
</div>
<div id="productsListingTopNumber" class="navSplitPagesResult back"> <?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS ); ?></div>
<div id="productsListingListingTopLinks" class="navSplitPagesLinks forward"> <?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS , zen_get_all_get_params (array('page', 'info', 'x', 'y', 'main_page'))); ?></div>
<br class="clearBoth" />
<?php
}
?> |
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:
1
| $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_PRODUCTS_LISTING, 'p.products_id', 'page'); |
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
Últimos Comentarios