Jump to content

[RESUELTO]Módulo de novedades solo 1 producto en LeftColumn


Eusebio100

Recommended Posts

Hola, me gustaría que en mi tienda el módulo de novedades funcionase como el de ofertas, quiero decir que si lo enganchas en la home y en la columna, en esta última muestre solo un producto (aleatorio) y en la home muestre los que le marcas en configuración, en mi caso 16.

¿algún módulo que lo haga o alguna forma de modificarlo?

 

Gracias de antemano.

Edited by Eusebio100 (see edit history)
Link to comment
Share on other sites

Casi resuelto.

He conseguido lo de cargar un solo producto en left column limitando la carga en el archivo blocknewproducts.tpl, pero ahora me falta hacer que los productos se muestren de forma aleatoria, para eso creo que tengo que modificar el archivo blocknewproducts.php pero no me aclaro con él.

 

A ver si alguien me echa una mano porfa.

Link to comment
Share on other sites

Al final lo he resuelto.

Antes de nada decir que estoy con prestashop 1.6.0.11 y el tema por defecto.

 

1) Para que en la columna el módulo de productos nuevos muestre solo un producto buscar el archivo: /themes/default-bootstrap/modules/blocknewproducts/blocknewproducts.tpl

Sustituir todo el bloque de código por este:

<!-- MODULE Block new products -->
<div id="new-products_block_right" class="block products_block">
	<h4 class="title_block">
    	<a href="{$link->getPageLink('new-products')|escape:'html'}" title="{l s='New products' mod='blocknewproducts'}">{l s='New products' mod='blocknewproducts'}</a>
    </h4>
    <div class="block_content products-block">
        {if $new_products !== false}
            <ul class="products">
                {foreach from=$new_products item=newproduct name=myLoop}
                {if $smarty.foreach.myLoop.index < 1 }                
                    <li class="clearfix">
                        <a class="products-block-image" href="{$newproduct.link|escape:'html'}" title="{$newproduct.legend|escape:html:'UTF-8'}"><img class="replace-2x img-responsive" src="{$link->getImageLink($newproduct.link_rewrite, $newproduct.id_image, 'small_default')|escape:'html'}" alt="{$newproduct.name|escape:html:'UTF-8'}" /></a>
                        <div class="product-content">
                        	<h5>
                            	<a class="product-name" href="{$newproduct.link|escape:'html'}" title="{$newproduct.name|escape:html:'UTF-8'}">{$newproduct.name|strip_tags|escape:html:'UTF-8'}</a>
                            </h5>
                        	<p class="product-description">{$newproduct.description_short|strip_tags:'UTF-8'|truncate:75:'...'}</p>
                            {if (!$PS_CATALOG_MODE AND ((isset($newproduct.show_price) && $newproduct.show_price) || (isset($newproduct.available_for_order) && $newproduct.available_for_order)))}
                            	{if isset($newproduct.show_price) && $newproduct.show_price && !isset($restricted_country_mode)}
                                    <div class="price-box">
                                        <span class="price">
                                        	{if !$priceDisplay}{convertPrice price=$newproduct.price}{else}{convertPrice price=$newproduct.price_tax_exc}{/if}
                                        </span>
                                    </div>
                                {/if}
                            {/if}
                        </div>
                    </li>
                  {/if}
                {/foreach}
            </ul>
            <div>
                <a href="{$link->getPageLink('new-products')|escape:'html'}" title="{l s='All new products' mod='blocknewproducts'}" class="btn btn-default button button-small"><span>{l s='All new products' mod='blocknewproducts'}<i class="icon-chevron-right right"></i></span></a>
            </div>
        {else}
        	<p>» {l s='Do not allow new products at this time.' mod='blocknewproducts'}</p>
        {/if}
    </div>
</div>
<!-- /MODULE Block new products -->

Lo único que hice fue añadir un condicional ({if $smarty.foreach.myLoop.index < 1 }). Para que en lugar de un producto muestre dos o más, solo hay que sustituir el número en el condicional.

 

2) Para que los productos nuevos se muestren de forma aleatoria en las columnas y en el home hay que modificar el archivo: /modules/blocknewproducts/blocknewproducts.php.

 

Sobre la línea 115 buscar:

$newProducts = Product::getNewProducts((int) $this->context->language->id, 0, (int)Configuration::get('NEW_PRODUCTS_NBR'));

Sustituir por:

$newProducts = Product::getNewProducts((int) $this->context->language->id, 0, 100);shuffle($newProducts);array_splice($newProducts, (int)Configuration::get('NEW_PRODUCTS_NBR'));

Esta modificación del archivo blocknewproducts.php es una adaptación de una versión muy antigua (ps 1.2) que encontré por el foro de inglés, pero funciona perfectamente.

 

Espero que a alguien le sirva.

Link to comment
Share on other sites

  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...