Archive for category: zencart

Zencart: Como saber en que pagina estoy

Categories: zencart - Tags: ,

Este es un pequeño tip que les servirá a los desarrolladores de plantillas para la popular tienda virtual Zencart.
Para conocer la página actual basta usar la variable $current_page en cualquier sección de la plantilla.

Quedaría algo como esto:

1
2
3
4
5
if ($current_page=="index") {
  // Si estoy en homepage hace algo...
} else {
  // Si estoy en una página interna hace alguna otra cosa
}

Zencart: Link View All/Ver Todo

Categories: zencart - Tags:

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:

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

Zencart: El mismo producto en 2 categorias distintas

Categories: zencart - Tags:

En zencart es posible tener un mismo producto listado en varias categorias aunque el procedimiento es un poco más complicado que en otros carritos de compras.

El primer paso es crear nuestro producto en una categoría inicial, una vez grabado veremos que en el catálogo hay un ícono con una letra “C” sobre un círculo azul, cuando le demos click aparecerá a la derecha una lista de categorias, simplemente elegimos la que necesitamos y en la opción “copy method” nos asegurmos que diga link de esta forma todos los cambios que hagamos en el producto se reflejarán en ambas categorías si optamos la segunda opción se duplicará el producto.

Zencart product category

Deprecated Functions Zencart con Wamp 2

Categories: PHP, zencart - Tags:

Hace poco formatee mi disco duro y aproveché para instalar versiones últimas de todo incluyendo Wamp pero me di con la sorpresa que varias páginas que antes funcionaban ahora daban varios mensajes de error como este en Zencart

Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\wamp\www\zencart138a\includes\application_top.php on line 18

Lo que pasa es que Wamp 2 viene con PHP 5.3 y en esta nueva versión varias funciones de PHP ya no existen, afortunadamente hay un parche que arregla Zencart sin muchas complicaciones, lo puedes bajar AQUI, luego lo descomprimes y sobreescribes los archivos en tu Zencart.

Ojo este parche sólo debe ser utilizado si tu servidor usa PHP 5.3 de lo contrario ocasionará problemas.

Thumbnails/miniaturas en zencart

Categories: Otros, zencart - Tags:

Cuando trabajamos con Zencart este no genera thumbnails de los productos lo que nos ocasiona dos problemas:
– La carga de nuestro sitio es muy lenta que las imágenes suelen ser muy pesadas
– Las imágenes reducidas que muestra zencart lucen pixeladas y por lo tanto el resultado es poco profesional

Hay un pequeño plugin que además de solucionar estos dos problemas nos ofrece algunas funciones adicionales como son:
– Agregar sellos de agua a nuestras imágenes
– Coloca una vista previa agrandada de la imagen cuando pasamos el mouse por encima
– Permite fácilmente manejar múltiples imágenes por productos

Lo mejor de todo es que es gratuito, lo podemos descargar AQUI

Para instalarlo debemos descomprimir el archivo y modificar dentro de la carpeta includes/templates el nombre de la carpeta que contiene el template con el de nuestra carpeta, luego subimos todos los archivos al servidor y lo activamos desde la administración tools/Image Handler 2