Graphissimo Posted January 12, 2023 Share Posted January 12, 2023 Bonjour à tous, je m'exerce en ce moment pour réussir à construire mon premier module. J'ai fais plusieurs recherches sur internet, et au fur et à mesure, je prend des exemples, des échantillons de codes, je les adapte mais je vois bien que je ne suis pas encore au point😅 Je suis déjà content, l'installation et l'affichage du module apparait dans la liste "modules" du BO (pour un non expérimenté, c'est déjà une grande victoire ) Malheureusement le code ne fonctionne pas et j'ai beau chercher sur le web, je n'arrive pas à trouver... Le but est que lorsqu'un nouveau client s'enregistre sur le site, il devient automatiquement "employé" (équipe) Je sais que mon code comporte une erreur ou un oubli car je pense qu'il faut que je prenne en compte et que je rajoute les champs qui sont demandés lorsqu'on créé nous même un nouvel employé, mais là je sèche et je ne sais pas comment trouver de solution (id employé et langue je pense) voici le code pour l'instant : <?php class NewEmployeeOnRegistration extends Module { public function __construct() { $this->name = 'newemployeeonregistration'; $this->tab = 'administration'; $this->version = '1.0.0'; $this->author = 'auteur'; $this->need_instance = 0; $this->ps_versions_compliancy = array('min' => '1.7', 'max' => _PS_VERSION_); $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Nouvel employé à l’inscription'); $this->description = $this->l('Crée un nouvel employé lorsqu’un client s’inscrit sur le site Web.'); } public function install() { return parent::install() && $this->registerHook('actionCustomerAccountAdd'); } public function uninstall() { return parent::uninstall(); } public function hookActionCustomerAccountAdd($params) { $employee = new Employee(); $employee->firstname = $params['newCustomer']->firstname; $employee->lastname = $params['newCustomer']->lastname; $employee->email = $params['newCustomer']->email; $employee->active = true; $employee->add(); } } Si quelqu'un a une piste pour que lorsqu'un client lambda s'enregistre en tant que nouveau client sur la page de connexion, celui ci est automatiquement enregistré en tant qu'employé. Ceci est un exercice pour moi mais je sèche... et puis si cela peux servir à quelqu'un, j'en serai ravi Merci Link to comment Share on other sites More sharing options...
Eolia Posted January 12, 2023 Share Posted January 12, 2023 Champs requis: 'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 'email' => array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'required' => true, 'size' => 128), 'id_lang' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true), 'passwd' => array('type' => self::TYPE_STRING, 'validate' => 'isPasswdAdmin', 'required' => true, 'size' => 32), 'id_profile' => array('type' => self::TYPE_INT, 'validate' => 'isInt', 'required' => true), Donc il manque passwd et id_profile dans votre code. Juste pour info, c'est super dangereux votre histoire... Link to comment Share on other sites More sharing options...
Graphissimo Posted January 12, 2023 Author Share Posted January 12, 2023 Bonjour eolia et merci de votre réponse rapide (comme toujours ) come j'ai précisé, je fais ce module pour m'entrainer et comprendre Mais par curiosité, pourquoi c'est super dangereux ? Link to comment Share on other sites More sharing options...
Eolia Posted January 12, 2023 Share Posted January 12, 2023 Ben vous donnez accès à tout le monde à votre BO Link to comment Share on other sites More sharing options...
Graphissimo Posted January 12, 2023 Author Share Posted January 12, 2023 ah ! si le module fonctionnait ce serait pour donner certaines autorisations limités à la catégorie "employé", auxquels ils seraient affectés Mais j'ai reessayé avec les rajouts de password et id_profile, mais ca ne fonctionne toujours pas... j'ai du mal écrire les lignes en plus... <?php class NewEmployeeOnRegistration extends Module { public function __construct() { $this->name = 'newemployeeonregistration'; $this->tab = 'administration'; $this->version = '1.0.0'; $this->author = 'auteur'; $this->need_instance = 0; $this->ps_versions_compliancy = array('min' => '1.7', 'max' => _PS_VERSION_); $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Nouvel employé à l’inscription'); $this->description = $this->l('Crée un nouvel employé lorsqu’un client s’inscrit sur le site Web.'); } public function install() { return parent::install() && $this->registerHook('actionCustomerAccountAdd'); } public function uninstall() { return parent::uninstall(); } public function hookActionCustomerAccountAdd($params) { $employee = new Employee(); $employee->lastname = $params['newCustomer']->lastname; $employee->firstname = $params['newCustomer']->firstname; $employee->email = $params['newCustomer']->email; $employee->id_lang = $params['newCustomer']->id_lang; $employee->passwd = $params['newCustomer']->passwd; $employee->id_profile = $params['newCustomer']->id_profile; $employee->active = true; $employee->add(); } } Link to comment Share on other sites More sharing options...
Eolia Posted January 12, 2023 Share Posted January 12, 2023 $employee->id_profile = $params['newCustomer']->id_profile; Ça donne 0 ça, un customer n'a pas d'id_profile^^ Il faut l'écrire en dur suivant le profil employé que vous voulez affecter, par exemple le profil 1 (SuperAdmin): $employee->id_profile = 1; Ensuite, êtes-vous en mode debug activé ? Avez-vous regardé votre fichier error.log sur votre serveur ? Link to comment Share on other sites More sharing options...
Graphissimo Posted January 12, 2023 Author Share Posted January 12, 2023 c'est bon cela fonctionne merci eolia Maintenant il faut que je continue a apprendre le fonctionnement et le pourquoi du comment de tout cela Merci encore pour l'aiguillage 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