Jump to content

Problème création module avec $helper->actions = array('edit', 'delete');


agarmur

Recommended Posts

Bonjour,

Je suis en train de créer un module pour voir comment ça fonctionne. Le but de récupérer des données d'une bdd de l'afficher, de pouvoir en supprimer.

Voici le code de mon FormList pour afficher les données de ma bdd : 

$this->fields_list = array(

'id_modulefacebookpdv' => array(
'width' => 'auto',
'title' => $this->l('id'),
'search' => false,

),

'url_modulefacebookpdv' => array(
'width' => 'auto',
'title' => $this->l('url'),
'search' => false,
),
);

$helper = new HelperList();
$helper->title = "Urls";
$helper->module = $this;
$helper->row_hover = true;

$helper->actions = array('delete', 'edit');

$helper->identifier = 'id_modulefacebookpdv';
$helper->show_toolbar = true;
$helper->table = $this->name;

$helper->token = Tools::getAdminTokenLite('AdminModules');
$helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name;

$content = $this->getUrlsList();

return $helper->generateList($content, $this->fields_list);

À l'affichage, je n'ai aucun problème sauf que les boutons Delete et Edit ne fonctionne pas, je n'arrive pas à comprendre pourquoi. 

Si quelqu'un serait m'aider !

Merci !

Link to comment
Share on other sites

  • 1 month later...

Il semble que vous ayez correctement configuré les boutons d'action "delete" et "edit" dans votre code, mais il est possible que vous n'ayez pas implémenté les fonctions correspondantes pour ces actions. Voici ce que vous devez faire pour que les boutons fonctionnent correctement :

1. Assurez-vous que vous avez défini la méthode processDelete() et processEdit() dans votre classe de module. Ces méthodes doivent être responsables de la suppression et de la modification des données de la base de données. Par exemple :

public function processDelete()
{
    $id_modulefacebookpdv = (int)Tools::getValue('id_modulefacebookpdv');
    if ($this->deleteUrl($id_modulefacebookpdv)) {
        Tools::redirectAdmin(AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules').'&conf=1');
    } else {
        $this->errors[] = $this->l('Error occurred while trying to delete the URL.');
    }
}

public function processEdit()
{
    // Votre logique de modification ici
}

2. Dans la méthode deleteUrl(), vous devez supprimer l'entrée de la base de données en fonction de l'ID fourni. Par exemple :

public function deleteUrl($id_modulefacebookpdv)
{
    return Db::getInstance()->delete('nom_de_votre_table', 'id_modulefacebookpdv = '.(int)$id_modulefacebookpdv);
}

3. Assurez-vous que les actions sont bien définies dans votre HelperList. Vous avez déjà défini les actions delete et edit dans votre code, donc ça devrait être bon de ce côté-là :

$helper->actions = array('delete', 'edit');

4. Enfin, assurez-vous que votre classe de module hérite bien de la classe ModuleAdminController et que vous avez défini la méthode postProcess(). Cette méthode doit appeler les fonctions processDelete() et processEdit() en fonction de l'action soumise. Par exemple :

public function postProcess()
{
    if (Tools::isSubmit('delete'.$this->name)) {
        $this->processDelete();
    } elseif (Tools::isSubmit('edit'.$this->name)) {
        $this->processEdit();
    }

    return parent::postProcess();
}

En suivant ces étapes, vous devriez être en mesure de faire fonctionner les boutons "Delete" et "Edit".

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