function update_addressbook($addressbook_id, $name)
{
$sql = "UPDATE ab_addressbooks SET name='".smart_addslashes($name)."' WHERE id='$addressbook_id'";
return $this->query($sql);
}
function get_addressbook_by_name($name)
{
$sql = "SELECT * FROM ab_addressbooks WHERE name='".smart_addslashes($name)."'";
$this->query($sql);
if ($this->next_record())
{
return $this->Record;
}else
{
return false;
}
}
function delete_addressbook($addressbook_id)
{
global $GO_SECURITY;
$ab = new addressbook();
$sql = "SELECT * FROM ab_contacts WHERE addressbook_id='$addressbook_id'";
$this->query($sql);
while($this->next_record())
{
$GO_SECURITY->delete_acl($this->f('acl_read'));
$GO_SECURITY->delete_acl($this->f('acl_write'));
$ab->delete_contact($this->f('id'));
}
$sql = "SELECT * FROM ab_companies WHERE addressbook_id='$addressbook_id'";
$this->query($sql);
while($this->next_record())
{
$GO_SECURITY->delete_acl($this->f('acl_read'));
$GO_SECURITY->delete_acl($this->f('acl_write'));
$ab->delete_contact($this->f('id'));
}
if ($this->query("DELETE FROM ab_subscribed WHERE addressbook_id='$addressbook_id'"))
{
$sql = "DELETE FROM ab_addressbooks WHERE id='$addressbook_id'";
return $this->query($sql);
}
}
function get_addressbook($addressbook_id)
{
$sql = "SELECT * FROM ab_addressbooks WHERE id='$addressbook_id'";
$this->query($sql);
if($this->next_record())
{
return $this->Record;
}
return false;
}
function get_subscribed_addressbooks($user_id)
{
$sql = "SELECT ab_addressbooks.* FROM ab_addressbooks LEFT JOIN ab_subscribed ON (ab_subscribed.addressbook_id=ab_addressbooks.id) WHERE ab_subscribed.user_id='$user_id' ORDER BY name ASC";
$this->query($sql);
return $this->num_rows();
}
function subscribe($user_id, $addressbook_id)
{
$sql = "INSERT INTO ab_subscribed (user_id, addressbook_id) VALUES ('$user_id', '$addressbook_id')";
return $this->query($sql);
}
function is_subscribed($user_id, $addressbook_id)
{
$sql = "SELECT addressbook_id FROM ab_subscribed WHERE user_id='$user_id' AND addressbook_id='$addressbook_id'";
$this->query($sql);
return $this->next_record();
}
function unsubscribe_all($user_id)
{
$sql = "DELETE FROM ab_subscribed WHERE user_id='$user_id'";
return $this->query($sql);
}
function unsubscribe($user_id, $addressbook_id)
{
$sql = "DELETE FROM ab_subscribed WHERE user_id='$user_id' AND addressbook_id='$addressbook_id'";
return $this->query($sql);
}
function search_contacts($user_id, $query, $field='last_name', $addressbook_id=0)
{
$query = str_replace('*', '%', $query);
$sql = "SELECT DISTINCT ab_contacts.* FROM ab_contacts ";
if ($addressbook_id > 0)
{
$sql .= "WHERE ab_contacts.addressbook_id='$addressbook_id' AND ";
}else
{
$sql .= "INNER JOIN ab_subscribed ON (ab_subscribed.addressbook_id=ab_contacts.addressbook_id) WHERE ab_subscribed.user_id='$user_id' AND ";
}
$sql .= "ab_contacts.$field LIKE '".smart_addslashes($query)."' ".
"ORDER BY first_name ASC, last_name ASC";
$this->query($sql);
return $this->num_rows();
}
function search_companies($user_id, $query, $field='name', $addressbook_id=0)
{
$query = str_replace('*', '%', $query);
$sql = "SELECT DISTINCT ab_companies.* FROM ab_companies ";
if ($addressbook_id > 0)
{
$sql .= "WHERE ab_companies.addressbook_id='$addressbook_id' AND ";
}else
{
$sql .= "INNER JOIN ab_subscribed ON (ab_subscribed.addressbook_id=ab_companies.addressbook_id) WHERE ab_subscribed.user_id='$user_id' AND ";
}
$sql .= "ab_companies.$field LIKE '".smart_addslashes($query)."' ".
"ORDER BY name ASC";
$this->query($sql);
return $this->num_rows();
}
function get_contacts($addressbook_id, $sort = "name", $direction = "ASC", $user_id=0)
{
global $GO_SECURITY;
if ($user_id == 0)
{
$user_id = $GO_SECURITY->user_id;
}
if($sort == 'name')
{
$sort = 'first_name '.$direction.', last_name';
}
$sql = "SELECT DISTINCT * FROM ab_contacts ".
"INNER JOIN acl ON (ab_contacts.acl_read = acl.acl_id OR ab_contacts.acl_write = acl.acl_id) ".
"LEFT JOIN users_groups ON (acl.group_id = users_groups.group_id) ".
" WHERE ((users_groups.user_id = ".$user_id." AND acl.user_id = 0 ) OR (".
"acl.group_id = 0 AND acl.user_id = ".$user_id.")) ";
$sql1 = "DELETE FROM tp_mailing_contacts WHERE contact_id='$contact_id'";
$sql2 = "DELETE FROM ab_custom_contact_fields WHERE id='$contact_id'";
if ($this->query($sql1) && $this->query($sql2))
{
return $this->query("DELETE FROM ab_contacts WHERE id='$contact_id'");
}
}
function user_is_contact($user_id, $id)
{
$sql = "SELECT ab_contacts.* FROM ab_contacts LEFT JOIN ab_addressbooks ON (ab_addressbooks.id=ab_contacts.addressbook_id) WHERE ab_contacts.source_id='$id' AND ab_addressbooks.user_id='$user_id'";
$this->query($sql);
if ($this->next_record())
{
return $this->Record;
}else
{
return false;
}
}
function user_is_in_addressbook($user_id, $addressbook_id)
{
$sql = "SELECT id FROM ab_contacts WHERE source_id='$user_id' AND addressbook_id='$addressbook_id'";
$this->query($sql);
return $this->next_record();
}
function get_contact_id_by_email($email, $user_id)
{
$sql = "SELECT ab_contacts.id FROM ab_contacts LEFT JOIN ab_addressbooks ON (ab_addressbooks.id=ab_contacts.addressbook_id) WHERE ab_contacts.email='".smart_addslashes($email)."' AND ab_addressbooks.user_id='$user_id'";
$this->query($sql);
if ($this->next_record())
return $this->f("id");
else
return false;
}
function get_contact_profile_by_email($email, $user_id)
{
$sql = "SELECT ab_contacts.* FROM ab_contacts LEFT JOIN ab_addressbooks ON (ab_addressbooks.id=ab_contacts.addressbook_id) WHERE ab_contacts.email='".smart_addslashes($email)."' AND ab_addressbooks.user_id='$user_id'";
$this->query($sql);
if ($this->next_record())
return $this->Record;
else
return false;
}
function get_groups($addressbook_id)
{
$sql= "SELECT * FROM ab_groups WHERE addressbook_id='$addressbook_id'";