Jump to content

Recommended Posts

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">&#xE864;</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

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">&#xE864;</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 by rygegor (see edit history)
Link to comment
Share on other sites

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

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