shoaz Posted June 16, 2011 Share Posted June 16, 2011 Bonjour,un petit soucis : je n'arrive pas à afficher l'adresse mail de l'utilisateur sur une page de mon choix (ici order-address).J'ai regarder les variables disponible pour smarty en mode debug, et effectivement il n'y a pas d'adresse mail.Et après quelques essais d'assignation de valeur dans OrderController.php, pas de résultat(dans la fonction _assignAddress(), pour tenter d'afficher l'adresse mail, j'ai ajouter une ligne du genre : $smarty->assign('variableSmarty', $customer->email);puis appeler la variableSmarty dans le template correspondant).Un petit coup de pouce pour m'aider à avancer serait le bienvenu.Je précise que j'ai pas mal cherché sur le forum et ailleurs, pensant ne pas être le premier à vouloir faire apparaitre l'adresse mail en adresse de livraison (pour un produit téléchargeable, ça parait plus pertinent), mais sans succès. Link to comment Share on other sites More sharing options...
Eolia Posted June 16, 2011 Share Posted June 16, 2011 tout dépend de quelle variable email tu parles.Si c'est celle de la page active (par exemple compte de l'utilisateur) il faut la récupérer dans la base de données avec une requête du style pSQL($_GET['email'] ou pSQL($customerEmail)A essayer Link to comment Share on other sites More sharing options...
Broceliande Posted June 17, 2011 Share Posted June 17, 2011 tu peux regarder du côté de smarty.post.mavariable Link to comment Share on other sites More sharing options...
shoaz Posted June 20, 2011 Author Share Posted June 20, 2011 merci pour les réponses.@Eolia : pour qu'elle soit prise en compte à l'affichage de order-address, la requête doit être placée dans la classe Order.php?@Broceliande : j'ai regardé du côté de smarty.post (en me basant sur la page identity, seule page où l'adresse mail du customer apparait en clair). J'ai utilisé {$smarty.post.email} en value dans un input. Mais je n'ai jamais réussi à afficher l'adresse mail. Link to comment Share on other sites More sharing options...
Eolia Posted June 20, 2011 Share Posted June 20, 2011 En fait tout dépend de quelle variable mail tu parles.Si, par exemple, tu veux utiliser celle de l'utilisateur connecté (identifié) il faut la récupérer par son cookie et dans la table ps-customer, ainsi ce sera son adresse propre qui sera utilisée.Si tu veux que l'utilisateur rentre un email et l'utiliser dans d'autres pages il te faut créer soit une variable pour cette session (associée à son cookie), soit écrire une valeur dans une des tables de la base de donnée et la récupérer par un GET. Link to comment Share on other sites More sharing options...
shoaz Posted June 21, 2011 Author Share Posted June 21, 2011 C'est bien la variable mail associée à l'utilisateur connecté (identifié) que je veux récupérer.Mais mes faibles connaissances en php ne me permettent pas de faire une requête fonctionnelle... je ne sais pas exactement quelle commande utiliser, et je ne suis pas sûr de savoir où placer cette commande.J'ai testé quelques soluces (copies de bout de code à partir d'autres récupérations de l'adresse mail), mais sans succès.Quelques indices/explications vers une possible solution sont les bienvenus. Link to comment Share on other sites More sharing options...
Eolia Posted June 21, 2011 Share Posted June 21, 2011 Si l'utilisateur est connecté, utiliser ce genre de requête dans ton script: self::$cookie->email = $customer->email; tu peux ensuite utiliser la variable email.regarde un peu dans les fichiers du répertoire "controllers" de prestashop et tu devrais y trouver ton bonheur ! 1 Link to comment Share on other sites More sharing options...
shoaz Posted June 22, 2011 Author Share Posted June 22, 2011 C'est bien dans le répertoire controllers que je suis.Pour être plus précis, je suis dans le fichier OrderController.php, dans la fonction _assignAddress (ligne 255).(Car je travaille sur l'affichage de la page order-address.tpl).Là j'essaye d'afficher le contenu de la variable de mon choix (ici l'email de l'utilisateur), via une variable smarty (ici firstname).Quand j'assigne une valeur fixe à la variable smarty, pas de problème, elle s'affiche correctement : self::$smarty->assign('firstName', '[email protected]'); Par contre, quand je lui assigne une variable, plus rien : self::$smarty->assign('firstName', customer->email); ou self::$smarty->assign('firstName', cookie->email); ou $email = self::$cookie->email; self::$smarty->assign('firstName', $email); ... Link to comment Share on other sites More sharing options...
Eolia Posted June 22, 2011 Share Posted June 22, 2011 tu n'as pas essayé: self::$smarty->assign('firstName', $customer->email); ?J'aime mieux les variables avec un $ en php... Link to comment Share on other sites More sharing options...
shoaz Posted June 22, 2011 Author Share Posted June 22, 2011 si, si, pardon, j'avais bien collé du $ sur mes variables, c'est mes extraits de code qui n'étaient pas fidèles.(et je te confirme que ça ne fonctionne toujours pas...) Link to comment Share on other sites More sharing options...
Eolia Posted June 23, 2011 Share Posted June 23, 2011 on peut encore essayer pSQL($_GET['email']) ou pSQL($_GET['CustomerEmail']) ou {$_GET['email']} Tout dépend de ton code général. Je ne suis pas assez calé sur le coeur de Prestashop et souvent je déchiffre les scripts existants pour essayer de le comprendre. Smarty sert surtout à l'affichage (avec les tpl) et n'est peut-être pas nécéssaire ici.Autrement je ne vois pas Link to comment Share on other sites More sharing options...
shoaz Posted July 8, 2011 Author Share Posted July 8, 2011 après une petite pause et un coup de main, voilà une soluce : dans OrderController : $customer = new Customer((int)(self::$cookie->id_customer)); $email = $customer->email; self::$smarty->assign('customer_email', $email); et dans order-address.tpl, on appelle {$customer_email} 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