Jump to content

Poner etiqueta en imagen de producto


Recommended Posts

Bueno, después de solucionar la duda en el siguiente hilo:

 

http://www.prestashop.com/forums/topic/298350-solucionado-poner-etiqueta-en-imagen-de-producto/

 

Me ha surgido un nuevo problema.

 

Estuve realizando algunos cambios y por arte de magia (o por cazurro mas bien) no he vuelto a poder mostrar la etiqueta "¡Precio rebajado!".

 

Aquí está el product-list:

{if isset($products)}
	<!-- Products list -->
	<ul id="product_list" class="clearfix">
	{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.iteration%3 == 0}last_row_item{else}item{/if}">
			<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_default')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />
				{if isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount">{l s='Reduced price!'}</span>
				{elseif isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}
			</a>
			{*<p class="clear"></p>*}
			<h3><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|escape:'htmlall':'UTF-8'|truncate:78:'...':true}</a></h3>
			<div class="content_price">
				{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.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}

				{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)}
						{if isset($static_token)}
							<a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}&token={$static_token}", true)}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>
						{else}
							<a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}", true)}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>
						{/if}						
					{else}
						<span class="exclusive">{l s='Add to cart'}</span><br />
					{/if}
				{/if}
				<!-- Eliminar comparador -->
				{*{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="checked"{/if} /> 
						<label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label>
					</p>
				{/if}*}
			</div>
		</li>
	{/foreach}
	</ul>
	<!-- /Products list -->
{/if}

Quiero hacer lo que aparece en las lineas 8 y 9. Si el producto esta en rebajas y es nuevo o no, muestra la etiqueta "¡Precio rebajado!", y si es nuevo y no esta en rebajas, muestra la etiqueta "Nuevo".

 

Creo que el problema esta en el código, porque al inspeccionar el elemento en la web no aparece ni siquiera la etiqueta 

<span class="discount">

pero si aparece la etiqueta 

<span class="new">

Si es necesario también puedo poner aquí el product-list.css, aunque no lo he puesto porque como dije antes creo que es problema del código (igual me equivoco).

 

PD: Tengo la tienda en local, así que no puedo poner el enlace.

 

Gracias por adelantado!

Link to comment
Share on other sites

¿Por que tienes esto:

<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />
				{if isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount">{l s='Reduced price!'}</span>
				{elseif isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}

depende esto:

<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html'}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />

{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}
{if isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount_nadie">{l s='Reduced price!'}</span>{/if}

¿Como se te indico en el otro tema (http://www.prestashop.com/forums/topic/298350-solucionado-poner-etiqueta-en-imagen-de-producto/) ? ?

Link to comment
Share on other sites

Hola nadie.

 

Acabo de arreglarlo, ya si muestra la etiqueta que quería.

 

El problema es que si el producto está marcado como nuevo y rebajado, muestra la etiqueta "Nuevo" y no la etiqueta "¡En rebajas!", y me gustaría que se mostrara primero la etiqueta "¡En rebajas!" y si el producto no está rebajado, que si se muestre la etiqueta "Nuevo". Por eso puse el elseif (no se que hice que estuve probando con la solución que me has dado y no había forma de mostrar la etiqueta)

 

Gracias!

Link to comment
Share on other sites

Hola nadie.

 

Acabo de arreglarlo, ya si muestra la etiqueta que quería.

 

El problema es que si el producto está marcado como nuevo y rebajado, muestra la etiqueta "Nuevo" y no la etiqueta "¡En rebajas!", y me gustaría que se mostrara primero la etiqueta "¡En rebajas!" y si el producto no está rebajado, que si se muestre la etiqueta "Nuevo". Por eso puse el elseif (no se que hice que estuve probando con la solución que me has dado y no había forma de mostrar la etiqueta)

 

Gracias!

 

¿Y entonces cual fue la solución que aplicastes al final a nivel de codigo?

Link to comment
Share on other sites

El problema que tenia después de copiar el código del anterior hilo era que no me mostraba ni siquiera la etiqueta "¡En rebajas!" (algo toqué pero no se que era).

 

Ahora mismo acabo de copiar el código que has puesto y funciona perfectamente, pero lo que además quiero hacer es lo que explico en el comentario anterior, por eso intenté hacerlo con un elseif, pero no lo conseguí.

Link to comment
Share on other sites

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