PRESTASHOP : add bulk actions

Sous une helper_list, vous pouvez visualiser un sélecteur contenant divers actions de traitement par lot, traitement en masse, bref actions en vrac.
Ci-dessous voici comment remplir le « select » permettant de réaliser des actions sur l’ensemble des lignes cochés. #prestashop

1/ Créer un fichier /override/admin/AdminProductsController.php

2/ Contenu du fichier :
<?php
/**
* /override/controllers/admin/AdminProductsController.php
*/
class AdminProductsController extends AdminProductsControllerCore
{
public function __construct(){
parent::__construct();

// Ajouter les options dans le menu
$this->bulk_actions[‘var0’] = array(
‘text’ => $this->l(‘Passer à 0’),
‘icon’ => ‘icon-pencil’,
‘confirm’ => $this->l(‘Confirmez-vous le passage à 0 ?’)
);
$this->bulk_actions[‘var1’] = array(
‘text’ => $this->l(‘Passer à 1’),
‘icon’ => ‘icon-pencil’,
‘confirm’ => $this->l(‘Confirmez-vous le passage à 1 ?’)
);

}

/**
* Realiser le traitement sur le choix var0
*/
protected function processBulkVar0(){
// Check si une case est cochée
if (is_array($this->boxes) && !empty($this->boxes)){
$dbQuery = Db::getInstance();
// Get les « id_product » cochés
foreach ($this->boxes as $id_product) {
$result = $dbQuery->query(‘UPDATE ‘ . _DB_PREFIX_ . ‘product SET variable_temp = 0 WHERE id_product = ‘ . $id_product);
}
}
}

/**
* Realiser le traitement sur le choix var1
*/
protected function processBulkVar1(){
// Check si une case est cochée
if (is_array($this->boxes) && !empty($this->boxes)){
$dbQuery = Db::getInstance();
// Get les « id_product » cochés
foreach ($this->boxes as $id_product) {
$result = $dbQuery->query(‘UPDATE ‘ . _DB_PREFIX_ . ‘product SET variable_temp = 1 WHERE id_product = ‘ . $id_product);
}
}
}

}
?>

3/ Supprimer le fichier /cache/class_index.php

4/ Allez dans la table ps_product ajouter un champ de type bool, nommé variable_temp.

5/ Allez dans le BO / Catalogue / Produits, cocher 2 checkbox, puis dans le selecteur du bas « choisissez la nouvelle option » et confirmer le popup.

Michael

Développeur / intégrateur, travaillant en agence web depuis 2005, je viens à présent vous proposer de venir découvrir mes créations personnelles de plugins / themes pour le CMS Wordpress & Prestashop, quelques solutions en mode SAAS & un peu d'actualité web ( / Twitter).

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.