Jump to content

utilisateurlambda

Members
  • Posts

    13
  • Joined

  • Last visited

Posts posted by utilisateurlambda

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

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

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

  4. J'avais déjà vu que ça avait changer le nom, j'avais bien complété mon code comme ceci :

            public function hookDisplayCustomerAccount($params){
                       return $this->display(__FILE__,'fichier.tpl');
            }

            public function hookDisplayMyAccountBlock($params){
                      return $this->hookDisplayCustomerAccount($params);
            }

    Mais il m'a simplement fallu repasser par une base vide de mon module. Au final, je n'ai pas compris d'où venait l'erreur, car j'ai laissé mon code tel quel et ça à fonctionner. La magie peut-être :D

  5. Le 24/03/2018 à 11:23 AM, BeComWeb a dit :

    Déjà dans la fonction d'install c'est $this->registerHook('displayMyAccountBlock').

    Le "d" est en minuscule.

    Ensuite tu as essayé de vider le cache après avoir réinitialisé le module ?

    Et si ça ne fonctionne pas, essaye d'installer blockwishlist. S'il ne s'affiche pas non plus c'est peut-être que le hook est absent du template my-account.tpl (celui du thème).

    Malheureusement, je ne peu pas installer d'installer "blockwishlist", c'est un module pour la version 1.6, je suis sous prestashop 1.7 :wacko:
    Oui, je vide le cache à chaque tentative de réinstallation :D
    Comment ça le hook serait absent du template my-account.tpl ?

  6. Citation
    return $this->display(__FILE__,'templates/hook/displayMyAccountBlock.tpl');

    J'ai oublié de le réécrire lorsque j'ai donné mon code, mais le chemin est déjà correctement mis dans mon code :wacko:

    Je viens de remarquer que mon hook ne s'installe pas, Lorsque je suis dans la partie back-office, Apparence-possition, mon module n'apparaît pas. Donc je présume que mon hook ne s'installe pas et que mon erreur proviens sûrement de là ? Qu'en pensez-vous ?

  7. J'ai donc pris exemple sur le module que BeComWeb m'a conseiller d'exploiter, cependant, je dois très mal utiliser les hook, car je n'arrive toujours pas à afficher mon block :(

    Je ne demande pas une solution miracle, mais je suis un peut coincer. J'ai lu et relu pas mal de docs, mais je reste au même point ou je n'arrive pas à afficher ce block pour les utilisateurs dans la partie "mon compte" :(

  8. Bonjour, je suis en phase de développement d'un module prestashop. Cependant, la gestion des hook reste trop floue pour moi. J'aimerais afficher un block dans la page "mon compte" de prestashop pour l'utilisateur, cependant, je n'arrive pas à l'afficher.

    Dans le corps de mon module, j'ai lancé l'installation du hook désirer :


    public function install() {
    /* .... */
    return parent::install() && $this->registerHook('DisplayMyAccountBlock');
        return true;
    /* ... */
    }

    Et j'ai bien établi ma fonction :
    public function hookDisplayMyAccountBlock($params)
        {
          return $this->display(__FILE__,'displayMyAccountBlock.tpl');
        }

    Qui renvoie donc ma page view/template/hook/displayMyAccountBlock.tpl :
    <a class="col-lg-4 col-md-6 col-sm-6 col-xs-12" id="upload-link" href="http://localhost/test2-prestashop/link">
        <span class="link-item">
              Uploads
        </span>
    </a>

    Cependant, je n'ai aucun block qui s'affiche. Qu'ais-je fait de mauvais ? Qu'ais-je oublié ?
    Je rappelle donc que je ne suis pas un expert, de plus je suis nouveau sous prestashop. Merci de vos réponses ! :)

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More