Make bookmarks module multicompany aware

This commit is contained in:
Raphaël Doursenaud 2013-12-10 11:33:27 +01:00
parent d3d1863150
commit 071dd8e758
5 changed files with 14 additions and 3 deletions

View File

@ -67,6 +67,7 @@ function printBookmarksList($aDb, $aLangs)
{
$sql = "SELECT rowid, title, url, target FROM ".MAIN_DB_PREFIX."bookmark";
$sql.= " WHERE (fk_user = ".$user->id." OR fk_user is NULL OR fk_user = 0)";
$sql.= " AND entity = ".$conf->entity;
$sql.= " ORDER BY position";
if ($resql = $db->query($sql) )
{

View File

@ -57,10 +57,13 @@ class Bookmark
*/
function fetch($id)
{
global $conf;
$sql = "SELECT rowid, fk_user, dateb as datec, url, target,";
$sql.= " title, position, favicon";
$sql.= " FROM ".MAIN_DB_PREFIX."bookmark";
$sql.= " WHERE rowid = ".$id;
$sql.= " AND entity = ".$conf->entity;
dol_syslog("Bookmark::fetch sql=".$sql, LOG_DEBUG);
$resql = $this->db->query($sql);
@ -96,6 +99,8 @@ class Bookmark
*/
function create()
{
global $conf;
// Clean parameters
$this->url=trim($this->url);
$this->title=trim($this->title);
@ -106,13 +111,15 @@ class Bookmark
$this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_user,dateb,url,target";
$sql.= " ,title,favicon,position";
$sql.= ",title,favicon,position";
$sql.= ",entity";
if ($this->fk_soc) $sql.=",fk_soc";
$sql.= ") VALUES (";
$sql.= ($this->fk_user > 0?"'".$this->fk_user."'":"0").",";
$sql.= " ".$this->db->idate($now).",";
$sql.= " '".$this->url."', '".$this->target."',";
$sql.= " '".$this->db->escape($this->title)."', '".$this->favicon."', '".$this->position."'";
$sql.= ", '".$conf->entity."'";
if ($this->fk_soc) $sql.=",".$this->fk_soc;
$sql.= ")";

View File

@ -73,6 +73,7 @@ $sql = "SELECT b.fk_soc as rowid, b.dateb, b.rowid as bid, b.fk_user, b.url, b.t
$sql.= " u.login, u.lastname, u.firstname";
$sql.= " FROM ".MAIN_DB_PREFIX."bookmark as b LEFT JOIN ".MAIN_DB_PREFIX."user as u ON b.fk_user=u.rowid";
$sql.= " WHERE 1=1";
$sql.= " AND b.entity = ".$conf->entity;
if (! $user->admin) $sql.= " AND (b.fk_user = ".$user->id." OR b.fk_user is NULL OR b.fk_user = 0)";
$sql.= $db->order($sortfield.", position",$sortorder);
$sql.= $db->plimit($limit, $offset);

View File

@ -47,7 +47,7 @@ class box_bookmarks extends ModeleBoxes
*/
function loadBox($max=5)
{
global $user, $langs, $db;
global $user, $langs, $db, $conf;
$langs->load("boxes");
$this->max=$max;
@ -70,6 +70,7 @@ class box_bookmarks extends ModeleBoxes
$sql = "SELECT b.title, b.url, b.target, b.favicon";
$sql.= " FROM ".MAIN_DB_PREFIX."bookmark as b";
$sql.= " WHERE fk_user = ".$user->id;
$sql.= " AND b.entity = ".$conf->entity;
$sql.= $db->order("position","ASC");
$sql.= $db->plimit($max, 0);

View File

@ -26,5 +26,6 @@ create table llx_bookmark
target varchar(16),
title varchar(64),
favicon varchar(24),
position integer DEFAULT 0
position integer DEFAULT 0,
entity integer DEFAULT 1 NOT NULL -- multicompany ID
)ENGINE=innodb;