New: When a module with boxes is activated, box is also activated by
default for everybody, except for users that had personlized their box view.
This commit is contained in:
parent
1d51ee3aab
commit
da94f76364
@ -84,8 +84,11 @@ if ($action == 'add')
|
||||
$resql = $db->query($sql);
|
||||
|
||||
// Remove all personalized setup when a box is activated or disabled (to be sure user see new box)
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_param";
|
||||
$sql.= " WHERE param LIKE 'MAIN_BOXES_%'";
|
||||
// TODO Disable this when adding combo will be available on home page for each user.
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_param WHERE param LIKE 'MAIN_BOXES_%'";
|
||||
dol_syslog("boxes.php delete user_param sql=".$sql);
|
||||
$resql = $db->query($sql);
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes WHERE fk_user != 0";
|
||||
dol_syslog("boxes.php delete user_param sql=".$sql);
|
||||
$resql = $db->query($sql);
|
||||
|
||||
|
||||
@ -582,28 +582,53 @@ abstract class DolibarrModules
|
||||
$file = isset($this->boxes[$key][1])?$this->boxes[$key][1]:'';
|
||||
$note = isset($this->boxes[$key][2])?$this->boxes[$key][2]:'';
|
||||
|
||||
$sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."boxes_def";
|
||||
$sql.= " WHERE file = '".$file."'";
|
||||
$sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."boxes_def";
|
||||
$sql.= " WHERE file = '".$this->db->escape($file)."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
if ($note) $sql.=" AND note ='".$this->db->escape($note)."'";
|
||||
|
||||
$result=$this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$row = $this->db->fetch_row($result);
|
||||
if ($row[0] == 0)
|
||||
$obj = $this->db->fetch_object($result);
|
||||
if ($obj->nb == 0)
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file,entity,note)";
|
||||
$sql.= " VALUES ('".$this->db->escape($file)."',";
|
||||
$sql.= $conf->entity.",";
|
||||
$sql.= $note?"'".$this->db->escape($note)."'":"null";
|
||||
$sql.= ")";
|
||||
$this->db->begin();
|
||||
|
||||
dol_syslog(get_class($this)."::insert_boxes sql=".$sql);
|
||||
if (! $this->db->query($sql))
|
||||
if (! $err)
|
||||
{
|
||||
$err++;
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file,entity,note)";
|
||||
$sql.= " VALUES ('".$this->db->escape($file)."',";
|
||||
$sql.= $conf->entity.",";
|
||||
$sql.= $note?"'".$this->db->escape($note)."'":"null";
|
||||
$sql.= ")";
|
||||
|
||||
dol_syslog(get_class($this)."::insert_boxes sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if (! $resql) $err++;
|
||||
|
||||
}
|
||||
if (! $err)
|
||||
{
|
||||
$lastid=$this->db->last_insert_id(MAIN_DB_PREFIX."boxes_def","rowid");
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes (box_id,position,box_order,fk_user)";
|
||||
$sql.= " VALUES (".$lastid.", 0, 0, 0)";
|
||||
|
||||
dol_syslog(get_class($this)."::insert_boxes sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if (! $resql) $err++;
|
||||
}
|
||||
|
||||
if (! $err)
|
||||
{
|
||||
$this->db->commit();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::insert_boxes ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user