MarionGeorges Posted February 9, 2015 Share Posted February 9, 2015 Bonjour à tous, J'ai un petit soucis, J'aimerais afficher dans mon manufacturer.tpl le nombre de produit tel qu'il l'est déjà affiché dans le manifacturer-list.tpl. Jusque là je me suis inspirée de ce qu'il y a dans le manufacturer-list, le problème étant que, quel que soit le nombre de produits que le fabricant a, {$manufacturer->nb_products} semble rester égal à 0. Donc, ma variable ne passe jamais dans le >0 bien qu'il y ait plusieurs produits {if $manufacturer->nb_products > 0} {l s='%d livres écrit' sprintf=$manufacturer->nb_products|intval} {else} {l s='Aucun livre écrit' sprintf=$manufacturer->nb_products|intval} {/if} Merci d'avance ! Link to comment Share on other sites More sharing options...
Lactor Posted February 9, 2015 Share Posted February 9, 2015 Bonjour, Activez le mode dev sur votre boutique et dans votre tpl, utilisez {debug} pour voir quelles sont les variables utilisées par smarty. Cela vous aidera peut-être à savoir pourquoi votre variable ne passe même pas dans la condition. Tenez-nous au courant, Bonne journée, Okar Link to comment Share on other sites More sharing options...
MarionGeorges Posted February 9, 2015 Author Share Posted February 9, 2015 (edited) Merci beaucoup pour ta réponse Okar ! j'ai donc bien utilisé {debug} dans mon tpl, et effectivement, ma variable n'est pas reconnu. Undefined property: Manufacturer::$nb_products in on line Ce qui me semble logique, puisque ce nombre s'agit certainement d'un résultat d'une request SQL stockée dans la variable $manufacturer->nb_products qui s'exécute dans le manufacturer-list.tpl. Donc théoriquement la solution serait de passer cette variable en paramètre je-ne-sais-comment, pour retrouver ce même nombre ? En pratique par contre je sèche un peu. Globalement le .tpl de manufacturer-list se présente avec une suite de conditions suivis de liens: {if $manufacturer.nb_products > 0} <a class="lnk_img" href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)|escape:'html':'UTF-8'}" title="{$manufacturer.name|escape:'html':'UTF-8'}" > {/if} Donc comme ça a froid, l'idée qui me vient serait de passer le nombre contenu dans $manufacturer.nb_products (je suppose) en GET dans le href donc a href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)?nbproduct=$manufacturer.nb_products|escape:'html':'UTF-8'}" Ce qui n'est pas très propre, je l'accorde :/ ... En POST puisque ce n'est pas un form, je ne pense pas que ce soit possible... s'il y a une quelconque autres manière, je prends ! Merci ! Edited February 9, 2015 by MarionGeorges (see edit history) Link to comment Share on other sites More sharing options...
Lactor Posted February 9, 2015 Share Posted February 9, 2015 (edited) D'après votre tpl (et d'après le mien en 1.6.0.8), on appelle le nombre de produits d'un fabricant de cette façon : {if isset($manufacturer) && $manufacturer.nb_products > 0} . Essayez juste de cette manière avant tout ! Tenez-nous au courant, Okar [EDIT] Hmm, j'ai pas bien saisi votre charabia à propos de vouloir faire passer la valeur dans l'url... ^^' (le GET étant à éviter autant que possible) Si vous voulez juste afficher un nombre sur votre tpl, vous pouvez très bien faire <p> mon fabricant possède {if isset($manufacturer) && $manufacturer.nb_products > 0}{$manufacturer.nb_products}{else} 0{/if} produits </p> . En gros, nb_products est une variable déjà existante de l'objet 'manufacturer', qui renvoie le nombre de produit(s) associé(s) à un fabricant, donc vous n'avez pas besoin de réécrire de trucs ou de machins pour récupérer sa valeur...[/EDIT] Edited February 9, 2015 by okar (see edit history) Link to comment Share on other sites More sharing options...
MarionGeorges Posted February 9, 2015 Author Share Posted February 9, 2015 (edited) Le nombre de produits pour un fabricant est effectivement affiché de cette façon dans le manufacturer-list.tpl . Seulement, j'en ai besoin dans le manufacturer.tpl dans lequel j'ai fait un copier coller d'une petite partie du manufacturer-list.tpl en remplaçant les "manufacturer.nb_products" par des "manufacturer->nb_products". <p class="product-counter"> {if $manufacturer->nb_products == 1} {l s='%d product' sprintf=$manufacturer->nb_products|intval} {else} {l s='%d products' sprintf=$manufacturer->nb_products|intval} {/if} </p> Dans tous les cas cela ne semble pas être la bonne syntaxe pour afficher le nombre de produits du fabricant. Thanks ! Edited February 9, 2015 by MarionGeorges (see edit history) Link to comment Share on other sites More sharing options...
Lactor Posted February 11, 2015 Share Posted February 11, 2015 (edited) Bah, pour quoi faire, si ça marche dans un template, je ne vois pas pourquoi ça ne marcherait pas dans l'autre (surtout sur une méthode publique)... Si votre appel $manufacturer->nb_products ne marche pas, autant essayer $manufacturer.nb_products . Ce n'est pas parce qu'une vue change qu'on est obligé de réécrire une méthode (surtout si le template doit faire appel à la même méthode) ^^' Edited February 11, 2015 by okar (see edit history) Link to comment Share on other sites More sharing options...
MarionGeorges Posted February 11, 2015 Author Share Posted February 11, 2015 Malheureusement ça ne fonctionne pas. Que ce soit avec manufacturer->nb_products ou manufacturer.nb_products J'ai le même besoin sur les produits (afficher le sous-titre qui est sur le product.TPL dans le product-list), mais je ne trouve juste pas comment Merci encore de passer un peu de ton temps à m'aider Link to comment Share on other sites More sharing options...
Nadium Posted February 16, 2015 Share Posted February 16, 2015 Bonjour, j'ai également ce problème dans la page liste de produit où j'aimerais afficher un champ personnalisé. Ce dernier s'affiche bien sur la page produit avec : <h2 class="subtitle-livre">{$product->xtd_name2|escape:'html':'UTF-8'}</h2> Mais cet exact même code sur le product_list n'affiche rien :/ Est-ce que vous avez pu trouver une solution à votre problème ? Merci d'avance ! Link to comment Share on other sites More sharing options...
MarionGeorges Posted February 18, 2015 Author Share Posted February 18, 2015 Bonjour, j'up le sujet, je n'ai toujours pas de solutions, personne n'a une idée ? Merci 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