new attributes

This commit is contained in:
Cédric Salvador 2013-07-29 18:34:21 +02:00 committed by Raphaël Doursenaud
parent e8e3752626
commit ae8fea2615
2 changed files with 32 additions and 11 deletions

View File

@ -24,5 +24,7 @@ create table llx_links
entity INTEGER DEFAULT 1 NOT NULL, -- multi company id entity INTEGER DEFAULT 1 NOT NULL, -- multi company id
datea DATETIME NOT NULL, -- date start datea DATETIME NOT NULL, -- date start
url VARCHAR(255) NOT NULL, -- link url url VARCHAR(255) NOT NULL, -- link url
label VARCHAR(255) NOT NULL -- link label label VARCHAR(255) NOT NULL, -- link label
objecttype VARCHAR(255) NOT NULL, -- object type in Dolibarr
objectid INTEGER NOT NULL
)ENGINE=innodb; )ENGINE=innodb;

View File

@ -36,6 +36,8 @@ class Link extends CommonObject
public $datea; public $datea;
public $url; public $url;
public $label; public $label;
public $objecttype;
public $objectid;
/** /**
* Constructor * Constructor
@ -83,10 +85,12 @@ class Link extends CommonObject
$this->db->begin(); $this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."links (entity, datea, url, label)"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."links (entity, datea, url, label, objecttype, objectid)";
$sql .= " VALUES ('".$conf->entity."', '".$this->db->idate($this->datea)."'"; $sql .= " VALUES ('".$conf->entity."', '".$this->db->idate($this->datea)."'";
$sql .= ", '" . $this->db->escape($this->url) . "'"; $sql .= ", '" . $this->db->escape($this->url) . "'";
$sql .= ", '" . $this->db->escape($this->label) . "')"; $sql .= ", '" . $this->db->escape($this->label) . "'";
$sql .= ", '" . $this->objecttype . "'";
$sql .= ", " . $this->objectid . ")";
dol_syslog(get_class($this)."::create sql=".$sql); dol_syslog(get_class($this)."::create sql=".$sql);
$result = $this->db->query($sql); $result = $this->db->query($sql);
@ -174,8 +178,10 @@ class Link extends CommonObject
$sql = "UPDATE " . MAIN_DB_PREFIX . "links SET "; $sql = "UPDATE " . MAIN_DB_PREFIX . "links SET ";
$sql .= "entity = '" . $conf->entity ."'"; $sql .= "entity = '" . $conf->entity ."'";
$sql .= ", datea = '" . $this->db->idate(dol_now()) . "'"; $sql .= ", datea = '" . $this->db->idate(dol_now()) . "'";
$sql .= ", url = '" . $this->db->escape($this->url) ."'"; $sql .= ", url = '" . $this->db->escape($this->url) . "'";
$sql .= ", label = '" . $this->db->escape($this->label) ."'"; $sql .= ", label = '" . $this->db->escape($this->label) . "'";
$sql .= ", objecttype = '" . $this->objecttype . "'";
$sql .= ", objectid = " . $this->objectid;
$sql .= " WHERE rowid = '" . $this->id ."'"; $sql .= " WHERE rowid = '" . $this->id ."'";
@ -220,19 +226,30 @@ class Link extends CommonObject
/** /**
* Loads all links from database * Loads all links from database
* @return array of Link objects * @param $links array of Link objects to fill
* @param $objecttype type of the associated object in dolibarr
* @param $objectid id of the associated object in dolibarr
* @return 1 if ok, 0 if no records, -1 if error
* *
* */ * */
public function fetchAll() public function fetchAll(&$links, $objecttype, $objectid, $sortfield=null, $sortorder=null)
{ {
$sql = "SELECT rowid, entity, datea, url, label FROM " . MAIN_DB_PREFIX . "links"; global $conf;
$sql = "SELECT rowid, entity, datea, url, label , objecttype, objectid FROM " . MAIN_DB_PREFIX . "links";
$sql .= " WHERE objecttype = '" . $objecttype . "' AND objectid = " . $objectid;
if($conf->entity != 0) $sql .= " AND entity = " . $conf->entity;
if ($sortfield) {
if (empty($sortorder)) {
$sortorder = "ASC";
}
$sql .= " ORDER BY " . $sortfield . " " . $sortorder;
}
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
dol_syslog(get_class($this)."::fetchAll " . $sql, LOG_DEBUG); dol_syslog(get_class($this)."::fetchAll " . $sql, LOG_DEBUG);
if ($resql) { if ($resql) {
$num = $this->db->num_rows($resql); $num = $this->db->num_rows($resql);
dol_syslog(get_class($this)."::fetchAll " . $num . "records", LOG_DEBUG); dol_syslog(get_class($this)."::fetchAll " . $num . "records", LOG_DEBUG);
if ($num > 0) { if ($num > 0) {
$links = array();
while ($obj = $this->db->fetch_object($resql)) { while ($obj = $this->db->fetch_object($resql)) {
$link = new Link($db); $link = new Link($db);
$link->id = $obj->rowid; $link->id = $obj->rowid;
@ -242,7 +259,7 @@ class Link extends CommonObject
$link->label = $obj->label; $link->label = $obj->label;
$links[] = $link; $links[] = $link;
} }
return $links; return 1;
} else { } else {
return 0; return 0;
} }
@ -260,11 +277,13 @@ class Link extends CommonObject
* */ * */
public function fetch($rowid=null) public function fetch($rowid=null)
{ {
global $conf;
if (empty($rowid)) { if (empty($rowid)) {
$rowid = $this->id; $rowid = $this->id;
} }
$sql = "SELECT rowid, entity, datea, url, label FROM " . MAIN_DB_PREFIX . "links"; $sql = "SELECT rowid, entity, datea, url, label, objecttype, objectid FROM " . MAIN_DB_PREFIX . "links";
$sql .= " WHERE rowid = " . $rowid; $sql .= " WHERE rowid = " . $rowid;
if($conf->entity != 0) $sql .= " AND entity = " . $conf->entity;
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
dol_syslog(get_class($this)."::fetch " . $sql, LOG_DEBUG); dol_syslog(get_class($this)."::fetch " . $sql, LOG_DEBUG);
if ($resql) { if ($resql) {