Jump to content

Mostrar legendas diferentes em cada imagem do produto — Prestashop 1.7.5.2


Recommended Posts

Boa tarde,

Já coloquei a questão no fórum internacional (aqui, em inglês), mas sem sucesso…

Estou com um problema na página de produto, na janela modal da galeria de imagens.

Criei um produto com duas imagens, cada uma com a sua legenda, como mostro no anexo:

9b1ScreenShot20200330at.thumb.png.ec03b5cfe0b2b2cee14bad77461c2839.png9eScreenShot20200330at.thumb.png.32f451e91fc8a1b5f6b50d89f4f3adcf.png

Tanto no backoffice como na base de dados têm associadas a respectiva legenda.
Contudo, na janela modal ambas as imagens mostram a mesma legenda, a da imagem de capa.

Usando o Inspector do Chrome consigo ver que os atributos título e texto alternativo de cada imagem estão correctos, mas o campo descrição/legenda não.

 

ScreenShot20200330at.thumb.png.59dc30992d9897fab9d260c851a9e4d2.png

 

f71ScreenShot20200330at.thumb.png.e2028c8263c5e0aa9f16cabcf0418ded.png

 

Este tópico (em inglês) relata um problema semelhante, mas não é exactamente o mesmo. Contudo, levou-me a verificar os ficheiros de template.

No ficheiro themes/classic/templates/catalog/_partials/product-images-modal.tpl:

<figure>
	<img class="js-modal-product-cover product-cover-modal" width="{$product.cover.large.width}" src="{$product.cover.large.url}" alt="{$product.cover.legend}" title="{$product.cover.legend}" itemprop="image">
	<figcaption class="image-caption">
      {block name='product_description_short'}
      <div id="product-description-short" itemprop="description">
		<p>{$product.cover.legend}</p>
      </div>
      {/block}
  </figcaption>
</figure>

No ficheiro themes/classic/templates/catalog/product.tpl:

{block name='product_images_modal'}
	{include file='catalog/_partials/product-images-modal.tpl'}
{/block}

 

Parece que a página principal apenas chama o template da janela modal, que por sua vez chama especificamente o $product.cover.legend.

Por processo de tentativa/erro, cheguei à conclusão que consigo alterar a legenda para a que eu quiser se usar {$product.images[n].legend}, onde n é o ID da imagem.

O que acontece é que isso apenas muda a legenda que é apresentada na modal, pois continua a ser fixam independentemente da imagem seleccionada.

Existe alguma forma de ir buscar o ID da imagem seleccionada/actual e enviá-lo para o template da modal? Ou estou ver o problema de forma errada?

No exemplo que apresento não é crítico, já que a diferença é óbvia. Mas em muitos outros produtos é de alguma importância, p.ex. numa colecção de 10 livros em que pretendo legendar cada imagem com o nome do livro em vez de criar uma legenda única com 10 linhas.

Não tenho qualquer tipo de experiência em modificar ficheiros de template de um website. Não sou web developer ou programador, apenas tenho umas noções básicas. Consegui chegar a este ponto, mas não tenho ideia como prosseguir. Qualquer ajuda é bem-vinda.

Obrigado,

Owen 

ScreenShot20200330at.png

Link to comment
Share on other sites

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...