Jump to content

[Solucionado]Bloque de productos, modificación.


nonocampa

Recommended Posts

Hola.

 

En el teme q estoy implementando, el bloque de productos muestras dos imagenes pequeñas al inicio y luego la lista de productos.

Modificandolo, a lo bestia, he conseguido q se muestre de la forma q adjunto. Foto y descripcion por cada producto.

Siempre q se recarga la página los productos nuevos salen en el mismo orden.

Lo q me gustaria saber es si hay alguna forma de hacer q esos productos sean o se muestren de una forma aleatoria, como hace opencart, no siendo siempre los mismos.

 

No se si me he explicado.

 

O en su defecto si ya existe un modulo asi me lo podrían linkar ?

 

gracias por todo

 

salu2

 

 

 

Ajunto.

post-310125-0-40607200-1326666964_thumb.jpg

Link to comment
Share on other sites

Hola.

 

En el teme q estoy implementando, el bloque de productos muestras dos imagenes pequeñas al inicio y luego la lista de productos.

Modificandolo, a lo bestia, he conseguido q se muestre de la forma q adjunto. Foto y descripcion por cada producto.

Siempre q se recarga la página los productos nuevos salen en el mismo orden.

Lo q me gustaria saber es si hay alguna forma de hacer q esos productos sean o se muestren de una forma aleatoria, como hace opencart, no siendo siempre los mismos.

 

No se si me he explicado.

 

O en su defecto si ya existe un modulo asi me lo podrían linkar ?

 

gracias por todo

 

salu2

 

 

 

Ajunto.

post-310125-0-40607200-1326666964_thumb.jpg

Echale un vistazo a este enlace: http://www.prestashop.com/forums/topic/54927-rendre-aleatoire-laffichage-du-block-nouveaux-produits/

Link to comment
Share on other sites

Hola

 

Siguiendo el post sugerido por "nadie" y con aportaciones encontradas por ahí, hemos quedado en esto:

modificacion en el .php

 

public function hookRightColumn($params)
{
 global $smarty;
 $newProducts = Product::getNewProducts(intval($params['cookie']->id_lang), 0, intval(Configuration::get('NEW_PRODUCTS_NBR')));
	shuffle($newProducts);
	$smarty->assign(array('new_products' => $newProducts, 'mediumSize' => Image::getSize('medium')));

 return $this->display(__FILE__, 'blocknewproducts.tpl');
}

 

y el .tpl quedaría de la siguiente forma:

 

<dl class="products">

  {foreach from=$new_products item=newproduct name=myLoop}

  {if $smarty.foreach.myLoop.index < 5}
 {if $newproduct.id_image}
  {$newproduct.id_image|escape:html:'UTF-8'}<!-- me da el el id de la imagen asociada al producto  -->
   <!--<img src=""/>  Aqui tendria q venir la imagen pero no se como hacerlo !!!!!!-->  
   {$newproduct.name|strip_tags|escape:html:'UTF-8'}<br/>
		  {if $newproduct.description_short}
	 {$newproduct.description_short|strip_tags:'UTF-8'|truncate:50:'...'}<br/>
		  {/if}
	  {/if}
	{/if}

	{/foreach}

 </dl>

 

 

El q salga el id de la imagen es solo or motivos de verificación, Luego desaparecerá.

 

Mis conocimientos de Smarty y PHP son, por ahora excasos, y necesitaría ayuda para solucionar esta cuestión programática.

 

gracias por todo

 

salu2.

 

P.D. Gracias Victor por la ayuda.

 

salu2

Link to comment
Share on other sites

Hola

 

Siguiendo el post sugerido por "nadie" y con aportaciones encontradas por ahí, hemos quedado en esto:

modificacion en el .php

 

public function hookRightColumn($params)
{
 global $smarty;
 $newProducts = Product::getNewProducts(intval($params['cookie']->id_lang), 0, intval(Configuration::get('NEW_PRODUCTS_NBR')));
	shuffle($newProducts);
	$smarty->assign(array('new_products' => $newProducts, 'mediumSize' => Image::getSize('medium')));

 return $this->display(__FILE__, 'blocknewproducts.tpl');
}

 

y el .tpl quedaría de la siguiente forma:

 

