CatalaGlass Posted January 22, 2015 Share Posted January 22, 2015 Bonjour à tous, Et merci pour toutes les ptites infos et conseils que j'ai déjà trouver dans d'autres fils ... Mais là, dans ce que je souhaite faire, je ne provoque que des plantages, alors je fais appel à vous : J'aimerais faire apparaitre dans le titre du produit une 2° ligne dans la quelle je ferais apparaitre une caracteristique importante. pour infos je suis en versions 1.6.0.11 avec le theme par defaut Alors pour le faire je prend mon fichier product.tpl vers la ligne 153 , dans la balise H1 j'ajoute un saut de ligne <h1 itemprop="name">{$product->name|escape:'html':'UTF-8'}<br /> </h1> pour ensuite appeler la valeur de la caracteristique qui dans le tableau a l'ID 2 Alors j'utilise cette portion de code, trouvé sur le forum, qui me dépasse (sorti du html et du css, je suis ignare) {if $features}<!-- product's features --> <ul id="idTab2" class="bullet"> {foreach from=$features item=feature} {if $feature.id eq 2} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8}</li> {/if} {/foreach} </ul> {/if} Mais ça ne marche pas ... j'ai lu qu'il fallait utiliser $feature.id_feature mais je ne dois pas corriger aux bons endroits car la page plante toujours (elle reste vide) ... Alors si une âme charitable veut bien m'aider à ecrire cette ligne de code je serais, comment dire, très reconnaissant. merci d'avance et bonne journée Link to comment Share on other sites More sharing options...
CatalaGlass Posted January 26, 2015 Author Share Posted January 26, 2015 Après plusieurs heures de bricolage, j’amène ma propre réponse : <h1 itemprop="name">{$product->name|escape:'html':'UTF-8'}<br /> {foreach from=$features item=feature} {if $feature.id_feature eq 2} {$feature.value|escape:'html':'UTF-8'} {/if} {/foreach} </h1> Si ça peut aider quelqu’un ... Link to comment Share on other sites More sharing options...
Mediacom87 Posted January 26, 2015 Share Posted January 26, 2015 Bonjour, merci pour ce retour, par contre peut être pourriez ajouter un {break} à la fin de votre if pour sortir du foreach après avoir trouver la bonne occurrence et ainsi gagner en performance 1 Link to comment Share on other sites More sharing options...
CatalaGlass Posted January 26, 2015 Author Share Posted January 26, 2015 (edited) Merci je vais tenter votre optimisation, Par contre, ma modification ci dessus, ne fonctionne qu'avec mon fichier product.tpl Les fiches produit sont bien bien comme je le désire avec la caractéristique de la ligne 2 en sous-titre. Mais je n'arrive pas à la faire fonctionner dans les pages avec les listes de produits ... En effet pour ajouter aussi un sous-titre au nom du produit dans les listes de produit. Je modifie mon product_list.tpl mais je n'obtient qu'une balise vide ... Voila la modification dans le product_list.tpl qui est sans résultat : <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'}<br /> {foreach from=$features item=feature} {if $feature.id_feature eq 2} <span class="product-soustitre">{$feature.value|escape:'html':'UTF-8'}</span> {/if} {/foreach} </a> </h5> Comme je le disais , en examinant la page dans mon navigateur :je retrouve bien les balise <br> <br /> là où je devrais trouver la caractéristique, mais c'est tout simplement vide ... Quelqu'un à un conseil ? une idée ? Merci d'avance, Edited January 26, 2015 by CatalaGlass (see edit history) Link to comment Share on other sites More sharing options...
CatalaGlass Posted January 27, 2015 Author Share Posted January 27, 2015 Bon je me re-réponds ... J'ai enfin reussia à à faire fonctionner ma demande pour le product-list.tpl <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'} <br /> {if $product.features } {foreach from=$product.features item=feature name=features} {if $feature.name == "lenomdelacaracteristique"} <span class="product-soustitre">{$feature.value|escape:'html':'UTF-8'}</span> {/if} {/foreach} {/if}</a> </h5> Ne me demander pas pourquoi il faut 2 recettes différentes pour product.tpl et product-list.tpl ... J'ai vraiment l'impression d’être un singe de laboratoire jouant aux Lego ... Reste maintenant à voir si cette recette va fonctionner pour bloc "déjà vus" et pour le "comparateur" ... Link to comment Share on other sites More sharing options...
CatalaGlass Posted June 9, 2015 Author Share Posted June 9, 2015 Après quelques mois, j'ai à nouveau du temps pour faire avancer ce projet, et je me replonge sur ce point qui me pose toujours des problèmes ... Pour appeler 2 caractéristiques dans la page produit j’insère dans product.tpl <br /> {foreach from=$features item=feature} {if $feature.id_feature eq 4} <span class="product-soustitre-gamme">{$feature.value|escape:'html':'UTF-8'}</span> {/if} {/foreach} <br /> {foreach from=$features item=feature} {if $feature.id_feature eq 2} <span class="product-soustitre-couleur">en {$feature.value|escape:'html':'UTF-8'}</span> {/if} {/foreach} et ça marche ! Pour ajouter ces 2 même caractéristiques dans la page liste produit, j’insère dans product-list.tpl <br /> {if $product.features } {foreach from=$product.features item=feature name=features} {if $feature.name == "Gamme"} <span class="product-soustitre-gamme">{$feature.value|escape:'html':'UTF-8'}</span> {/if} {/foreach} {/if} <br /> {if $product.features } {foreach from=$product.features item=feature name=features} {if $feature.name == "Couleur"} <span class="product-soustitre-couleur">{$feature.value|escape:'html':'UTF-8'}</span> {/if} {/foreach} {/if} Et la aussi ça marche. Mais quand je veux appliquer une de ces recette au caddie en ajoutant ces modifs à shopping-cart-product-line.tpl ou le comparateur de produit en modifiant products-comparison.tpl ou encore le bloc "déjà vus" avec le blockviewed.tpl J'arrive au même échec : Lorsque je visualise les pages, les caractéristiques n’apparaissent pas, mais en examinant le code généré on retrouve bien toutes les balises <br /> et </span>, mais vide ... Quelqu'un aurait-il une idée pour m’éclairer , c'est assez important car j'ai réalisé mes fiches produits dans l’optique de pouvoir appeler les caractéristiques comme sous-titre Merci d'avance Link to comment Share on other sites More sharing options...
CatalaGlass Posted June 10, 2015 Author Share Posted June 10, 2015 (edited) Après de longue recherches, piochages dans différends post, et test "empirique", j'ai bricolé ça dans mon shopping-cart-product-line.tpl {assign var='features' value=Product::getFrontFeaturesStatic($cookie->id_lang, $product.id_product)} {if isset($features) && $features} {foreach from=$features item=feature} {if $feature.id_feature eq 4} <span class="product-soustitre-gamme">{$feature.value|escape:'htmlall':'UTF-8'}</span> {/if} {/foreach} <br /> {foreach from=$features item=feature} {if $feature.id_feature eq 2} <span class="product-soustitre-couleur">{$feature.value|escape:'htmlall':'UTF-8'}</span> {/if} {/foreach} {/if} Et ça fonctionne pour le caddi ! Mais malheureusement pas compatible avec le comparateur products-comparison.tpl, ni le bloc "déjà vus" blockviewed.tpl Quelqu'un a une piste pour ces 2 dernier .tpl qui me posent problème? Merci d'avance Edited June 12, 2015 by CatalaGlass (see edit history) Link to comment Share on other sites More sharing options...
CatalaGlass Posted June 11, 2015 Author Share Posted June 11, 2015 (edited) On dirait que ça n’intéresse par grand monde ... Mais j'insiste quand même Je bloques toujours sur le comparateur products-comparison.tpl, et le bloc "déjà vus" blockviewed.tpl Dans mes recherches d'aujourd'hui, j'ai trouvé une autre méthode qui fonctionne très bien pour le product.tpl Je l'ai trouvé là : http://www.prestarocket.com/blog/prestashop-tut-feature-produit/ Ça passe par l'utilisation de l'override avec la création de productcontroller.php ... J'ai essayé de réutiliser cette méthode pour les autres .tpl dans lesquels je veux faire apparaitre certaines caractéristiques Mais c'est encore une échec. S'il vous plait, quelqu’un saurait me réorienté vers la source de ce qui coince, de ce que je ne doit pas comprendre. Edited June 12, 2015 by CatalaGlass (see edit history) Link to comment Share on other sites More sharing options...
Manu-41 Posted July 20, 2018 Share Posted July 20, 2018 On 11/06/2015 at 4:35 PM, CatalaGlass said: On dirait que ça n’intéresse par grand monde ... Mais j'insiste quand même Je bloques toujours sur le comparateur products-comparison.tpl, et le bloc "déjà vus" blockviewed.tpl Dans mes recherches d'aujourd'hui, j'ai trouvé une autre méthode qui fonctionne très bien pour le product.tpl Je l'ai trouvé là : http://www.prestarocket.com/blog/prestashop-tut-feature-produit/ Ça passe par l'utilisation de l'override avec la création de productcontroller.php ... J'ai essayé de réutiliser cette méthode pour les autres .tpl dans lesquels je veux faire apparaitre certaines caractéristiques Mais c'est encore une échec. S'il vous plait, quelqu’un saurait me réorienté vers la source de ce qui coince, de ce que je ne doit pas comprendre. Bonjour, je ressort ce sujet car je suis intéressé par la solution pour ajouter 2 caractéristique sur le titre du produit du module produit similaire. J'ai testé ce que vous avez fait, mais rien ne fonctionne. Avez vous réussi depuis... Merci pour vos infos. Link to comment Share on other sites More sharing options...
jbnichou Posted June 3, 2020 Share Posted June 3, 2020 Bonjour, Je suis également intéressé par une solution pour ajouter les features sur les produits déjà vus dans blockviewed.tpl Par avance merci pour vos retours. Link to comment Share on other sites More sharing options...
Manu-41 Posted June 3, 2020 Share Posted June 3, 2020 J'ai trouvé la solution pour 1.6.1 je suis passé par le nom de la caractéristique, que j'affiche dans le titre que je veux. Il y a un post sur le forum Link to comment Share on other sites More sharing options...
jbnichou Posted June 3, 2020 Share Posted June 3, 2020 32 minutes ago, Manu-shop said: J'ai trouvé la solution pour 1.6.1 je suis passé par le nom de la caractéristique, que j'affiche dans le titre que je veux. Il y a un post sur le forum Pourriez-vous me fournir le lien vers la solution ? Link to comment Share on other sites More sharing options...
Manu-41 Posted June 3, 2020 Share Posted June 3, 2020 c'est sur le forum Link to comment Share on other sites More sharing options...
Mediacom87 Posted June 3, 2020 Share Posted June 3, 2020 il y a 41 minutes, Manu-shop a dit : Il y a un post sur le forum url ? Link to comment Share on other sites More sharing options...
Manu-41 Posted June 3, 2020 Share Posted June 3, 2020 ou le code directement 😉 j'ai regardé je sais que c'est sur le forum, mais la recherche n'est pas top sur le forum. J'avais indiqué la solution. Link to comment Share on other sites More sharing options...
Manu-41 Posted June 3, 2020 Share Posted June 3, 2020 à tester suivant ou tu veux l'afficher {foreach from=$product.features item=feature name=features} {if $feature.id_feature == 1}<span class="tag_caracteristique1">{$feature.value|escape:'htmlall':'UTF-8'}</span> {/if} {foreachelse} {/foreach} 1 correspond à l'id de ta caractéristique Link to comment Share on other sites More sharing options...
jbnichou Posted June 3, 2020 Share Posted June 3, 2020 Merci mais dans le fichier blockviewed.tpl la requête n'est pas sur la variable $product mais plutôt {foreach from=$productsViewedObj item=viewedProduct name=myLoop} Et je n'ai pas accès aux variables features voici mon code ci-dessous : <!-- Block Viewed products --> <div id="viewed-products_block_left" class="block"> <p class="title_block"><span>{l s='Viewed products' mod='blockviewed'}</span></p> <div class="block_content products-block"> <ul> {foreach from=$productsViewedObj item=viewedProduct name=myLoop} <li class="clearfix{if $smarty.foreach.myLoop.last} last_item{elseif $smarty.foreach.myLoop.first} first_item{else} item{/if}"> <a class="products-block-image" href="{$viewedProduct->product_link|escape:'html':'UTF-8'}" title="{l s='More about %s' mod='blockviewed' sprintf=[$viewedProduct->name|escape:'html':'UTF-8']}" > <img src="{if isset($viewedProduct->id_image) && $viewedProduct->id_image}{$link->getImageLink($viewedProduct->link_rewrite, $viewedProduct->cover, 'home_default')}{else}{$img_prod_dir}{$lang_iso}-default-medium_default.jpg{/if}" alt="{$viewedProduct->legend|escape:'html':'UTF-8'}" /> </a> <div class="product-content"> <h3> <a class="product-name" href="{$viewedProduct->product_link|escape:'html':'UTF-8'}" title="{l s='More about %s' mod='blockviewed' sprintf=[$viewedProduct->name|escape:'html':'UTF-8']}"> {$viewedProduct->name|escape:'html':'UTF-8'} {if isset($features)} <span>{$features_by_key.1.name} </span>{$features_by_key.1.value} <span>{$features_by_key.4.name} </span>{$features_by_key.4.value} {/if} </a> </h3> <p class="price">{convertPrice price=$viewedProduct->price}</p> </div> </li> {/foreach} </ul> </div> </div> Link to comment Share on other sites More sharing options...
Manu-41 Posted June 3, 2020 Share Posted June 3, 2020 a tester, et n'oublie pas de changer le 1 par l'id de ta caractéristique. Je n'ai pas le module produit déjà vu, mais le code fonctionne dans d'autre modules. {foreach from=$viewedProduct.features item=feature name=features} {if $feature.id_feature == 1}<span class="tag_caracteristique1">{$feature.value|escape:'htmlall':'UTF-8'}</span> {/if} {foreachelse} {/foreach} Link to comment Share on other sites More sharing options...
jbnichou Posted June 4, 2020 Share Posted June 4, 2020 Merci pour la réponse, malheureusement j'ai une erreur : Fatal error: Cannot use object of type stdClass as array in /var/www/vhosts/.../tools/smarty/sysplugins/smarty_internal_templatebase.php(171) : eval()'d code on line 79 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now