Jump to content

[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.

Link to comment
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.

Link to comment
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?

Link to comment
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 ;))

Link to comment
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. ;)

Link to comment
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
×
×
  • Create New...