Pour créer un ticket support, commencez par une recherche

Grille Images : Ajouter un champ d'une table spécifique (éditable)


Pré-requis

  • Version 2014-03-12 de Store Commander (minimum)
  • Extension SC Éditeur de grilles Pro - Version 1.0 (minimum)

 

Objectif

Nous souhaitons ajouter le champ "Action spécifique" qui est stocké dans la table ps_my_table.

 

Mise en place

  • Pour ajouter le champ à la liste des champs disponibles pour la grille Images, cliquez sur le bouton  de l'interface "Ajout de champ", puis saisissez les informations suivantes :


Quel est l'ID du champ ? : action_specifique (doit correspondre exactement au nom du champ dans la base de données)

 

  • SC crée le champ, il faut maintenant renseigner dans la grille :


Nom du champ :Action spécifique

Table : saisissez : special

Type : Modifiable

  

  • Dans le panneau des propriétés avancées :

 

SQLSelectDataSelect :
 
return ' ,my_table.specific_action ';
 
 
 
SQLSelectDataLeftJoin : 
 
return " LEFT JOIN "._DB_PREFIX_."my_table ON (my_table.id_image= i.id_image)";
 
 
 
Gris JS on EditCell :
 
idx_specific_action=prop_tb._imagesGrid.getColIndexById('specific_action');
if(stage==2)
{
if (cInd == idx_specific_action){
$.post("index.php?ajax=1&act=cat_image_update&action=update&id_lang="+SC_ID_LANG+"&"+new Date().getTime(),{'id_product': lastProductSelID, col: 'specific_action', val: nValue.replace(/#/g,''), 'list_id_image':prop_tb._imagesGrid.getSelectedRowId()},function(data){});
}
}
 
 
 
onAfterUpdateSQL : 
 
if($col=='specific_action')
{
$sql = "SELECT * FROM "._DB_PREFIX_."my_table WHERE id_image=".(int)$id_image;
$res=Db::getInstance()->ExecuteS($sql);
if (count($res))
{
   $sql = "UPDATE "._DB_PREFIX_."my_table SET specific_action=".pSQL($val)."  WHERE id_image=".(int)$id_image;
   Db::getInstance()->Execute($sql);
}else{
   $sql = "INSERT INTO "._DB_PREFIX_."my_table (id_image,specific_action) VALUES (".(int)$id_image.",".pSQL($val).")";
   Db::getInstance()->Execute($sql);
}
}

 

  • Enregistrez et fermez la fenêtre d'édition des champs personnalisés et ajoutez le champ à vos grilles.