Jump to content
Sign in to follow this  
Thierry

[Résolu] Récupérer la présentation d'un fabricant selon la langue active?

Recommended Posts

Bonjour,

Je voudrais afficher le paragraphe descriptif de mes fabricants. Cependant j'ai deux langues sur ma boutique.

Si je regarde les infos que me sortent SMARTY grâce au Debug sur la page manufacturer.php, je vois cette objet :

Manufacturer Object (7)
->id = 28
->name = "LifeLab"
->description = Array (2)
 1 => ""
 2 => ""
->id_address = false
->date_add = "2008-07-16 11:21:20"
->date_upd = "2008-07-16 11:55:18"
->link_rewrite = "LifeLab"


(oui je sais, dans cet exemple, il n'y a pas de description de définie ;) )

La description est donc un tableau. J'imagine que le chiffre correspond à l'id de la langue.

Quel est le bout de code que je dois écrire dans mon .tpl, pour faire ressortir la description correspondante à la langue active?

J'ai essayé de mon côté sans succès.

Merci pour votre aide.

Share this post


Link to post
Share on other sites

Petit Up.

En fait ce que j'aurais bien aimé faire, c'est un truc dans le genre :

{$manufacturer->description.{$language.active[spam-filter]



Mais bien entendu cela ne plaît pas à SMARTY. J'imagine qu'il doit y avoir un moyen pour afficher le texte dans la bonne langue.

Share this post


Link to post
Share on other sites

Je pense plutôt comme ça :)

{$manufacturer->description.$language.active} 



ou

{$manufacturer->description.$language['active']} 

Share this post


Link to post
Share on other sites

Malheureusement cela me sort des erreurs :(

Pour la première solution :

Warning: Illegal offset type in /Applications/MAMP/htdocs/tbl_prestashop/tools/smarty/compile/%

Share this post


Link to post
Share on other sites

Oula, j'avais mal lu le premier post.

Je pense qu'il va falloir essayer ceci:

{$manufacturer->description[$language.active]} 



Tu es dans quel .tpl ? Car je dit ça de tête :-S

Share this post


Link to post
Share on other sites

C'est la bonne piste!

En fait je cherche à afficher cette description sur manufacturer.php et la fiche produit.

Pour manufacturer.php c'est bon! Sauf que je m'étais gourré sur la variable pour connaître la langue d'affichée. C'est donc :

{$manufacturer->description[$id_lang]}



Je comptais appliquer le même principe sur la fiche produit. Malheureusement, il n'y a pas de variable $id_lang sur la fiche produit. J'ai beau cherché un équivalent, mais je n'en vois pas. $lang_iso n'est pas très pratique dans ce cas là.

En tout cas merci pour cette première étape. :)

Aurais tu une piste pour le problème de la fiche produit?

Share this post


Link to post
Share on other sites

Pour la fiche produit effectivement, aucun assignement n'a été fait pour la variable de langue...

Voici une petite modif que tu peux faire pour avoir accès à cela ;)

Dans ton fichier product.php (qui est a la base du site), trouves cette ligne (elle est a la fin normalement) :

include(dirname(__FILE__).'/footer.php');



Trouvé ? Juste avant celle-ci tu met le code suivant :

$smarty->assign('id_lang', intval($cookie->id_lang));



Et voilà! Maintenant via ton template tu peux utiliser le {$id_lang¤ et ça te donner l'id de la langue du visiteur ;))

Share this post


Link to post
Share on other sites

Heuuu si ça fonctionne, j'ai envie de dire qu'avec Pierre-Yves, ont est trop fort. :coolsmile:

Share this post


Link to post
Share on other sites

Après avoir un peu bloqué...

Je me suis rendu compte qu'il fallait mettre le code non pas juste avant :

include(dirname(__FILE__).'/footer.php'); 



Mais avant :

$smarty->display(_PS_THEME_DIR_.'product.tpl');



(bah oui sinon la variable n'est pas dispo pour le template ;) )

Résultat cela marche nickel. Merci beaucoup à vous deux. C'est typiquement le genre de bidouille de Prestashop avec lesquels je ne suis pas encore à l'aise.

Cela me retire une épine du pied. Bon il en reste un paquet d'autres, mais c'est déjà ça. ;)

Share this post


Link to post
Share on other sites

Effectivement je me suis trompé :red:

(surement un mauvais copier/coller hum hum :P)

Content d'avoir pu t'aider ;)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More