Jump to content

(Solucionado) como configurar imágenes de product list?


janoloco

Recommended Posts

Pues estoy atorado en algo que puede ser que sea muy fácil pero no he podido resolverlo.

 

Cuando agrego cualquier nuevo producto a mi plantilla, las imágenes que deberías salir en la lista de productos, no se muestras.

 

aunque suba varias imágenes por producto y destine una como portada, la imágen no sale los listados. Ejemplo:

 

http://madereria.mx/es/9-construccion

 

 

Lo que noté es que esta tratando de jalar la imagen desde una carpeta que ni siquiera existe en la tienda, no he encontrado donde mover esa configuración para que el sistema no se invente esas carpetas que no existen ni trate de jalar las imágenes de ahí.

 

Supongo que el problema podría estar en product list.tpl de mi theme, pero no sabría que moverle al código, tal ves ya me estoy desviando mucho de la solución, pero de cualquier forma posteo lo que tiene ese archivo:

 

 

 

--------------------------------------------------

 

 

{if isset($products)}

<!-- Products list -->

<ul id="product_list" class="clear">

{foreach from=$products item=product name=products}

<li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix">

<a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_big')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /></a>

<div class="center_block">

<div class="product_flags">

{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}

{if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}<span class="availability">{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if}</span>{/if}

</div>

<h3><a class="product_link" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:25:'...'|escape:'htmlall':'UTF-8'}</a></h3>

<p class="product_desc"><a class="product_descr" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|truncate:300:'...'|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}">{$product.description_short|truncate:290:'...'|strip_tags:'UTF-8'}</a></p>

</div>

<div class="right_block">

{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="on_sale">{l s='On sale!'}</span>

{elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount">{l s='Reduced price!'}</span>

{/if}

{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}

{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>{/if}

{if isset($product.online_only) && $product.online_only}<span class="online_only">{l s='Online only!'}</span>{/if}

{/if}

{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}

{if ($product.allow_oosp || $product.quantity > 0) && $product.customizable != 2}

<a class="ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>

{else}

<span class="exclusive">{l s='Add to cart'}</span>

{/if}

{/if}

<a class="button" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a>

{if isset($comparator_max_item) && $comparator_max_item}

<p class="compare checkbox"><input type="checkbox" onclick="checkForComparison({$comparator_max_item})" class="comparator" id="comparator_item_{$product.id_product}" value="{$product.id_product}" /> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p>

{/if}

</div>

</li>

{/foreach}

</ul>

<!-- /Products list -->

{/if}

--------------------------------------------------------

 

 

Como siempre, gracias por su amable ayuda y el tiempo dedicado.

 

saludos

Link to comment
Share on other sites

Yo lo que te puedo recomendar es tomar el product list de una plantilla que funcione perfectamente. Te pongo la de prestashop por defecto para la versiñon 1.4.6:


{if isset($products)}
<!-- Products list -->
<ul id="product_list" class="clear">
{foreach from=$products item=product name=products}
<li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix">
<div class="center_block">
<a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} /></a>
<h3>{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}<a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a></h3>
<p class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|truncate:360:'...'|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}">{$product.description_short|truncate:360:'...'|strip_tags:'UTF-8'}</a></p>
</div> 
<div class="right_block">
{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="on_sale">{l s='On sale!'}</span>
{elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount">{l s='Reduced price!'}</span>{/if}
{if isset($product.online_only) && $product.online_only}<span class="online_only">{l s='Online only!'}</span>{/if}
{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
<div>
{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br />{/if}
{if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}<span class="availability">{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}{l s='Out of stock'}{/if}</span>{/if}
</div>
{/if}
{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE}
{if ($product.allow_oosp || $product.quantity > 0)}
<a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>
{else}
<span class="exclusive">{l s='Add to cart'}</span>
{/if}
{/if}
<a class="button" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a>
{if isset($comparator_max_item) && $comparator_max_item}
<p class="compare"><input type="checkbox" class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" {if isset($compareProducts) && in_array($product.id_product, $compareProducts)}checked{/if}/> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p>
{/if}
</div>
</li>
{/foreach}
</ul>
<!-- /Products list -->
{/if}

y aquí modificas lo que quieras para tu plantilla. El problema lo puedes tener con los estilos si nombran de manera diferente a alguna parte de la lista. Espero que te sirva de ayuda.

Link to comment
Share on other sites

Muchas gracias por el tip.

 

 

Tal ves otra opción es únicamente cambiar la parte del código que invoca a las imágenes para evitar fallas en el resto. El problema es que no sabría que parte del código cambiar....

Link to comment
Share on other sites

Tal parece que el camino de la url a través de la variable path no está llamando correctamente al camino y se lia.. por eso no te aparecen. Lo que te recomienda janoloco es lo más sencillo pues no te equivocarás en nada.

Saludos

Link to comment
Share on other sites

Modifiqué la siguiente linea y cambie home_big por home

 

<a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_big')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /></a>

 

Ahora ya muestra la imagen del producto destinada a portada, pero la muestra demasiado chica. No he podido lograr que ponga la imagen mas grande para que llene todo el recuadro.

 

Alguna idea para arreglar esto?

Link to comment
Share on other sites

Ya resolví el problema con las imágenes que no se mostraban o se mostraban demasiado pequeñas.

 

Para hacer esto, modifiqué del archivo product-list.tpl de mi tema.

 

La línea modificada es:

 

a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_big')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" /></a>

 

y únicamente cambie home_big por home, lo cual genera que la tienda "llame" de su base de datos el tamaño home, ya que el tamaño home_big no estaba definido. Para poder ver la lista de tamaños definidos o crear uno nuevo, se hace en el back store, preferencias, imágenes y ahí se muestra una lista de las que están dadas de alta actualmente.

 

Espero que esto ayude en caso de que alguien tenga problemas con las imágenes de su tema en el product list

 

Saludos y gracias por su ayuda

Link to comment
Share on other sites

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