* * -------------------------------------------- * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 2 of the License, or (at your * * option) any later version. * \**************************************************************************/ /* $Id$ */ class addressbook_ { var $id; var $owner; var $access; var $firstname; var $lastname; var $email; var $wphone; var $hphone; var $fax; var $pager; var $mphone; var $ophone; var $street; var $city; var $state; var $zip; var $bday; var $company; var $company_id; var $url; var $notes; var $searchreturn; var $search_filter; var $lang_showing; var $columns_to_display; var $cols; function get_entry($id) { global $phpgw,$phpgw_info; $phpgw->db->query("SELECT * FROM addressbook WHERE ab_owner='" . $phpgw_info["user"]["account_id"] . "' AND ab_id='".$id."'"); $phpgw->db->next_record(); $this->ab_id = stripslashes($phpgw->db->f("ab_id")); $this->owner = stripslashes($phpgw->db->f("ab_owner")); $this->access = stripslashes($phpgw->db->f("ab_access")); $this->firstname = stripslashes($phpgw->db->f("ab_firstname")); $this->lastname = stripslashes($phpgw->db->f("ab_lastname")); $this->title = stripslashes($phpgw->db->f("ab_title")); $this->email = stripslashes($phpgw->db->f("ab_email")); $this->hphone = stripslashes($phpgw->db->f("ab_hphone")); $this->wphone = stripslashes($phpgw->db->f("ab_wphone")); $this->fax = stripslashes($phpgw->db->f("ab_fax")); $this->pager = stripslashes($phpgw->db->f("ab_pager")); $this->mphone = stripslashes($phpgw->db->f("ab_mphone")); $this->ophone = stripslashes($phpgw->db->f("ab_ophone")); $this->street = stripslashes($phpgw->db->f("ab_street")); $this->address2 = stripslashes($phpgw->db->f("ab_address2")); $this->city = stripslashes($phpgw->db->f("ab_city")); $this->state = stripslashes($phpgw->db->f("ab_state")); $this->zip = stripslashes($phpgw->db->f("ab_zip")); $this->bday = stripslashes($phpgw->db->f("ab_bday")); if ($phpgw_info["apps"]["timetrack"]["enabled"]) { $this->company = stripslashes($phpgw->db->f("ab_company_id")); } else { $this->company = stripslashes($phpgw->db->f("ab_company")); } $this->notes = stripslashes($phpgw->db->f("ab_notes")); $this->url = stripslashes($phpgw->db->f("ab_url")); $this->access = stripslashes($phpgw->db->f("ab_access")); return $this; } function add_entry() { global $phpgw,$phpgw_info; if($phpgw_info["apps"]["timetrack"]["enabled"]) { $sql = "INSERT INTO addressbook (" . "ab_email,ab_firstname,ab_lastname,ab_title,ab_hphone,ab_wphone," . "ab_fax,ab_pager,ab_mphone,ab_ophone,ab_street,ab_address2," . "ab_city,ab_state,ab_zip,ab_bday,ab_notes,ab_company_id,ab_access,ab_url," . "ab_owner) VALUES (" . " '" . addslashes($this->email) . "','" . addslashes($this->firstname) . "','" . addslashes($this->lastname) . "','" . addslashes($this->title) . "','" . addslashes($this->hphone) . "','" . addslashes($this->wphone) . "','" . addslashes($this->fax) . "','" . addslashes($this->pager) . "','" . addslashes($this->mphone) . "','" . addslashes($this->ophone) . "','" . addslashes($this->street) . "','" . addslashes($this->address2) . "','" . addslashes($this->city) . "','" . addslashes($this->state) . "','" . addslashes($this->zip) . "','" . addslashes($this->bday) . "','" . addslashes($this->notes) . "','" . addslashes($this->company) . "','" . addslashes($this->access) . "','" . addslashes($this->url) . "','" . $phpgw_info["user"]["account_id"] . "')"; } else { $sql = "INSERT INTO addressbook (" . "ab_email,ab_firstname,ab_lastname,ab_title,ab_hphone,ab_wphone," . "ab_fax,ab_pager,ab_mphone,ab_ophone,ab_street,ab_address2," . "ab_city,ab_state,ab_zip,ab_bday,ab_notes,ab_company,ab_access,ab_url," . "ab_owner) VALUES (" . " '" . addslashes($this->email) . "','" . addslashes($this->firstname) . "','" . addslashes($this->lastname) . "','" . addslashes($this->title) . "','" . addslashes($this->hphone) . "','" . addslashes($this->wphone) . "','" . addslashes($this->fax) . "','" . addslashes($this->pager) . "','" . addslashes($this->mphone) . "','" . addslashes($this->ophone) . "','" . addslashes($this->street) . "','" . addslashes($this->address2) . "','" . addslashes($this->city) . "','" . addslashes($this->state) . "','" . addslashes($this->zip) . "','" . addslashes($this->bday) . "','" . addslashes($this->notes) . "','" . addslashes($this->company) . "','" . addslashes($this->access) . "','" . addslashes($this->url) . "','" . $phpgw_info["user"]["account_id"] . "')"; } $phpgw->db->query($sql); return; } function update_entry() { global $phpgw,$phpgw_info; if($phpgw_info["apps"]["timetrack"]["enabled"]) { $sql = "UPDATE addressbook set " . " ab_email='" . addslashes($this->email) . "', ab_firstname='" . addslashes($this->firstname) . "', ab_lastname='" . addslashes($this->lastname) . "', ab_title='" . addslashes($this->title) . "', ab_hphone='" . addslashes($this->hphone) . "', ab_wphone='" . addslashes($this->wphone) . "', ab_fax='" . addslashes($this->fax) . "', ab_pager='" . addslashes($this->pager) . "', ab_mphone='" . addslashes($this->mphone) . "', ab_ophone='" . addslashes($this->ophone) . "', ab_street='" . addslashes($this->street) . "', ab_address2='" . addslashes($this->address2) . "', ab_city='" . addslashes($this->city) . "', ab_state='" . addslashes($this->state) . "', ab_zip='" . addslashes($this->zip) . "', ab_bday='" . addslashes($this->bday) . "', ab_notes='" . addslashes($this->notes) . "', ab_company_id='" . addslashes($this->company) . "', ab_access='" . addslashes($this->access) . "', ab_url='" . addslashes($this->url) . "' WHERE ab_owner='" . $phpgw_info["user"]["account_id"] . "' AND ab_id='" . $this->id."'"; } else { $sql = "UPDATE addressbook set " . " ab_email='" . addslashes($this->email) . "', ab_firstname='" . addslashes($this->firstname) . "', ab_lastname='" . addslashes($this->lastname) . "', ab_title='" . addslashes($this->title) . "', ab_hphone='" . addslashes($this->hphone) . "', ab_wphone='" . addslashes($this->wphone) . "', ab_fax='" . addslashes($this->fax) . "', ab_pager='" . addslashes($this->pager) . "', ab_mphone='" . addslashes($this->mphone) . "', ab_ophone='" . addslashes($this->ophone) . "', ab_street='" . addslashes($this->street) . "', ab_address2='" . addslashes($this->address2) . "', ab_city='" . addslashes($this->city) . "', ab_state='" . addslashes($this->state) . "', ab_zip='" . addslashes($this->zip) . "', ab_bday='" . addslashes($this->bday) . "', ab_notes='" . addslashes($this->notes) . "', ab_company='" . addslashes($this->company) . "', ab_access='" . addslashes($this->access) . "', ab_url='" . addslashes($this->url) . "' WHERE ab_owner='" . $phpgw_info["user"]["account_id"] . "' AND ab_id='" . $this->id."'"; } $phpgw->db->query($sql); return; } function delete_entry() { global $phpgw,$phpgw_info; $phpgw->db->query("delete from addressbook where ab_owner='" . $phpgw_info["user"]["account_id"] . "' and ab_id='".$this->id."'"); return; } function count_entries($query,$filter,$filtermethod) { global $phpgw,$phpgw_info; if ($phpgw_info["apps"]["timetrack"]["enabled"]) { $phpgw->db->query("SELECT count(*) " . "from addressbook as a, customers as c where a.ab_company_id = c.company_id " . "AND $filtermethod AND (a.ab_lastname like '" . "%$query%' OR a.ab_firstname like '%$query%' OR a.ab_email like '%$query%' OR " . "a.ab_street like '%$query%' OR a.ab_city like '%$query%' OR a.ab_state " . "like '%$query%' OR a.ab_zip like '%$query%' OR a.ab_notes like " . "'%$query%' OR c.company_name like '%$query%' OR a.ab_url like '%$query%')",__LINE__,__FILE__); // . "'%$query%' OR c.company_name like '%$query%')" } else { $phpgw->db->query("SELECT count(*) " . "from addressbook " . "WHERE $filtermethod AND (ab_lastname like '" . "%$query%' OR ab_firstname like '%$query%' OR ab_email like '%$query%' OR " . "ab_street like '%$query%' OR ab_city like '%$query%' OR ab_state " . "like '%$query%' OR ab_zip like '%$query%' OR ab_notes like " . "'%$query%' OR ab_company like '%$query%' OR ab_url like '%$query$%')",__LINE__,__FILE__); // . "'%$query%' OR ab_company like '%$query%')" } $phpgw->db->next_record(); if ($phpgw->db->f(0) == 1) { return lang("your search returned 1 match"); } else { $this->limit = $phpgw->db->f(0); return lang("your search returned x matchs",$phpgw->db->f(0)); } } function get_entries($query="",$filter="",$sort="",$order="",$start=0) { global $phpgw,$phpgw_info,$abc; $limit = $phpgw->nextmatchs->sql_limit($start); if ($order) { $ordermethod = "order by $order $sort"; } else { $ordermethod = "order by ab_lastname,ab_firstname,ab_email asc"; } if (! $filter) { $filter = "none"; } if ($filter != "private") { if ($filter != "none") { $filtermethod = " ab_access like '%,$filter,%' "; } else { $filtermethod = " (ab_owner='" . $phpgw_info["user"]["account_id"] ."' OR ab_access='public' " . $phpgw->accounts->sql_search("ab_access") . " ) "; } } else { $filtermethod = " ab_owner='" . $phpgw_info["user"]["account_id"] . "' "; } if ($query) { $this->searchreturn=$this->count_entries($query,$filter,$filtermethod); } else { $this->searchreturn=""; $phpgw->db->query("select count(*) from addressbook where $filtermethod",__LINE__,__FILE__); $phpgw->db->next_record(); } if ($phpgw_info["apps"]["timetrack"]["enabled"]) { $company_sortorder = "c.company_name"; } else { $company_sortorder = "ab_company"; } //$phpgw->db->next_record(); if ($phpgw->db->f(0) > $phpgw_info["user"]["preferences"]["common"]["maxmatchs"]) { $this->lang_showing=lang("showing x - x of x",($start + 1),($start + $phpgw_info["user"]["preferences"]["common"]["maxmatchs"]),$phpgw->db->f(0)); } else { $this->lang_showing=lang("showing x",$phpgw->db->f(0)); } $this->search_filter = $phpgw->nextmatchs->show_tpl("index.php",$start,$phpgw->db->f(0),"&order=$order&filter=$filter&sort=$sort&query=$query", "75%", $phpgw_info["theme"]["th_bg"]); while ($column = each($abc)) { if (isset($phpgw_info["user"]["preferences"]["addressbook"][$column[0]]) && $phpgw_info["user"]["preferences"]["addressbook"][$column[0]]) { $this->cols .= " \n"; $this->cols .= ' '; $this->cols .= $phpgw->nextmatchs->show_sort_order($sort,"ab_" . $column[0],$order,"index.php",lang($column[1])); $this->cols .= "\n "; $this->cols .= "\n"; // To be used when displaying the rows $this->columns_to_display[$column[0]] = True; } } if (isset($query) && $query) { if (isset($phpgw_info["apps"]["timetrack"]["enabled"]) && $phpgw_info["apps"]["timetrack"]["enabled"]) { $phpgw->db->query("SELECT a.ab_id,a.ab_owner,a.ab_firstname,a.ab_lastname,a.ab_company_id," . "a.ab_email,a.ab_wphone,c.company_name,a.ab_hphone,a.ab_fax,a.ab_mphone " . "from addressbook as a, customers as c where a.ab_company_id = c.company_id " . "AND $filtermethod AND (a.ab_lastname like '" . "%$query%' OR a.ab_firstname like '%$query%' OR a.ab_email like '%$query%' OR " . "a.ab_street like '%$query%' OR a.ab_city like '%$query%' OR a.ab_state " . "like '%$query%' OR a.ab_zip like '%$query%' OR a.ab_notes like " . "'%$query%' OR c.company_name like '%$query%') $ordermethod limit $limit",__LINE__,__FILE__); } else { $phpgw->db->query("SELECT * from addressbook WHERE $filtermethod AND (ab_lastname like '" . "%$query%' OR ab_firstname like '%$query%' OR ab_email like '%$query%' OR " . "ab_street like '%$query%' OR ab_city like '%$query%' OR ab_state " . "like '%$query%' OR ab_zip like '%$query%' OR ab_notes like " . "'%$query%' OR ab_company like '%$query%') $ordermethod limit $limit",__LINE__,__FILE__); } } else { if ($phpgw_info["apps"]["timetrack"]["enabled"]) { $phpgw->db->query("SELECT a.ab_id,a.ab_owner,a.ab_firstname,a.ab_lastname," . "a.ab_email,a.ab_wphone,c.company_name " . "from addressbook as a, customers as c where a.ab_company_id = c.company_id " . "AND $filtermethod $ordermethod limit $limit",__LINE__,__FILE__); } else { $phpgw->db->query("SELECT * from addressbook WHERE $filtermethod $ordermethod limit $limit",__LINE__,__FILE__); } } $i=0; while ($phpgw->db->next_record()) { $this->ab_id[$i] = htmlentities(stripslashes($phpgw->db->f("ab_id"))); $this->owner[$i] = htmlentities(stripslashes($phpgw->db->f("ab_owner"))); $this->access[$i] = htmlentities(stripslashes($phpgw->db->f("ab_access"))); $this->firstname[$i] = htmlentities(stripslashes($phpgw->db->f("ab_firstname"))); $this->lastname[$i] = htmlentities(stripslashes($phpgw->db->f("ab_lastname"))); $this->title[$i] = htmlentities(stripslashes($phpgw->db->f("ab_title"))); $this->email[$i] = htmlentities(stripslashes($phpgw->db->f("ab_email"))); $this->hphone[$i] = htmlentities(stripslashes($phpgw->db->f("ab_hphone"))); $this->wphone[$i] = htmlentities(stripslashes($phpgw->db->f("ab_wphone"))); $this->fax[$i] = htmlentities(stripslashes($phpgw->db->f("ab_fax"))); $this->pager[$i] = htmlentities(stripslashes($phpgw->db->f("ab_pager"))); $this->mphone[$i] = htmlentities(stripslashes($phpgw->db->f("ab_mphone"))); $this->ophone[$i] = htmlentities(stripslashes($phpgw->db->f("ab_ophone"))); $this->street[$i] = htmlentities(stripslashes($phpgw->db->f("ab_street"))); $this->address2[$i] = htmlentities(stripslashes($phpgw->db->f("ab_address2"))); $this->city[$i] = htmlentities(stripslashes($phpgw->db->f("ab_city"))); $this->state[$i] = htmlentities(stripslashes($phpgw->db->f("ab_state"))); $this->zip[$i] = htmlentities(stripslashes($phpgw->db->f("ab_zip"))); $this->bday[$i] = htmlentities(stripslashes($phpgw->db->f("ab_bday"))); if ($phpgw_info["apps"]["timetrack"]["enabled"]) { $this->company[$i] = htmlentities(stripslashes($phpgw->db->f("company_name"))); } else { $this->company[$i] = htmlentities(stripslashes($phpgw->db->f("ab_company"))); } $this->company_id[$i] = htmlentities(stripslashes($phpgw->db->f("ab_company_id"))); $this->notes[$i] = htmlentities(stripslashes($phpgw->db->f("ab_notes"))); if ($phpgw->db->f("ab_url")) { if (! ereg("^http://",$phpgw->db->f("ab_url")) ) { $this->url[$i] = htmlentities("http://".stripslashes($phpgw->db->f("ab_url"))); } else { $this->url[$i] = htmlentities(stripslashes($phpgw->db->f("ab_url"))); } } else { $this->url[$i] = htmlentities(""); } $i++; } return $this; } } ?>