michel123 Posted June 5, 2022 Share Posted June 5, 2022 Bonjour, je viens de créer un module back-office. J'ai créé dans mon controller mon formulaire comme sur l'image. Dès que je clique sur le bouton enregistrer, l'erreur de la première image s'affiche. Besoin d'aide svp. Comment résoudre ce problème ? Link to comment Share on other sites More sharing options...
Prestachamps Posted June 6, 2022 Share Posted June 6, 2022 Bonjour, Pouvez-vous envoyer une copie d'écran à partir de la partie du code où le formulaire est soumis ? Nous avons besoin de plus d'informations. Passez une bonne journée Sincères amitiés, Leo ------------------------------------------------------------ Hello, Can you send a print screen from the part of the code where the form is submitted? We need more information. Have a nice day Kind regards, Leo Link to comment Share on other sites More sharing options...
michel123 Posted June 6, 2022 Author Share Posted June 6, 2022 40 minutes ago, Prestachamps said: Bonjour, Pouvez-vous envoyer une copie d'écran à partir de la partie du code où le formulaire est soumis ? Nous avons besoin de plus d'informations. Passez une bonne journée Sincères amitiés, Leo ------------------------------------------------------------ Hello, Can you send a print screen from the part of the code where the form is submitted? We need more information. Have a nice day Kind regards, Leo Bonjour et merci pour votre aide. Voici le code complet du fichier <?php /** * sms Prestashop Module * * */ require_once _PS_MODULE_DIR_ . '/dsitssmsmarketing/classes/Campagne.php'; class AdminDsitssmsmarketingController extends ModuleAdminController { /** * Instanciation de la classe * Définition des paramètres basiques obligatoires */ public function __construct() { $this->bootstrap = true; //Gestion de l'affichage en mode bootstrap $this->table = Campagne::$definition['table']; //Table de l'objet $this->identifier = Campagne::$definition['primary']; //Clé primaire de l'objet $this->className = Campagne::class; //Classe de l'objet $this->lang = true; //Flag pour dire si utilisation de langues ou non $this->name = 'dsitssmsmarketing'; // $this->tab = 'dsits'; //Appel de la fonction parente pour pouvoir utiliser la traduction ensuite parent::__construct(); //Liste des champs de l'objet à afficher dans la liste $this->fields_list = [ 'id_campagne' => [ //nom du champ sql 'title' => $this->module->l('ID'), 'align' => 'center', 'class' => 'fixed-width-xs' ], 'mobileno' => [ 'title' => $this->module->l('mobileno'), 'align' => 'left', ], 'sms' => [ 'title' => $this->module->l('SMS'), 'align' => 'left', ], 'objectif' => [ 'title' => $this->module->l('Objectif'), 'align' => 'left', ], 'issend' => [ 'title' => $this->module->l('Envoyé'), 'lang' => true, 'align' => 'left', ], 'responsecode' => [ 'title' => $this->module->l('Responsecode'), 'lang' => true, 'align' => 'left', ], 'scheduletime' => [ 'title' => $this->module->l('Scheduletime'), 'lang' => true, 'align' => 'left', ], 'responsedescription' => [ 'title' => $this->module->l('Responsedescription'), 'lang' => true, 'align' => 'left', ], 'responsemessage' => [ 'title' => $this->module->l('Responsemessage'), 'lang' => true, 'align' => 'left', ], 'status' => [ 'title' => $this->module->l('Status'), 'lang' => true, 'align' => 'left', ], 'errorcode' => [ 'title' => $this->module->l('Errorcode'), 'lang' => true, 'align' => 'left', ], 'errordescription' => [ 'title' => $this->module->l('Errordescription'), 'lang' => true, 'align' => 'left', ] ]; //Ajout d'action sur chaque ligne $this->addRowAction('edit'); $this->addRowAction('delete'); } /** * Affichage du formulaire d'ajout / création de l'objet * @return string * @throws SmartyException */ public function renderForm() { //Définition du formulaire d'édition $fields_form = [ 'form' => [ //Entête 'legend' => [ 'title' => $this->module->l('Modifier la Campagne'), 'icon' => 'icon-cog' ], 'description' => $this->trans('SMS Campagne Configuration Settings'), //Champs 'input' => [ [ 'type' => 'textarea', //Type de champ 'label' => $this->module->l('SMS'), //Label 'name' => 'sms', //Nom 'required' => true, //Requis ou non 'lang' => true, 'empty_message' => $this->l('SVP veuillez enregistrer un message'), //Message d'erreur si vide 'autoload_rte' => true, ], [ 'type' => 'textarea', 'label' => $this->module->l('Objectif'), 'name' => 'objectif', 'required' => true, 'lang' => true, 'empty_message' => $this->module->l('Veuillez decrire l objectif de la campagne'), 'autoload_rte' => true, ], [ 'type' => 'textarea', 'label' => $this->module->l('Titre'), 'name' => 'title', 'lang' => true, //Flag pour utilisation des langues 'required' => true, 'empty_message' => $this->l('SVP veuillez enregistrer un Titre'), 'autoload_rte' => true, ], [ 'type' => 'switch', //Type de champ 'is_bool' => true, 'label' => $this->module->l('Une liste Externe?'), //Label 'name' => 'isexternenumber', //Nom 'class' => 'input fixed-width-sm', //classes css 'required' => true, //Requis ou non 'values' => array( array( 'id' => 'active_on', 'value' => true, 'label' => $this->l('Oui') ), array( 'id' => 'active_off', 'value' => false, 'label' => $this->l('Non') ) ), ], [ 'type' => 'textarea', 'label' => $this->module->l('Liste des numeros externes'), 'name' => 'numberlist', 'lang' => true, 'autoload_rte' => true, //Flag pour éditeur Wysiwyg ], [ 'type' => 'switch', //Type de champ 'is_bool' => true, 'label' => $this->module->l('Nouveau Client?'), //Label 'name' => 'newcustomer', //Nom 'class' => 'input fixed-width-sm', //classes css 'required' => true, //Requis ou non 'values' => array( array( 'id' => 'active_on', 'value' => true, 'label' => $this->l('Oui') ), array( 'id' => 'active_off', 'value' => false, 'label' => $this->l('Non') ) ), ], [ 'type' => 'switch', //Type de champ 'is_bool' => true, 'label' => $this->module->l('Utiliser interval de date?'), //Label 'name' => 'datefilter', //Nom 'class' => 'input fixed-width-sm', //classes css 'required' => true, //Requis ou non 'values' => array( array( 'id' => 'active_on', 'value' => true, 'label' => $this->l('Oui') ), array( 'id' => 'active_off', 'value' => false, 'label' => $this->l('Non') ) ), ], [ 'type' => 'date', //Type de champ 'label' => $this->module->l('Début'), //Label 'name' => 'startdate', //Nom 'empty_message' => $this->l('SVP veuillez enregistrer une date'), //Message d'erreur si vide 'hint' => $this->module->l('JJ/MM/AAAA') //Indication complémentaires de saisie ], [ 'type' => 'date', //Type de champ 'label' => $this->module->l('Fin'), //Label 'name' => 'endate', //Nom 'empty_message' => $this->l('SVP veuillez enregistrer date de fin'), //Message d'erreur si vide 'hint' => $this->module->l('JJ/MM/AAAA') //Indication complémentaires de saisie ], [ 'type' => 'switch', //Type de champ 'is_bool' => true, 'label' => $this->module->l('Nouvelle campagne pour les message echoués?'), //Label 'name' => 'resend', //Nom 'class' => 'input fixed-width-sm', //classes css 'required' => true, //Requis ou non 'values' => array( array( 'id' => 'active_on', 'value' => true, 'label' => $this->l('Oui') ), array( 'id' => 'active_off', 'value' => false, 'label' => $this->l('Non') ) ), ], ], //Boutton de soumission 'submit' => [ 'title' => $this->l('Enregistrer'), //On garde volontairement la traduction de l'admin par défaut ], ], ]; $helper = new HelperForm(); $helper->show_toolbar = false; $helper->default_form_language = (int)Configuration::get('PS_LANG_DEFAULT'); $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; $helper->id = 'dsitssmsmarketing'; $helper->identifier = 'dsitssmsmarketing'; $helper->submit_action = 'SubmitSmsConfiguration'; $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) .'&configure=' . $this->name . '&tab_module=' .$this->tab . '&module_name=' . $this->name; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->tpl_vars = ['fields_value' => $this->getConfigFieldsValues(), 'languages' => $this->context->controller->getLanguages(), 'id_language' => $this->context->language->id,]; return $helper->generateForm(array($fields_form)); } /** * Gestion de la toolbar */ public function initPageHeaderToolbar() { //Bouton d'ajout $this->page_header_toolbar_btn['new'] = array( 'href' => self::$currentIndex . '&add' . $this->table . '&token=' . $this->token, 'desc' => $this->module->l('Ajouter une nouvelle Campagne'), 'icon' => 'process-icon-new' ); parent::initPageHeaderToolbar(); } /** * Configuration admin du module */ public function getContent() {die('bomm'); $this->html .=$this->postProcess(); $this->html .= $this->renderForm(); return $this->html; } /** * Traitement de la configuration BO * @return type */ public function postProcess() { $output = ''; $sms = Tools::getValue('sms'); $objectif = Tools::getValue('objectif'); $title = Tools::getValue('title'); $isexternenumber = Tools::getValue('isexternenumber'); $numberlist = Tools::getValue('numberlist'); $newcustomer = Tools::getValue('newcustomer'); $datefilter = Tools::getValue('datefilter'); $startdate = Tools::getValue('startdate'); $endate = Tools::getValue('endate'); $resend = Tools::getValue('resend'); $erromessage = 'Please complete the "banck data to display" field.'; $message = 'The settings have been updated.'; if (Tools::isSubmit('SubmitSmsConfiguration')) { die('bomm'); if (($datefilter == true) && !$startdate || empty($startdate)) { $output .= $this->displayError( $this->trans($erromessage, array(), 'Modules.Dsitssmsmarketing.Admin') ); } elseif (($datefilter == true) && !$endate || empty($endate)) { $output .= $this->displayError( $this->trans('Invalid Date.', array(), 'Modules.Dsitssmsmarketing.Admin') ); } elseif (($isexternenumber == true) && !$numberlist || empty($numberlist)) { $output .= $this->displayError( $this->trans('Invalid Number list.', array(), 'Modules.Dsitssmsmarketing.Admin') ); } elseif (($resend == true) && ($isexternenumber== true)) { $output .= $this->displayError( $this->trans('Bad configuration.', array(), 'Modules.Dsitssmsmarketing.Admin') ); } elseif (($resend == true) && ($newcustomer== true)) { $output .= $this->displayError( $this->trans('Bad configuration.', array(), 'Modules.Dsitssmsmarketing.Admin') ); } elseif (!$sms || empty($sms)) { $output .= $this->displayError( $this->trans($erromessage, array(), 'Modules.Dsitssmsmarketing.Admin') ); } elseif (!$objectif || empty($objectif)) { $output .= $this->displayError( $this->trans($erromessage, array(), 'Modules.Dsitssmsmarketing.Admin') ); } elseif (!$title || empty($title)) { $output .= $this->displayError( $this->trans($erromessage, array(), 'Modules.Dsitssmsmarketing.Admin') ); } else { // Configuration::updateValue('PAYMENT_API_BANK_NAME', Tools::getValue('PAYMENT_API_BANK_NAME')); //(float)Configuration::updateValue('PAYMENT_API_BANK_PERCENT', $percentNbr); $this->_clearCache('*'); $output .= $this->displayConfirmation($this->trans($message, array(), 'Admin.Notifications.Success')); } } return $output; } /** * Récupération des variables de configuration du formulaire admin */ public function getConfigFieldsValues() { return [ 'sms' => Tools::getValue('sms', null), 'objectif' => Tools::getValue('objectif', null), 'title' => Tools::getValue('title',null), 'isexternenumber' => Tools::getValue('isexternenumber', false), 'numberlist' => Tools::getValue('numberlist', null), 'newcustomer' => Tools::getValue('newcustomer', true), 'datefilter' => Tools::getValue('datefilter', true), 'startdate' => Tools::getValue('startdate',null), 'endate' => Tools::getValue('endate', null), 'resend' => Tools::getValue('resend', false), ]; } } Link to comment Share on other sites More sharing options...
michel123 Posted June 8, 2022 Author Share Posted June 8, 2022 Bonjour, j'ai envoyé le code comme demande. Svp un peu de votre temps merci d'avance 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