Bonjour à tous.
Je ne suis pas nouveau sur le forum, cela fait un an que je prends vos conseils et je remercie toutes les personnes qui prennent le temps d'expliquer à d'autres, cela m'a rendu d'énormes services.
Le but de mes postes sera de donner les astuces que j'ai adapté afin d'afficher certains éléments. J'ai mis du temps à trouver les solutions et je souhaite les partager afin que d'autres personnes puissent les utiliser. J'espère que la démarche correspond à ce forum et que mes postes conviendront.
Pour finir la présentation, je ne suis pas programmeur, il peut y avoir des erreurs dans mes lignes, je suis la pour donner des astuces fonctionnelles, tout commentaire constructif sera le bienvenue !
Mon but pour cette astuce est donc d'afficher un "état" sous les articles. Par "état" j'entend pour mes besoin un "type" parmi les 3 suivants : En stock / Sur mesure / Sur commande. Heureusement, les états disponibles sont aussi à 3 : Neuf / Occasion / Reconditionné.
On va donc faire un tour dans les traduction [Localisation] > [Traductions] > [Front office]>[Choix du theme]> [Français]> Recherche et modification des termes :
Etat > Type
Neuf > En stock
Occasion > Sur-mesure
Reconditionné > Sur commande
Puis on fait pareil pour [back office]>[Choix du theme]> [Français], afin que le choix sera plus facil lors de la creation d'une fiche produit.
On passe maintenant à l'affichage sur la page produits, il faudra aller modifier dans votre FTP, dans le dossier de votre thème, le fichier "product-list.tpl"
Rechercher l'emplacement de :
<h5 itemprop="name">
{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}
{/if}
<a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url" >
{$product.name|truncate:45:'...'|escape:'html':'UTF-8'}
</a>
</h5>
Pour ceux qui cherchent, on peut s'aider de la balise "h5" pour trouver plus facilement.
J'ai alors cherché le code affichant l'état dans "product.tpl". Prestashop l'appelle "condition"
Le résultat est donc :
{capture name=condition}
{if $product->condition == 'new'}{l s='New'}
{elseif $product->condition == 'used'}{l s='Used'}
{elseif $product->condition == 'refurbished'}{l s='Refurbished'}
{/if}
{/capture}
<p id="product_condition"{if !$product->condition} style="display: none;"{/if}>
<label>{l s='Condition'} </label>
<span class="editable" itemprop="condition">{$smarty.capture.condition}</span>
Je l'ajoute dans mon product-list et après quelques modifications (jai essayé de commenter mes modifications dans le code) :
<h5 itemprop="name">
{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}
{/if}
<!--Recherche de l'etat-->
{capture name=condition}
{if $product.condition == 'new'}{l s='New'}
{elseif $product.condition == 'used'}{l s='Used'}
{elseif $product.condition == 'refurbished'}{l s='Refurbished'}
{/if}
{/capture}
<!--fin de la recherche de l'etat-->
<!--Affichage du titre-->
<a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url" >
{$product.name|truncate:45:'...'|escape:'html':'UTF-8'} <br />
<!--Fin Affichage du titre (le br a la fin fait un retour a la ligne-->
<!--Affichage de la condition (d'abord le titre (etat) par defaut, puis la variable smarty)-->
{l s='Condition'}
{$smarty.capture.condition}
<!--Fin Affichage de la condition-->
</a>
</h5>
Et le résultat en image :
Avis aux modérateurs, puis-je mettre le lien de ma boutique dans mes articles pour une meilleure visualisation ?
Merci à tous les lecteurs,
Allan