Pregunta sobre productos más vistos..

lapagina

Nuevo usuario
Saludos.

Estoy desarrollando el web site www.serverlpw.com/mdhogar/ pero tengo la siguiente pregunta.

Estoy mostrando en la página inicial los productos mas vistos, pero necesito verlos en 2 columnas y no en 1, he tratado de hacerlo de mil un formas pero no logro. Si puedan darme una ayuda sabria agradecer.

Para ello estoy editando un archivo llamado list2.phtml identico al list.phtml pero no logro ver como muestro los productos en 2 columnas.

Gracias.
 
Última edición:

Xarlie

Super Moderador
Miembro del equipo
El fichero list2.phtml lo has creado tu ¿no? Estás seguro de que se está caragando ese fichero y no el list.phtml original?
 

lapagina

Nuevo usuario
Saludos.

Si, el fichero list2.phtml le he realizado yo y lo estoy mostranto con la intensión de guardar el archivvo original ya que no se si este es utilizado en otra parte del sistema, por lo que he creado el archivo list2.phtml y lo mando a mostrar desde CMD -> Gestionar Páginas -> Home.

Los problemas son 2 principalmente:

1. No logro mostrar los productos Más Visitados en 2 columnas, he creado en PHP una tabla par intentar guardar dentro de sus celdas productos en 3 filas y 2 columnas. Pero me arroja lo que logran ver en la siguiente dirección:

www..serverlpw.com/mdhogar/

No se si esté en lo correcto pero me parece que el siguiente código tiee mucho que ver con lo que estoy explicando:

<?php foreach ($_productCollection as $_product): ?>
Código del archivo que muestra los productos mas vistos.
<?php endforeach; ?>


El código que he tenido como resultado para el archivo list2.phtml es el siguiente



///////////////////////////////////////////////////////////////////////
<?php
/**
* Product list template
*
* @see Mage_Catalog_Block_Product_List
*/
?>
<?php $_productCollection=$this->getLoadedProductCollection() ?>
<?php if(!$_productCollection->count()): ?>
<div class="padder">
<div class="note-msg">
<?php echo $this->__('There are no products matching the selection.') ?>
</div>
</div>
<?php else: ?>
<?php echo $this->getToolbarHtml() ?>
<?php // List mode ?>
<?php if($this->getMode()!='grid'): ?>
<?php $_iterator = 0; ?>
<div class="listing-type-list catalog-listing padder">
<?php foreach ($_productCollection as $_product): ?>

<!-- Inicio de tabla para mostar productos en 2 columnas -->
<table border="1" width="600px">
<?
for($i=0;$i<3;$i++) { ?>
<tr>
<? for($j=0;$j<2;$j++) { ?>
<td>
<div class="listing-item <?php if( ++$_iterator == sizeof($_productCollection) ): ?>last<?php endif; ?>">
<?php // Product Image ?>
<div class="product-image">
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(170, 170); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
</a>
</div>

<?php // Product description ?>
<div class="product-shop">
<h5><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->htmlEscape($_product->getName())?></a></h5>
<?php if($_product->getRatingSummary()): ?>
<?php echo $this->getReviewsSummaryHtml($_product) ?>
<?php endif; ?>
<?php echo $this->getPriceHtml($_product, true) ?>
<?php if($_product->isSaleable()): ?>
<a href="#" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><img src="<?php echo $this->getSkinUrl('images/btn_add_to_cart.gif') ?>" alt="<?php echo $this->__('Add to Cart') ?>" title="<?php echo $this->__('Add to Cart') ?>" /></a>
<?php else: ?>
<div class="out-of-stock"><?php echo $this->__('Out of stock') ?></div>
<?php endif; ?>
<div class="clear"></div>
<div class="description">
<?php echo nl2br($_product->getShortDescription()) ?>
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->__('Learn More') ?></a>
</div>
<ul class="add-to">
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>"><?php echo $this->__('Add to Wishlist') ?></a></li>
<?php endif; ?>
<?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
<li><a href="<?php echo $_compareUrl ?>"><?php echo $this->__('Add to Compare') ?></a></li>
<?php endif; ?>
</ul>
</div>
</div>
</td>
<? } ?>
</tr>
<? } ?>
</table>
<?php endforeach; ?>
</div>
///////////////////////////////////////////////////////////////////////////////

Pero tengo como salida esto.
El problema es que me construye la tabla de manera correcta pero me pone al mismo producto en cada una de las celdas.

www.serverlpw.com/mdhogar/


***************************************************************************************************


2. La segunda pregunda es que tampoco logro limitar la cantida de producos que deseo se vean, es decir quiro tener un máximo de 6 procutos.
 

Xarlie

Super Moderador
Miembro del equipo
Te comentaba si estabas seguro de que te estaba mostrando ese código porque a lo mejor te sigue mostrando list.phtml. Te puedes asegurar desde la configuración del sistema, en desarrollador y mostrando la ayuda del perfilador (selecciona tu tienda en el desplegable de arriba a la izquierda).
Por otra parte veo que tienes la condición de cuando el modo no sea grid (parrilla) (if($this->getMode()!='grid')) ¿como lo tienes definido en el panel de control? Puedes ponerlo en grid/list o seleccionar uno forzosamente y que no se tenga que seleccionar desde la toolbar.
 

lapagina

Nuevo usuario
Saludos.

