utilisateurlambda Posted March 29, 2018 Share Posted March 29, 2018 Bonjour, je suis en train de développer un module sous prestashop 1.7.J'ai créé une page my-account dans le corps qui affiche un block dans la partie "profil" de l'utilisateur qui va renvoyer l'utilisateur sur une page qui va donc lui donner ses informations client. <a class="col-lg-4 col-md-6 col-sm-6 col-xs-12" href="{$link->getModuleLink('mymodule', 'controller-name', array(), true)|escape:'html':'UTF-8'}" title="{l s='Ma page' mod='mymodule'}"> <span class="link-item"> <i class="material-icons"></i> {l s='Ma page' mod='mymodule'} </span> </a> Mon controller se retrouve donc dans controller/front/controller-name et contient ce code <?php class MyModuleControllernameModuleFrontController extends ModuleFrontController { public $customer; protected function initList(){ $this->setTemplate('module:mymodule/views/templates/front/mapage.tpl'); } public function initContent() { parent::initContent(); $actions_list = array('mapage' => 'initList'); //$id_customer = (int)$this->customer->id; $id_customer = (int)Tools::getValue('id_customer'); $module_action = Tools::getValue('module_action'); $this->customer = new Customer((int)$id_customer, false, $this->context->cookie->id_lang); if ($id_customer > 0) && isset($action_list[$module_action])) $this->setTemplate('module:mymodule/views/templates/front/mapage.tpl'); } } Cependant, mon id est toujours égale à "0" :s j'ai fait énormément d'éssaie et de test que je ne pourrai pas tout récapituler. Un peu d'aide serait la bienvenue. Cordialement rygegor Link to comment Share on other sites More sharing options...
doekia Posted March 29, 2018 Share Posted March 29, 2018 (edited) si tu ne passe aucun paramètre dans l'url {$link->getModuleLink('mymodule', 'controller-name', array(), true) il est tout a fait normal qu'il n'y ait pas ce paramètre id_customer Edited March 29, 2018 by doekia (see edit history) Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 30, 2018 Author Share Posted March 30, 2018 le problème est que si je créé un tableau de paramètres avant ou directement dans mon URL, la page "mon compte" entière plante, je n'ai pas accès pour le moment à mon code mais je vous le montrerez après Link to comment Share on other sites More sharing options...
doekia Posted March 30, 2018 Share Posted March 30, 2018 je ne comprends de toute manière pas pourquoi tu t'impose de passer l'id_customer alors que le contexte possède déjà ces informations. Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 30, 2018 Author Share Posted March 30, 2018 (edited) Je sais très bien que le contexte possède ses informations, mais je n'arrive pas à récupérer l'id du consommateur dans une variable que se soit en passant pas l'envoi de la variable ou du contexte. Comment faire pour le récupérer ?(Ah et mon exemple de code le voici : {assign var=param value=[ 'module_action' => 'mapage', 'id_customer' => $smarty.get.id_customer ]} <a class="col-lg-4 col-md-6 col-sm-6 col-xs-12" href="{$link->getModuleLink('mymodule', 'controllername', array($param), true)|escape:'html':'UTF-8'}" title="{l s='Mon titre' mod='mymodule'}"> <span class="link-item"> <i class="material-icons"></i> {l s='Mon tritre' mod='mymodule'} </span> </a> Et une fois le tableau établi, j'ai une erreur : "ContextErrorException in smarty_internal_templatebase.php(157) : eval()'d code line 27: Notice: Undefined index: id_customer") Et je tiens à préciser que c'est la première fois que je code sous prestashop. Edited March 30, 2018 by rygegor (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted March 30, 2018 Share Posted March 30, 2018 normal puisque l'id_customer n'est passé que par le contexte !!! Context::getContext()->customer->id Link to comment Share on other sites More sharing options...
utilisateurlambda Posted March 30, 2018 Author Share Posted March 30, 2018 J'ai oublié de me répondre moi-même, mais j'avais finalement réussi à récupérer l'id de cette manière-là $id_customer = (int)$this->context->customer->id; Mais comme expliquer précédemment, j'avais déjà essayé pas mal de chose (et donc de le récupérer par le context) mais ça n'avais pas fonctionné (J'avais mal écrit mon code car j'écrivais ceci : $id_customer = (int)$this->context->cookie->customer->id; Je pensais qu'il fallait le récupérer dans le cookie, grossière erreur de ma part ) En tout cas je vous remercie de votre réponse doekia et pas la peine de s'énerver Cordialement rygegor 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