Nazo Posted August 23, 2011 Share Posted August 23, 2011 Bonjour à tous, Je suis toujours dans la personnalisation de mon prestashop et j'ai un nouveau challenge que je n'arrive malheureusement pas à relever seul. Je sollicite donc votre aide. Je suis en train de modifier le module produits phare. L'idée est de remplacer la "short description" par 3 caractéristiques produit. Voici le code actuel : <ul> {foreach from=$products item=product name=homeFeaturedProducts} <li class="ajax_block_product {if $smarty.foreach.homeFeaturedProducts.first}first_item{elseif $smarty.foreach.homeFeaturedProducts.last}last_item{else}item{/if} {if $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 0}last_item_of_line{elseif $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 1}clear{/if} {if $smarty.foreach.homeFeaturedProducts.iteration > ($smarty.foreach.homeFeaturedProducts.total - ($smarty.foreach.homeFeaturedProducts.total % $nbItemsPerLine))}last_line{/if}"> <h5><a href="{$product.link}" title="{$product.name|truncate:32:'...'|escape:'htmlall':'UTF-8'}">{$product.name|truncate:27:'...'|escape:'htmlall':'UTF-8'}</a></h5> <div class="product_desc"><a href="{$product.link}" title="{l s='More' mod='homefeatured'}">{$product.description_short|strip_tags|truncate:130:'...'}</a></div> <a href="{$product.link}" title="{$product.name|escape:html:'UTF-8'}" class="product_image"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" height="{$homeSize.height}" width="{$homeSize.width}" alt="{$product.name|escape:html:'UTF-8'}" /></a> <div> {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span></p>{else}<div style="height:21px;"></div>{/if} <a class="button" href="{$product.link}" title="{l s='View' mod='homefeatured'}">{l s='View' mod='homefeatured'}</a> {if ($product.id_product_attribute == 0 OR (isset($add_prod_display) AND ($add_prod_display == 1))) AND $product.available_for_order AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE} {if ($product.quantity > 0 OR $product.allow_oosp) AND $product.customizable != 2} <a class="exclusive ajax_add_to_cart_button" rel="ajax_id_product_{$product.id_product}" href="{$link->getPageLink('cart.php')}?qty=1&id_product={$product.id_product}&token={$static_token}&add" title="{l s='Add to cart' mod='homefeatured'}">{l s='Add to cart' mod='homefeatured'}</a> {else} <span class="exclusive">{l s='Add to cart' mod='homefeatured'}</span> {/if} {else} <div style="height:23px;"></div> {/if} </div> </li> {/foreach} </ul> J'ai repéré le code à modifier : <a href="{$product.link}" title="{l s='More' mod='homefeatured'}">{$product.description_short|strip_tags|truncate:130:'...'}</a> J'ai fais des recherches. Il semberait que pour afficher les caractéristiques produits, il faut utiliser la variable $features. J'ai vu aussi que certains recommandent de s'inspirer du fichier product.tpl. Notamment : {foreach from=$features item=feature} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li> {/foreach} Mon problème c'est que j'ai beau essayer de combiner dans tous les sens, ca ne fait pas. Un coup ca ne m'affiche aucune caractéristique, un coup ca ne m'affiche plus rien. Bref la galère. Auriez vous une idée? Merci d'avance pour le temps accordé. Cordialement Bruno Link to comment Share on other sites More sharing options...
Nazo Posted August 25, 2011 Author Share Posted August 25, 2011 petit up. Personne n'a d'idées? Link to comment Share on other sites More sharing options...
Jacques Biais Posted August 25, 2011 Share Posted August 25, 2011 Bonjour, Le short description est le 1er texte que l'on rempli dans la création d'une fiche produit. Pourquoi ne pas y mettre tout simplement les caractéristiques que tu veux voir apparaitre dans le homefeatured, cela t'évite de modifier le code. Link to comment Share on other sites More sharing options...
Nazo Posted August 25, 2011 Author Share Posted August 25, 2011 Merci pour votre réponse. Votre idée est intéressante, je n'avais pas envisagé les choses sous cet angles. Malgré tout, je préfère l'idée de modifier le code pour mettre les caractéristiques. Tout simplement parce que la short description apparait dans le moteur de recherche en description. Et je préfère donc en faire un petit texte commercial. Ca me parait plus cohérent. J'ai réfléchis à mon problème. Je pense que ca ne marche pas parce que ma variable feature n'est pas définie dans le fichier php du module produit phare. Je ne saurai pas la définir car je ne connais pas le language Smarty mais en toute logique, je dois bien pouvoir trouver un module ou elle l'est. Auquel cas j'aurais plus qu'à faire un copier coller dans le fichier php du module produit phare. Qu'en dites vous? La logique me semble bonne. Quelqu'un a t'il une idée d'un module ou la variable feature est définie? (ca m'éviterait de devoir tous les fouiller). Après, je ne sais pas si c’était une fausse affirmation ou si ce n'est plus vrai pour la version 1.4 mais j'ai lu sur un forum que la variable feature (mais pas seulement) serait définie globalement dans prestashop et que finalement elle serait accessible partout. Ca vous parle? En tout les cas, si c'est vrai, alors je ne comprends pas pourquoi ca ne marche pas... Merci d'avance pour votre aide. Cordialement Link to comment Share on other sites More sharing options...
Nazo Posted August 25, 2011 Author Share Posted August 25, 2011 Personne d'autre n'a d'idée? Link to comment Share on other sites More sharing options...
Nazo Posted August 28, 2011 Author Share Posted August 28, 2011 Petit up. Je suis désolé j'insiste mais j'ai posté sur pas mal de forums, personne n'arrive à m'aider. J'essaie de mon coté également mais toujours sans résultat. C'est le forum dédié, il doit bien y avoir un esprit éclairé qui peut m'aider? svp... Link to comment Share on other sites More sharing options...
baptt Posted August 29, 2011 Share Posted August 29, 2011 Salut, j'ai eu le même besoin que toi pour afficher l'auteur d'un livre dans mon module newproduct. Je n'ai pas le temps maintenant de regarder ton problème en détail mais voila le morceau de code que j'ai inséré. Je repasserais plus tard pour pencher en détail sur ta question. En espérant que ça puisse t'aider. {if $products.features} {foreach from=$products.features item=feature} {if $feature.name == '3.Auteur(s)'} <h5> {$feature.value|truncate:25:'...'|escape:'htmlall':'UTF-8'} </h5> {/if} {/foreach} {/if} Baptiste Link to comment Share on other sites More sharing options...
Nazo Posted August 30, 2011 Author Share Posted August 30, 2011 Salut Baptiste. Merci pour ton aide. J'ai réussi à faire ce que je voulais avec le code suivant : {foreach from=$product.features item=feature} <span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'} {/foreach} Un grand merci. A bientot ;-) 1 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