Jump to content

[Résolu] Afficher un bloc sur un produit uniquement si catégorie XX - PS 1.7.8.4


Recommended Posts

Bonjour à tous, 

Je cherche en vain à faire une petite modification de l'affichage du produit. 

Pour faire simple, sur la fiche produit, je osuhaite ce comportement

Si le produit affiché est dans la catégorie XX, alors on affiche le bloc, sinon rien. 

j'ai testé ce code sur précédemment qui fonctinnait sur 1.7.3 et qui ne marche plus en 1.7.8.4

			{assign var='cats' value=Product::getProductCategories($product.id)}
			{if in_array(11, $cats)}
			<div>Bla blab</div>
			{/if}

Note : je ne sais pas si cela à un lien mais j'ai enlevé la catégorie dans les urls produit en seo : {id}{-:id_product_attribute}-{rewrite}.html

Avez-vous une idée ? 
PS : 1.7.8.4

Merci d'avance pour vos suggestions. 

Edited by JML
Fixé (see edit history)
Link to comment
Share on other sites

Merci @Mediacom87 pour le coup de pouce ! 

Je ressort ceci 

 

array(2) { [0]=> string(1) "5" [1]=> string(2) "11" }

array(2) { [0]=> string(1) "5" [1]=> string(2) "11" }

Et j'ai besoin d'afficher seulement le produit est dans la catégorie 11.

Link to comment
Share on other sites

Je inserer ce code : 

	{assign var='cats' value=Product::getProductCategories($product.id)}
			{if in_array('11', $cats)}
XXXXX
			{/if}

Cela affiche bien le bloc... mais partout quelque soit la catégorie. Avez-vous une autre suggestion ?

En tout cas super sympa de prendre le temps répondre. Merci

Link to comment
Share on other sites

il y a une heure, JML a dit :

Je inserer ce code : 

	{assign var='cats' value=Product::getProductCategories($product.id)}
			{if in_array('11', $cats)}
XXXXX
			{/if}

Cela affiche bien le bloc... mais partout quelque soit la catégorie. Avez-vous une autre suggestion ?

En tout cas super sympa de prendre le temps répondre. Merci

là je n'ai plus d'idée à moins de m'amuser à essayer d'intégrer le code moi même dans une installe fraiche de Prestashop.

Je vous laisse chercher pour le moment, car vous apprendrez plus avec toutes les pistes données, mais cela m'étonne que cela ne fonctionne pas comme il faut.

Videz vous bien le cache à chaque modification ?

Faites vous bien cela en mode debug pour identifier la moindre erreur ?

Link to comment
Share on other sites

Merci @Mediacom87, 

J'ai testé également et maheureusement sans succès, cela s'affiche partout sans prendre en compte l'id.
PS : j'ai bien vidé le cache 🙂

Dans tous les cas, merci d'avoir cherché et suggeré des tests !

Link to comment
Share on other sites

C'est dingue, personne n'y arrive alors que moi cela fonctionne parfaitement testé sur plusieurs versions de Prestashop, corrigé pour prendre en compte l'appel sur les pages catégories et page produit, donc je ne comprends as ce que vous faites mal.

{if (isset($category->id) && $category->id == 9) || (isset($category.id) && $category.id == 9)}

Sur la page produit c’est un objet, sur la page catégorie c’est un tableau, les bonnes incohérence de PrestaShop par moment.

Link to comment
Share on other sites

Décidemment, quand ca ne veut pas, ca ne veut pas. 

Testé aussi bien sur PS 1.7.7.5 et 1.7.8.4. Meme resultat. Cela s'affiche partout. 

			{if (isset($category->id) && $category->id == 11) || (isset($category.id) && $category.id == 11)}
			<div> XXX</div>
			{/if}

Merci encore.

Link to comment
Share on other sites

Je viens de tester à nouveau.

Et bien entendu cela fonctionne sans le moindre souci pour moi.

j’interviens sur le fichier de la page produit /themes/classic/templates/catalog/product.tpl

juste après ce code

{block name='product_details'}
	{include file='catalog/_partials/product-details.tpl'}
{/block}

je rajoute

{if (isset($category->id) && $category->id == 9) || (isset($category) && is_array($category) && $category.id == 9)}
 <div class="row">
   <div class="col-xs-12">
     {l s='Toto is in the place!'}
   </div>
 </div>
{/if}

et j'obtiens le bon résultat :

image.png.8fb07fd53601f0839f16261266f2a281.png

Et sur les autres catégories j'ai pas l'affichage

image.png.e9c3a5013ddbbd01c6ff7a5498a36a1c.png

Link to comment
Share on other sites

Merci @Mediacom87

Après de multiple test en long en large et en travers, cela fonctionnne. 

Ma contrainte était e passer par un custum.tpl avec elementor dans le theme warehouse, il semble que le code ne fonctionnne pas en passant par là. 

J'aid onc ajouté au product.tpl et dans ce cas cela fonctionne. J'avoue ne pas comprendr epourquoi le code ne fonctionne pas dans le custum mais au final le comportement atttendu est la. Merci encore. 

Link to comment
Share on other sites

  • JML changed the title to [Résolu] Afficher un bloc sur un produit uniquement si catégorie XX - PS 1.7.8.4

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