tmaman Posted January 26, 2016 Share Posted January 26, 2016 Bonjour, J'ai besoin d'ajouter les données complètes de facturation et de livraison dans un module. (Mêmes infos qui s'affichent lors de la commande). J'ai ajouté ce code dans mon tpl : <div class="col-xs-12 col-sm-6"{if !$have_non_virtual_products} style="display: none;"{/if}> <ul id="delivery_address" class="address item box"> <li><h3 class="page-subheading">{l s='Delivery address'} <span class="address_alias">({$delivery->alias})</span> </h3></li> {if $delivery->company}<li class="address_company">{$delivery->company|escape:'html':'UTF-8'}</li>{/if} <li class="address_name">{$delivery->firstname|escape:'html':'UTF-8'} {$delivery->lastname|escape:'html':'UTF-8'}</li> <li class="address_address1">{$delivery->address1|escape:'html':'UTF-8'}</li> {if $delivery->address2}<li class="address_address2">{$delivery->address2|escape:'html':'UTF-8'}</li>{/if} <li class="address_city">{$delivery->postcode|escape:'html':'UTF-8'} {$delivery->city|escape:'html':'UTF-8'}</li> <li class="address_country">{$delivery->country|escape:'html':'UTF-8'} {if $delivery_state} ({$delivery_state|escape:'html':'UTF-8'}){/if}</li> </ul> </div> Mais rien ne s'affiche... Je pense qu'il faut ajouter quelque chose dans le controler mais quoi exactement ??? Merci pour votre aide. Link to comment Share on other sites More sharing options...
franckm1000 Posted January 27, 2016 Share Posted January 27, 2016 (edited) {if !$have_non_virtual_products} style="display: none;"{/if} Déjà, rien que pour ça, rien ne doit s'afficher. La variable have_non_virtual_products ne devant pas exister dans ton contexte, la DIV est en display none et ne sera donc pas affichée... Ensuite le contrôleur de ton module doit envoyer dans la vue l'objet $delivery. Le contrôleur est là pour récupérer les informations nécessaires (en base notamment) et les architecturer en tableau/objet/valeur pour les envoyer à la vue HTML qui pourra retranscrire ces valeurs via le moteur de template smarty. On voit bien ici que le code que tu as copié contient une variable $delivery (qui est en fait un objet, on le voit aux appels fait depuis cette variable $delivery->...). Il faut donc dans le contrôleur du module générer cet objet comme il l'est dans le contrôleur initial (celui des commandes) et l'assigner via smarty pour le récupérer dans ta vue. A tout hasard (je ne pratique plus vraiment Prestashop donc il faut prendre ce que je dis avec méfiance ) essaies dans ton contrôleur de récupérer l'adresse de cette façon: $delivery = new Address((int)$this->context->cart->id_address_delivery); Puis d'assigner à la vue: $this->context->smarty->assign('delivery', $delivery); Attention, ce que tu dois regarder, c'est quelles données tu possèdes dans ton contexte. En effet, ici cela implique qu'un panier soit présent dans le contexte et enrichi d'un id_address_delivery. Je ne sais pas dans quel contexte ton module évolue... Edited January 27, 2016 by franckm1000 (see edit history) 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