Add PRODUCT_DEL_MULTILANGS trigger for translation deletion on product

This commit is contained in:
Paris Liakos 2015-11-17 01:20:58 +02:00
parent 146aa7815b
commit fb6819764d
3 changed files with 14 additions and 3 deletions

View File

@ -101,6 +101,7 @@ class InterfaceDemo extends DolibarrTriggers
case 'PRODUCT_DELETE': case 'PRODUCT_DELETE':
case 'PRODUCT_PRICE_MODIFY': case 'PRODUCT_PRICE_MODIFY':
case 'PRODUCT_SET_MULTILANGS': case 'PRODUCT_SET_MULTILANGS':
case 'PRODUCT_DEL_MULTILANGS':
//Stock mouvement //Stock mouvement
case 'STOCK_MOVEMENT': case 'STOCK_MOVEMENT':

View File

@ -1067,9 +1067,11 @@ class Product extends CommonObject
* Delete a language for this product * Delete a language for this product
* *
* @param string $langtodelete Language code to delete * @param string $langtodelete Language code to delete
* @param User $user Object user making delete
*
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK
*/ */
function delMultiLangs($langtodelete) function delMultiLangs($langtodelete, $user)
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_lang"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_lang";
$sql.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($langtodelete)."'"; $sql.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($langtodelete)."'";
@ -1078,6 +1080,14 @@ class Product extends CommonObject
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) if ($result)
{ {
// Call trigger
$result = $this->call_trigger('PRODUCT_DEL_MULTILANGS',$user);
if ($result < 0) {
$this->error = $this->db->lasterror();
dol_syslog(get_class($this).'::delMultiLangs error='.$this->error, LOG_ERR);
return -1;
}
// End call triggers
return 1; return 1;
} }
else else

View File

@ -60,7 +60,7 @@ if ($action == 'delete' && GETPOST('langtodelete','alpha'))
{ {
$object = new Product($db); $object = new Product($db);
$object->fetch($id); $object->fetch($id);
$object->delMultiLangs(GETPOST('langtodelete','alpha')); $object->delMultiLangs(GETPOST('langtodelete','alpha'), $user);
} }
// Add translation // Add translation
@ -144,7 +144,7 @@ $cancel != $langs->trans("Cancel") &&
$langtodelete=GETPOST('langdel','alpha'); $langtodelete=GETPOST('langdel','alpha');
if ( $object->delMultiLangs($langtodelete) > 0 ) if ( $object->delMultiLangs($langtodelete, $user) > 0 )
{ {
$action = ''; $action = '';
} }