<dl class="products">

  {foreach from=$new_products item=newproduct name=myLoop}

  {if $smarty.foreach.myLoop.index < 5}
 {if $newproduct.id_image}
  {$newproduct.id_image|escape:html:'UTF-8'}<!-- me da el el id de la imagen asociada al producto  -->
   <!--<img src=""/>  Aqui tendria q venir la imagen pero no se como hacerlo !!!!!!-->  
   {$newproduct.name|strip_tags|escape:html:'UTF-8'}<br/>
		  {if $newproduct.description_short}
	 {$newproduct.description_short|strip_tags:'UTF-8'|truncate:50:'...'}<br/>
		  {/if}
	  {/if}
	{/if}

	{/foreach}

 </dl>

 

 

El q salga el id de la imagen es solo or motivos de verificación, Luego desaparecerá.

 

Mis conocimientos de Smarty y PHP son, por ahora excasos, y necesitaría ayuda para solucionar esta cuestión programática.

 

gracias por todo

 

salu2.

 

P.D. Gracias Victor por la ayuda.

 

salu2

No esta bien del todo....

 

Fijate en el original:

 

<div id="new-products_block_right" class="block products_block">
<h4><a href="{$link->getPageLink('new-products.php')}" title="{l s='New products' mod='blocknewproducts'}">{l s='New products' mod='blocknewproducts'}</a></h4>
<div class="block_content">
{if $new_products !== false}
 <ul class="product_images clearfix">
 {foreach from=$new_products item='product' name='newProducts'}
  {if $smarty.foreach.newProducts.index < 2}
<li{if $smarty.foreach.newProducts.first} class="first"{/if}><a href="{$product.link}" title="{$product.legend|escape:html:'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'medium')}" height="{$mediumSize.height}" width="{$mediumSize.width}" alt="{$product.legend|escape:html:'UTF-8'}" /></a></li>
  {/if}
 {/foreach}
 </ul>
 <dl class="products">
 {foreach from=$new_products item=newproduct name=myLoop}
  <dt class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if}"><a href="{$newproduct.link}" title="{$newproduct.name|escape:html:'UTF-8'}">{$newproduct.name|strip_tags|escape:html:'UTF-8'}</a></dt>
  {if $newproduct.description_short}<dd class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if}"><a href="{$newproduct.link}">{$newproduct.description_short|strip_tags:'UTF-8'|truncate:50:'...'}</a> <a href="{$newproduct.link}"><img src="{$img_dir}bullet.gif" alt=">>" width="10" height="7" /></a></dd>{/if}
 {/foreach}
 </dl>
 <p><a href="{$link->getPageLink('new-products.php')}" title="{l s='All new products' mod='blocknewproducts'}" class="button_large">{l s='All new products' mod='blocknewproducts'}</a></p>
{else}
 <p>{l s='No new products at this time' mod='blocknewproducts'}</p>
{/if}
</div>
</div>

Link to comment
Share on other sites

ahora mismo me pillas fuera de juego...... :blink:

 

solo he puesto el trozo de código q he modificado, el resto sigue igual. si es a eso a lo q te refieres.

 

Hacer un volcado d productos en ramdom, lo hace, a cada recarga salen productos nuevo y en distinto ordfen, pero sin imagenes. Q es lo q busco.

Link to comment
Share on other sites

ahora mismo me pillas fuera de juego...... :blink:

 

solo he puesto el trozo de código q he modificado, el resto sigue igual. si es a eso a lo q te refieres.

 

Hacer un volcado d productos en ramdom, lo hace, a cada recarga salen productos nuevo y en distinto ordfen, pero sin imagenes. Q es lo q busco.

Ah ... no quieres que salgan las imagenes??

Link to comment
Share on other sites

eso es lo q quiero, q delante del nombre del producto salgan las imagenes.

en el original usa:_

<a href="{$newproduct.link}"><img src="{$img_dir}bullet.gif" alt=">>" width="10" height="7" /></a>

 

pero

$img_dir

apunta a

http://localhost/presta/themes/velvetsky/img/

y las imagenes de los productos estan en

http://localhost/presta/img/p/

por eso no puedo verlas.

 

No se si me explico o prefieres q te adjunte el .tpl ?

 

salu2

Link to comment
Share on other sites

He conseguido q funcione haciendo trampas, solo falta un programador en php q las quite con codigo autentico.

<!-- MODULE Block new products -->
<div id="new-products_block_right" class="block products_block">
{$raiz = 'http://localhost/presta/img/p/'}<!-- TRAMPA REALIZADA -->
<h4><a href="{$link->getPageLink('new-products.php')}" title="{l s='New products' mod='blocknewproducts'}">{l s='New products' mod='blocknewproducts'}</a></h4>
 <div class="block_content">
  {if $new_products !== false}
