looch_france Posted May 31, 2011 Share Posted May 31, 2011 Bonjour à tous,Je n'arrive pas à trouver de réponse à une question concernant l'affichage de la description d'une produit.En fait je souhaite modifier un module de slideshow que j'utilise sur ma page d'accueil. Le slideshow affiche la description du produit grâce à la $product.descriptionLe soucis c'est que la mise en forme de la description faire côté back office est perdu.lorsque je regarde le product.tpl, je m'aperçois qu'on utilise un objet php $product->description. Mais quand je l'utilise dans le tpl de mon module, plus rien ne s'affiche.Une idée sur ce que je fais de travers??merci pour votre aide. Link to comment Share on other sites More sharing options...
Asenar Posted May 31, 2011 Share Posted May 31, 2011 La variable de ton slideshow doit être un tableau plutôt qu'un objet aparemment.Pour la mise en forme, regarde plutôt quelles classes css sont concernees sur product.tpl avec firebug pour recuperer la mise en forme Link to comment Share on other sites More sharing options...
looch_france Posted June 1, 2011 Author Share Posted June 1, 2011 Merci pour ta réponse.Le truc c'est que la mise en forme provient de la BDD puisqu'elle a été faite dans le back office. Il semble que lorsque le code est récupéré dans mon slideshow il est est expurgé du code html. Link to comment Share on other sites More sharing options...
DevNet Posted June 1, 2011 Share Posted June 1, 2011 Bonjour,$product doit surement être l'item d'une boucle smarty sur un foreach. Tu risques donc de trouver dans ton tpl pour ton slideshow un truc du genre : {foreach from=$products item=product name=products} Il faut donc que tu regardes en amont dans ton module slideshow ce qu'il sort comme contenu de tableau de données pour $products. Si c'est dans ta page d'accueil, cible directement la méthode hookHome($params) dans la classe de ton module.Bien cordialement Link to comment Share on other sites More sharing options...
looch_france Posted June 1, 2011 Author Share Posted June 1, 2011 Je suis pas sur de suivre... Voilà mon code : {if ($params->get('preload',1)==1)} {/if} <!-- MAIN CONTENT --> {foreach from=$products item=product name=blockLofSlideShow} {if ($params->get('slider_layout','image-description')=='image-description')} {$product.description} {/if} {/foreach} Link to comment Share on other sites More sharing options...
Broceliande Posted June 1, 2011 Share Posted June 1, 2011 Bonjour à tous,Je n'arrive pas à trouver de réponse à une question concernant l'affichage de la description d'une produit.En fait je souhaite modifier un module de slideshow que j'utilise sur ma page d'accueil. Le slideshow affiche la description du produit grâce à la $product.descriptionLe soucis c'est que la mise en forme de la description faire côté back office est perdu.lorsque je regarde le product.tpl, je m'aperçois qu'on utilise un objet php $product->description. Mais quand je l'utilise dans le tpl de mon module, plus rien ne s'affiche.Une idée sur ce que je fais de travers??merci pour votre aide. Pour commencer et reprendre en d'autres termes ce que Mickaël a suggéré :Si une variable est un objet , ses propriétés sont accessibles dans smarty comme telles : $product->description, par ex.Si une variable est un tableau (résultat donc d'une requete sql par ex), ses propriétés sont accessibles dans smarty par un point : $product.descriptionDans le cas d'un objet product (sans doute pour un tableau également), il faut savoir que $product->description est lui même un tableau , d'autant d'élements qu'il existe de langues, et je pense que c'est là ton problème .en php tu peux le vérifier dans la prtie php de ton module en faisant un var_dump($product->description) , si c'est un objet , ou var_dump($product['description']) si c'est le résultat d'une reqête .D'ordinaire si on veut assigner uniquement la description de la langue par défaut ou de l'utilisateur, on trouve plutôt ce genre de truc avant l'assignation à smarty :$product->description = $product->description[$cookie->id_lang] ; ou version table : $product-['description'] = $product-['description'][$cookie->id_lang] ; enfin bref , à mon sens dans ton code smarty , description est un tableau ... Link to comment Share on other sites More sharing options...
Asenar Posted June 2, 2011 Share Posted June 2, 2011 Petit ajout :Si le contenu de ta variable contient la description sans la mise en forme, c'est probablement comme tu dis le code php correspondant (après la récupération des données) qui "expurge" la mise en forme (avec un strip_tag ou quelquechose comme ça). (Je me rend compte maintenant que je paraphrase également DevNet).Regarde donc ce qui précède l'affichage dans le module. Au besoin tu peux utiliser la fonction die(debug_print_backtrace()) pour t'aider à voir par où passe le code PS: mais qu'est ce qu'ils ont tous à écorcher mon nom ! c'est Michaël ! pas Mickaël ! Link to comment Share on other sites More sharing options...
Broceliande Posted June 3, 2011 Share Posted June 3, 2011 Petit ajout :Si le contenu de ta variable contient la description sans la mise en forme, c'est probablement comme tu dis le code php correspondant (après la récupération des données) qui "expurge" la mise en forme (avec un strip_tag ou quelquechose comme ça). (Je me rend compte maintenant que je paraphrase également DevNet).Regarde donc ce qui précède l'affichage dans le module. Au besoin tu peux utiliser la fonction die(debug_print_backtrace()) pour t'aider à voir par où passe le code PS: mais qu'est ce qu'ils ont tous à écorcher mon nom ! c'est Michaël ! pas Mickaël ! Oops ! Je le f'rais plus Michaël 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