Disculpa le elemental de mi pregunta, pero no se desde que parte del Panel de Control se configura para que los productos "Más Vistos se vean de modo lista o de modo parrilla". Si me pudieras ayudar lo sabria agradecer.

Gracias de nuevos.
 

Xarlie

Super Moderador
Miembro del equipo
Perdona tú por pensar que lo sabías... como te has liado a programar pues... :D

Te cuento:
Sistema -> Configuración -> Opción de catálogo -> Ventana de Frontend
Y es el desplegable de "Modo de lista"
También allí configuras el número de productos que se muestran.
 

lapagina

Nuevo usuario
Saludos Xarlie.

Encontré una solución.

Luego de configurar desde el Panel Administrador para que los productos se vean por defecto de mode parrilla (grid), ocurria que el archivo list2.phtml me los seguia listando de manera "list", entonces opté por modificar el archivo list2.pthml y agregar en la parte de la decisión en donde estaba el código para que mostrara los productos de modo "list" la parte del código que me muestra los productos de modi "grid", en conclusión.

Aunque desde el Panel Administrador se configuró para que mostrara los productos modo "grid" el archivo creado list2.phtml no los mostraba, por lo que tuve que editar nuevamente el archivo y dejar de la siguiente manera:

//////////////////////////////////////////////////////////////////////


<?php
/**
* Product list template
*
* @see Mage_Catalog_Block_Product_List
*/
?>
<?php $_productCollection=$this->getLoadedProductCollection() ?>
<?php if(!$_productCollection->count()): ?>
<div class="padder">
<div class="note-msg">
<?php echo $this->__('There are no products matching the selection.') ?>
</div>
</div>
<?php else: ?>

<?php echo $this->getToolbarHtml() ?>
<?php // List mode ?>
<?php if($this->getMode()!='grid'): ?>
<?php $_iterator = 0; ?>

<div class="listing-type-grid catalog-listing padder"> <!-- the class name will change to .listing-type-cell if viewing in list mode -->
<?php $_collectionSize = $_productCollection->count() ?>
<table cellspacing="0" class="generic-product-grid" id="product-list-table">
<?php $i=0; foreach ($_productCollection as $_product): ?>
<?php if ($i++%3==0): ?>
<tr>
<?php endif ?>
<td>
<p class="product-image">
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(170, 170); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
</a>
</p>
<h5><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->htmlEscape($_product->getName()) ?></a></h5>
<?php if($_product->getRatingSummary()): ?>
<?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
<?php endif; ?>
<?php echo $this->getPriceHtml($_product, true) ?>
<?php if($_product->isSaleable()): ?>
<a href="#" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><img src="<?php echo $this->getSkinUrl('images/btn_add_to_cart.gif') ?>" alt="Add to Cart"/></a>
<?php else: ?>
<div class="out-of-stock"><?php echo $this->__('Out of stock') ?></div>
<?php endif; ?>
<div class="clear"></div>
<ul class="add-to">
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>"><?php echo $this->__('Add to Wishlist') ?></a></li>
<?php endif; ?>
<?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
<li><a href="<?php echo $_compareUrl ?>"><?php echo $this->__('Add to Compare') ?></a></li>
<?php endif; ?>
</ul>
</td>
<?php if ($i%3==0 && $i!=$_collectionSize): ?>
</tr>
<?php endif ?>
<?php endforeach ?>
<?php for($i;$i%3!=0;$i++): ?>
<td class="empty-product">&nbsp;</td>
<?php endfor ?>
<?php if ($i%3==0): ?>
</tr>
<?php endif ?>
</table>
<script type="text/javascript">decorateTable('product-list-table')</script>
</div>

<?php else: ?>

<?php // Grid Mode ?>

<div class="listing-type-list catalog-listing padder">
<?php foreach ($_productCollection as $_product): ?>
<div class="listing-item <?php if( ++$_iterator == sizeof($_productCollection) ): ?>last<?php endif; ?>">
<?php // Product Image ?>
<div class="product-image">
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(170, 170); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
</a>
</div>

<?php // Product description ?>
<div class="product-shop">
<h5><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->htmlEscape($_product->getName())?></a></h5>
<?php if($_product->getRatingSummary()): ?>
<?php echo $this->getReviewsSummaryHtml($_product) ?>
<?php endif; ?>
<?php echo $this->getPriceHtml($_product, true) ?>
<?php if($_product->isSaleable()): ?>
<a href="#" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><img src="<?php echo $this->getSkinUrl('images/btn_add_to_cart.gif') ?>" alt="<?php echo $this->__('Add to Cart') ?>" title="<?php echo $this->__('Add to Cart') ?>" /></a>
<?php else: ?>
<div class="out-of-stock"><?php echo $this->__('Out of stock') ?></div>
<?php endif; ?>
<div class="clear"></div>
<div class="description">
<?php echo nl2br($_product->getShortDescription()) ?>
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->__('Learn More') ?></a>
</div>
<ul class="add-to">
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>"><?php echo $this->__('Add to Wishlist') ?></a></li>
<?php endif; ?>
<?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
<li><a href="<?php echo $_compareUrl ?>"><?php echo $this->__('Add to Compare') ?></a></li>
<?php endif; ?>
</ul>
</div>
</div>
<?php endforeach; ?>
</div>

<?php endif; ?>
<?php echo $this->getToolbarHtml() ?>
<?php endif; ?>

//////////////////////////////////////////////////////////////////////
 
Arriba