<ul class="product_images clearfix">
  {foreach from=$new_products item=newproduct name=myLoop}  
   {if $smarty.foreach.myLoop.index < 5}
	 <li{if $newproduct.id_image}>	
	 <dl>	
	   <a href="{$newproduct.link}"><img src={$raiz}{$newproduct.id_image|cat:'-medium.jpg'} /> </a> <!--RECONSTRUCCION DE LA URL DE LA IMAGEN -->	
		<dt>
	  <a class="text_desc" href="{$newproduct.link}" title="{$newproduct.name|escape:html:'UTF-8'}">{$newproduct.name|strip_tags|escape:html:'UTF-8'}</a>
		</dt>	  
		{if $newproduct.description_short}
		 <dd>
		  <a class="text_det" href="{$newproduct.link}">{$newproduct.description_short|strip_tags:'UTF-8'|truncate:60:'...'}</a>
		  <br/>
			  {/if}			
			{/if}
			  <a href="{$newproduct.link}" class="lnk_more">{l s='Saber más...'}</a>
	  <br/>
			 </dd>
		</dl>  
	 </li>
		{/if}  
	   {/foreach}
		</dl>		
  <dl class="products">  
  </dl>
</ul>
<p>
<a href="{$link->getPageLink('new-products.php')}" title="{l s='All new products' mod='blocknewproducts'}" class="button_large">{l s='All new products' mod='blocknewproducts'}</a>
</p>
 {else}
  <p>{l s='No new products at this time' mod='blocknewproducts'}</p>
 {/if}
</div>
</div>
<!-- /MODULE Block new products -->

muestro captura para q se vea q con cada refresco los nujevos productos cambian de posicion, como estoy de pruebas no tengo nuevos productos en demasia, asi q.....

 

 

post-310125-0-94476600-1326750303_thumb.jpg post-310125-0-85922800-1326750322_thumb.jpg post-310125-0-27868400-1326750333_thumb.jpg

 

 

 

espero soluciones a la trampa en el codigo

 

gracias por todo

 

salu2

Link to comment
Share on other sites

He conseguido q funcione haciendo trampas, solo falta un programador en php q las quite con codigo autentico.

<!-- MODULE Block new products -->
<div id="new-products_block_right" class="block products_block">
{$raiz = 'http://localhost/presta/img/p/'}<!-- TRAMPA REALIZADA -->
<h4><a href="{$link->getPageLink('new-products.php')}" title="{l s='New products' mod='blocknewproducts'}">{l s='New products' mod='blocknewproducts'}</a></h4>
 <div class="block_content">
  {if $new_products !== false}
<ul class="product_images clearfix">
  {foreach from=$new_products item=newproduct name=myLoop}  
   {if $smarty.foreach.myLoop.index < 5}
	 <li{if $newproduct.id_image}>	
	 <dl>	
	   <a href="{$newproduct.link}"><img src={$raiz}{$newproduct.id_image|cat:'-medium.jpg'} /> </a> <!--RECONSTRUCCION DE LA URL DE LA IMAGEN -->	
		<dt>
	  <a class="text_desc" href="{$newproduct.link}" title="{$newproduct.name|escape:html:'UTF-8'}">{$newproduct.name|strip_tags|escape:html:'UTF-8'}</a>
		</dt>	  
		{if $newproduct.description_short}
		 <dd>
		  <a class="text_det" href="{$newproduct.link}">{$newproduct.description_short|strip_tags:'UTF-8'|truncate:60:'...'}</a>
		  <br/>
			  {/if}			
			{/if}
			  <a href="{$newproduct.link}" class="lnk_more">{l s='Saber más...'}</a>
	  <br/>
			 </dd>
		</dl>  
	 </li>
		{/if}  
	   {/foreach}
		</dl>		
  <dl class="products">  
  </dl>
</ul>
<p>
<a href="{$link->getPageLink('new-products.php')}" title="{l s='All new products' mod='blocknewproducts'}" class="button_large">{l s='All new products' mod='blocknewproducts'}</a>
</p>
 {else}
  <p>{l s='No new products at this time' mod='blocknewproducts'}</p>
 {/if}
</div>
</div>
<!-- /MODULE Block new products -->

muestro captura para q se vea q con cada refresco los nujevos productos cambian de posicion, como estoy de pruebas no tengo nuevos productos en demasia, asi q.....

 

 

post-310125-0-94476600-1326750303_thumb.jpg post-310125-0-85922800-1326750322_thumb.jpg post-310125-0-27868400-1326750333_thumb.jpg

 

 

 

espero soluciones a la trampa en el codigo

 

gracias por todo

 

salu2

Trampa = {$img_prod_dir}

 

Hay tienes ..... eso te valdra.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...