i12fehea Posted May 11, 2012 Share Posted May 11, 2012 Hola buenas a tod@s, es mi primer post. (por si cometo errores). Os explico lo que quiero hacer, mi cliente me ha pedido que cuando se listen productos, es decir cada vez que se entra en una categoría, haya por abajo en el footer, unos productos que siempre serán los mismos hasta un máximo de 6. Esto lo he resuelto cambiando la posición a Homefeatured y limitandolo a 6. El orden lo puede cambiar manualmente en la categoría inicio como muy bien sabéis. El problema viene cuando quiere hacer lo mismo es decir que salgan 6 productos en la parte superior de la categoría que se este visualizando en ese momento y que se pueda ordenar manualmente, al igual que se ordena homefeatured en su categoría inicio. Os adjunto dos imágenes para que veáis como queda. Yo hasta el momento lo que he echo es, el category.tpl de mi plantilla le he insertado antes de que muestre el listado de productos el siguiente código de homefeatured, poniéndole una condición de que no haya más de 6 productos con un if, y cambiando el titulo dependiendo de en que categoría este y me queda así: {include file="$tpl_dir./breadcrumb.tpl"} {include file="$tpl_dir./errors.tpl"} <div id="featured-products_block_center" class="block products_block"> <h4>{l s='Ofertas Destacadas de '} {strip}{$category->name|escape:'htmlall':'UTF-8'}{/strip}</h4> {if isset($products) AND $products} <div align="center"> {assign var='liHeight' value=100} {assign var='nbItemsPerLine' value=6} {assign var='nbLi' value=$products|@count} {math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines} {math equation="nbLines*liHeight" nbLines=$nbLines|ceil liHeight=$liHeight assign=ulHeight} <ul style="height:100px;"> {foreach from=$products item=product name=homeFeaturedProducts} {if $smarty.foreach.homeFeaturedProducts.iteration == 7} {break} {else} <li class="ajax_block_product {if $smarty.foreach.homeFeaturedProducts.first} first_item {elseif $smarty.foreach.homeFeaturedProducts.last} last_item {else} item {/if} {if $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 0} last_item_of_line {elseif $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 1} clear{/if} {if $smarty.foreach.homeFeaturedProducts.iteration > ($smarty.foreach.homeFeaturedProducts.total - ($smarty.foreach.homeFeaturedProducts.total % $nbItemsPerLine))} last_line {/if}"> <a href="{$product.link}" title="{$product.name|escape:html:'UTF-8'}" class=""><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" height="100" width="100" alt="{$product.name|escape:html:'UTF-8'}" /></a> <div align="center"> {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span></p>{else}<div style="height:21px;"></div>{/if} {if ($product.id_product_attribute == 0 OR (isset($add_prod_display) AND ($add_prod_display == 1))) AND $product.available_for_order AND !isset($restricted_country_mode) AND $product.minimal_quantity == 1 AND $product.customizable != 2 AND !$PS_CATALOG_MODE} {if ($product.quantity > 0 OR $product.allow_oosp)} {else} {/if} {else} {/if} </div> </li> {/if} {/foreach} </ul> </div> {else} <p>{l s='' mod='homefeatured'}</p> {/if} </div> {if isset($category)} Un saludo y muchas gracias, cualquier idea la agradecería. Link to comment Share on other sites More sharing options...
Recommended Posts