janoloco Posted March 2, 2012 Share Posted March 2, 2012 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 More sharing options...
rafarrc Posted March 2, 2012 Share Posted March 2, 2012 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 More sharing options...
janoloco Posted March 2, 2012 Author Share Posted March 2, 2012 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 More sharing options...
banense Posted March 2, 2012 Share Posted March 2, 2012 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 More sharing options...
janoloco Posted March 2, 2012 Author Share Posted March 2, 2012 Gracias banense Tu sabes que parte del código hay que corregir? Link to comment Share on other sites More sharing options...
janoloco Posted March 3, 2012 Author Share Posted March 3, 2012 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 More sharing options...
banense Posted March 3, 2012 Share Posted March 3, 2012 jano tienes el sitio montado online ???.. si es asó porfa pasame por pv la url y las cosas para mirarlo desde aqui desde casa.. Saludos Link to comment Share on other sites More sharing options...
janoloco Posted March 3, 2012 Author Share Posted March 3, 2012 Gracias banense, aquí tienes el sitio en un link donde tengo el problema con la imagen http://madereria.mx/es/8-varios Link to comment Share on other sites More sharing options...
janoloco Posted March 4, 2012 Author Share Posted March 4, 2012 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 More sharing options...
Recommended Posts