Jump to content

Method of module cannot be found


michel123

Recommended Posts

 

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 ?

image.thumb.png.cb0a14c727ed6674b77141d0c92d9f44.png

image.thumb.png.a9e114a5531c319dda62b3814f552113.png

Link to comment
Share on other sites

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

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

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