function import_from_vcard() { if (logged_user()->isGuest()) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } @set_time_limit(0); ini_set('auto_detect_line_endings', '1'); if (isset($_GET['from_menu']) && $_GET['from_menu'] == 1) unset($_SESSION['go_back']); if (isset($_SESSION['go_back'])) { unset($_SESSION['go_back']); ajx_current("start"); } else { if(!Contact::canAdd(logged_user(), active_context())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $this->setTemplate('vcard_import'); tpl_assign('import_type', 'contact'); $filedata = array_var($_FILES, 'vcard_file'); if (is_array($filedata)) { $filename = ROOT.'/tmp/'.logged_user()->getId().'temp.vcf'; copy($filedata['tmp_name'], $filename); $result = $this->read_vcard_file($filename); unlink($filename); $import_result = array('import_ok' => array(), 'import_fail' => array()); foreach ($result as $contact_data) { try { DB::beginWork(); if (isset($contact_data['photo_tmp_filename'])) { $file_id = FileRepository::addFile($contact_data['photo_tmp_filename'], array('public' => true)); $contact_data['picture_file'] = $file_id; unlink($contact_data['photo_tmp_filename']); unset($contact_data['photo_tmp_filename']); } if (isset($contact_data['company_name'])) { $company = Contacts::findOne(array("conditions" => "`first_name` = '".mysql_real_escape_string($contact_data['company_name'])."'")); if ($company == null) { $company = new Contact(); $company->setObjectName($contact_data['company_name']); $company->setIsCompany(1); $company->save(); ApplicationLogs::createLog($company, null, ApplicationLogs::ACTION_ADD); } $contact_data['company_id'] = $company->getObjectId(); unset($contact_data['company_name']); } $contact_data['import_status'] = '('.lang('updated').')'; $fname = DB::escape(array_var($contact_data, "first_name")); $lname = DB::escape(array_var($contact_data, "surname")); $email_cond = array_var($contact_data, "email") != '' ? " OR email_address = '".array_var($contact_data, "email")."'" : ""; $contact = Contacts::findOne(array( "conditions" => "first_name = ".$fname." AND surname = ".$lname." $email_cond", 'join' => array( 'table' => ContactEmails::instance()->getTableName(), 'jt_field' => 'contact_id', 'e_field' => 'object_id', ))); $log_action = ApplicationLogs::ACTION_EDIT; if (!$contact) { $contact = new Contact(); $contact_data['import_status'] = '('.lang('new').')'; $log_action = ApplicationLogs::ACTION_ADD; $can_import = active_project() != null ? $contact->canAdd(logged_user(), active_project()) : can_manage_contacts(logged_user()); } else { $can_import = $contact->canEdit(logged_user()); } if ($can_import) { $comp_name = DB::escape(array_var($contact_data, "company_id")); if ($comp_name != '') { $company = Contacts::findOne(array("conditions" => "first_name = $comp_name AND is_company = 1")); if ($company) { $contact_data['company_id'] = $company->getId(); } $contact_data['import_status'] .= " " . lang("company") . " $comp_name"; } else { $contact_data['company_id'] = 0; } $contact_data['birthday'] = $contact_data["o_birthday"]; $contact_data['name'] = $contact_data['first_name']." ".$contact_data['surname']; $contact->setFromAttributes($contact_data); $contact->save(); //Home form if($contact_data['h_address'] != "") $contact->addAddress($contact_data['h_address'], $contact_data['h_city'], $contact_data['h_state'], $contact_data['h_country'], $contact_data['h_zipcode'], 'home'); if($contact_data['h_phone_number'] != "") $contact->addPhone($contact_data['h_phone_number'], 'home', true); if($contact_data['h_phone_number2'] != "") $contact->addPhone($contact_data['h_phone_number2'], 'home'); if($contact_data['h_mobile_number'] != "") $contact->addPhone($contact_data['h_mobile_number'], 'mobile'); if($contact_data['h_fax_number'] != "") $contact->addPhone($contact_data['h_fax_number'], 'fax'); if($contact_data['h_pager_number'] != "") $contact->addPhone($contact_data['h_pager_number'], 'pager'); if($contact_data['h_web_page'] != "") $contact->addWebpage($contact_data['h_web_page'], 'personal'); //Work form if($contact_data['w_address'] != "") $contact->addAddress($contact_data['w_address'], $contact_data['w_city'], $contact_data['w_state'], $contact_data['w_country'], $contact_data['w_zipcode'], 'work'); if($contact_data['w_phone_number'] != "") $contact->addPhone($contact_data['w_phone_number'], 'work', true); if($contact_data['w_phone_number2'] != "") $contact->addPhone($contact_data['w_phone_number2'], 'work'); if($contact_data['w_assistant_number'] != "") $contact->addPhone($contact_data['w_assistant_number'], 'assistant'); if($contact_data['w_callback_number'] != "") $contact->addPhone($contact_data['w_callback_number'], 'callback'); if($contact_data['w_fax_number'] != "") $contact->addPhone($contact_data['w_fax_number'], 'fax', true); if($contact_data['w_web_page'] != "") $contact->addWebpage($contact_data['w_web_page'], 'work'); //Other form if($contact_data['o_address'] != "") $contact->addAddress($contact_data['o_address'], $contact_data['o_city'], $contact_data['o_state'], $contact_data['o_country'], $contact_data['o_zipcode'], 'other'); if($contact_data['o_phone_number'] != "") $contact->addPhone($contact_data['o_phone_number'], 'other', true); if($contact_data['o_phone_number2'] != "") $contact->addPhone($contact_data['o_phone_number2'], 'other'); if($contact_data['o_web_page'] != "") $contact->addWebpage($contact_data['o_web_page'], 'other'); //Emails and instant messaging form if($contact_data['email'] != "") $contact->addEmail($contact_data['email'], 'personal', true); if($contact_data['email2'] != "") $contact->addEmail($contact_data['email2'], 'personal'); if($contact_data['email3'] != "") $contact->addEmail($contact_data['email3'], 'personal'); ApplicationLogs::createLog($contact, null, $log_action); $import_result['import_ok'][] = $contact_data; } else { throw new Exception(lang('no access permissions')); } DB::commit(); } catch (Exception $e) { DB::rollback(); $fail_msg = substr_utf($e->getMessage(), strpos_utf($e->getMessage(), "\r\n")); $import_result['import_fail'][] = array('first_name' => $fname, 'surname' => $lname, 'email' => $contact_data['email'], 'import_status' => $contact_data['import_status'], 'fail_message' => $fail_msg); } } $_SESSION['go_back'] = true; tpl_assign('import_result', $import_result); } } }
/** * Edit specific contact * * @access public * @param void * @return null */ function edit() { if (logged_user()->isGuest()) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $this->setTemplate('edit_contact'); $contact = Contacts::findById(get_id()); if (!$contact instanceof Contact) { flash_error(lang('contact dnx')); ajx_current("empty"); return; } // if if (!$contact->canEdit(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if $im_types = ImTypes::findAll(array('order' => '`id`')); $personal_emails = $contact->getContactEmails('personal'); $contact_data = array_var($_POST, 'contact'); // Populate form fields if (!is_array($contact_data)) { $contact_data = array('first_name' => $contact->getFirstName(), 'surname' => $contact->getSurname(), 'username' => $contact->getUsername(), 'department' => $contact->getDepartment(), 'job_title' => $contact->getJobTitle(), 'email' => $contact->getEmailAddress(), 'email2' => !is_null($personal_emails) && isset($personal_emails[0]) ? $personal_emails[0]->getEmailAddress() : '', 'email3' => !is_null($personal_emails) && isset($personal_emails[1]) ? $personal_emails[1]->getEmailAddress() : '', 'w_web_page' => $contact->getWebpageUrl('work'), 'birthday' => $contact->getBirthday(), 'w_phone_number' => $contact->getPhoneNumber('work', true), 'w_phone_number2' => $contact->getPhoneNumber('work'), 'w_fax_number' => $contact->getPhoneNumber('fax', true), 'w_assistant_number' => $contact->getPhoneNumber('assistant'), 'w_callback_number' => $contact->getPhoneNumber('callback'), 'h_web_page' => $contact->getWebpageUrl('personal'), 'h_phone_number' => $contact->getPhoneNumber('home', true), 'h_phone_number2' => $contact->getPhoneNumber('home'), 'h_fax_number' => $contact->getPhoneNumber('fax'), 'h_mobile_number' => $contact->getPhoneNumber('mobile'), 'h_pager_number' => $contact->getPhoneNumber('pager'), 'o_web_page' => $contact->getWebpageUrl('other'), 'o_phone_number' => $contact->getPhoneNumber('other', true), 'o_phone_number2' => $contact->getPhoneNumber('other'), 'picture_file' => $contact->getPictureFile(), 'timezone' => $contact->getTimezone(), 'company_id' => $contact->getCompanyId()); // array $w_address = $contact->getAddress('work'); if ($w_address) { $contact_data['w_address'] = $w_address->getStreet(); $contact_data['w_city'] = $w_address->getCity(); $contact_data['w_state'] = $w_address->getState(); $contact_data['w_zipcode'] = $w_address->getZipCode(); $contact_data['w_country'] = $w_address->getCountry(); } $h_address = $contact->getAddress('home'); if ($h_address) { $contact_data['h_address'] = $h_address->getStreet(); $contact_data['h_city'] = $h_address->getCity(); $contact_data['h_state'] = $h_address->getState(); $contact_data['h_zipcode'] = $h_address->getZipCode(); $contact_data['h_country'] = $h_address->getCountry(); } $o_address = $contact->getAddress('other'); if ($o_address) { $contact_data['o_address'] = $o_address->getStreet(); $contact_data['o_city'] = $o_address->getCity(); $contact_data['o_state'] = $o_address->getState(); $contact_data['o_zipcode'] = $o_address->getZipCode(); $contact_data['o_country'] = $o_address->getCountry(); } if (is_array($im_types)) { foreach ($im_types as $im_type) { $contact_data['im_' . $im_type->getId()] = $contact->getImValue($im_type); } // foreach } // if $default_im = $contact->getMainImType(); $contact_data['default_im'] = $default_im instanceof ImType ? $default_im->getId() : ''; } // if tpl_assign('isEdit', array_var($_GET, 'isEdit', false)); tpl_assign('contact', $contact); tpl_assign('contact_data', $contact_data); tpl_assign('im_types', $im_types); //Contact Submit if (is_array(array_var($_POST, 'contact'))) { // MANAGE CONCURRENCE WHILE EDITING /* FIXME or REMOVEME $upd = array_var($_POST, 'updatedon'); if ($upd && $contact->getUpdatedOn()->getTimestamp() > $upd && !array_var($_POST,'merge-changes') == 'true') { ajx_current('empty'); evt_add("handle edit concurrence", array( "updatedon" => $contact->getUpdatedOn()->getTimestamp(), "genid" => array_var($_POST,'genid') )); return; } if (array_var($_POST,'merge-changes') == 'true') { $this->setTemplate('card'); $new_contact = Contacts::findById($contact->getId()); ajx_set_panel(lang ('tab name',array('name'=>$new_contact->getObjectName()))); ajx_extra_data(array("title" => $new_contact->getObjectName(), 'icon'=>'ico-contact')); ajx_set_no_toolbar(true); return; } */ try { DB::beginWork(); $contact_data['email'] = trim($contact_data['email']); Contacts::validate($contact_data, get_id()); $newCompany = false; if (array_var($contact_data, 'isNewCompany') == 'true' && is_array(array_var($_POST, 'company'))) { $company_data = array_var($_POST, 'company'); Contacts::validate($company_data); $company = new Contact(); $company->setFromAttributes($company_data); $company->setIsCompany(true); $company->setObjectName(); $company->save(); if ($company_data['address'] != "") { $company->addAddress($company_data['address'], $company_data['city'], $company_data['state'], $company_data['country'], $company_data['zipcode'], 'work', true); } if ($company_data['phone_number'] != "") { $company->addPhone($company_data['phone_number'], 'work', true); } if ($company_data['fax_number'] != "") { $company->addPhone($company_data['fax_number'], 'fax', true); } if ($company_data['homepage'] != "") { $company->addWebpage($company_data['homepage'], 'work'); } if ($company_data['email'] != "") { $company->addEmail($company_data['email'], 'work', true); } ApplicationLogs::createLog($company, ApplicationLogs::ACTION_ADD); $newCompany = true; } $contact_data['birthday'] = getDateValue($contact_data["birthday"]); if (isset($contact_data['specify_username'])) { if ($contact_data['user']['username'] != "") { $contact_data['name'] = $contact_data['user']['username']; } else { $contact_data['name'] = $contact_data['first_name'] . " " . $contact_data['surname']; } } else { $contact_data['name'] = $contact_data['first_name'] . " " . $contact_data['surname']; } $contact->setFromAttributes($contact_data); if ($newCompany) { $contact->setCompanyId($company->getId()); } //telephones $mainPone = $contact->getPhone('work', true); if ($mainPone) { $mainPone->editNumber($contact_data['w_phone_number']); } else { if ($contact_data['w_phone_number'] != "") { $contact->addPhone($contact_data['w_phone_number'], 'work', true); } } $pone2 = $contact->getPhone('work'); if ($pone2) { $pone2->editNumber($contact_data['w_phone_number2']); } else { if ($contact_data['w_phone_number2'] != "") { $contact->addPhone($contact_data['w_phone_number2'], 'work'); } } $faxPhone = $contact->getPhone('fax', true); if ($faxPhone) { $faxPhone->editNumber($contact_data['w_fax_number']); } else { if ($contact_data['w_fax_number'] != "") { $contact->addPhone($contact_data['w_fax_number'], 'fax', true); } } $assistantPhone = $contact->getPhone('assistant'); if ($assistantPhone) { $assistantPhone->editNumber($contact_data['w_assistant_number']); } else { if ($contact_data['w_assistant_number'] != "") { $contact->addPhone($contact_data['w_assistant_number'], 'assistant'); } } $callbackPhone = $contact->getPhone('callback'); if ($callbackPhone) { $callbackPhone->editNumber($contact_data['w_callback_number']); } else { if ($contact_data['w_callback_number'] != "") { $contact->addPhone($contact_data['w_callback_number'], 'callback'); } } $o_phone = $contact->getPhone('other', true); if ($o_phone) { $o_phone->editNumber($contact_data['o_phone_number']); } else { if ($contact_data['o_phone_number'] != "") { $contact->addPhone($contact_data['o_phone_number'], 'other', true); } } $o_pone2 = $contact->getPhone('other'); if ($o_pone2) { $o_pone2->editNumber($contact_data['o_phone_number2']); } else { if ($contact_data['o_phone_number2'] != "") { $contact->addPhone($contact_data['o_phone_number2'], 'other'); } } $h_phone = $contact->getPhone('home', true); if ($h_phone) { $h_phone->editNumber($contact_data['h_phone_number']); } else { if ($contact_data['h_phone_number'] != "") { $contact->addPhone($contact_data['h_phone_number'], 'home', true); } } $h_phone2 = $contact->getPhone('home'); if ($h_phone2) { $h_phone2->editNumber($contact_data['h_phone_number2']); } else { if ($contact_data['h_phone_number2'] != "") { $contact->addPhone($contact_data['h_phone_number2'], 'home'); } } $h_faxPhone = $contact->getPhone('fax'); if ($h_faxPhone) { $h_faxPhone->editNumber($contact_data['h_fax_number']); } else { if ($contact_data['h_fax_number'] != "") { $contact->addPhone($contact_data['h_fax_number'], 'fax'); } } $h_mobilePhone = $contact->getPhone('mobile'); if ($h_mobilePhone) { $h_mobilePhone->editNumber($contact_data['h_mobile_number']); } else { if ($contact_data['h_mobile_number'] != "") { $contact->addPhone($contact_data['h_mobile_number'], 'mobile'); } } $h_pagerPhone = $contact->getPhone('pager'); if ($h_pagerPhone) { $h_pagerPhone->editNumber($contact_data['h_pager_number']); } else { if ($contact_data['h_pager_number'] != "") { $contact->addPhone($contact_data['h_pager_number'], 'pager'); } } //Emails $mail = $contact->getEmail('personal', true); if ($mail) { $mail->editEmailAddress($contact_data['email']); } else { if ($contact_data['email'] != "") { $contact->addEmail($contact_data['email'], 'personal', true); } } $mail2 = !is_null($personal_emails) && isset($personal_emails[0]) ? $personal_emails[0] : null; if ($mail2) { $mail2->editEmailAddress($contact_data['email2']); } else { if ($contact_data['email2'] != "") { $contact->addEmail($contact_data['email2'], 'personal'); } } $mail3 = !is_null($personal_emails) && isset($personal_emails[1]) ? $personal_emails[1] : null; if ($mail3) { $mail3->editEmailAddress($contact_data['email3']); } else { if ($contact_data['email3'] != "") { $contact->addEmail($contact_data['email3'], 'personal'); } } //Addresses $w_address = $contact->getAddress('work'); if ($w_address) { $w_address->edit($contact_data['w_address'], $contact_data['w_city'], $contact_data['w_state'], $contact_data['w_country'], $contact_data['w_zipcode'], 2, 0); } else { if ($contact_data['w_address'] != "" || $contact_data['w_city'] != "" || $contact_data['w_state'] != "" || $contact_data['w_country'] != "" || $contact_data['w_zipcode'] != "") { $contact->addAddress($contact_data['w_address'], $contact_data['w_city'], $contact_data['w_state'], $contact_data['w_country'], $contact_data['w_zipcode'], 'work'); } } $h_address = $contact->getAddress('home'); if ($h_address) { $h_address->edit($contact_data['h_address'], $contact_data['h_city'], $contact_data['h_state'], $contact_data['h_country'], $contact_data['h_zipcode'], 1, 0); } else { if ($contact_data['h_address'] != "" || $contact_data['h_city'] != "" || $contact_data['h_state'] != "" || $contact_data['h_country'] != "" || $contact_data['h_zipcode'] != "") { $contact->addAddress($contact_data['h_address'], $contact_data['h_city'], $contact_data['h_state'], $contact_data['h_country'], $contact_data['h_zipcode'], 'home'); } } $o_address = $contact->getAddress('other'); if ($o_address) { $o_address->edit($contact_data['o_address'], $contact_data['o_city'], $contact_data['o_state'], $contact_data['o_country'], $contact_data['o_zipcode'], 3, 0); } else { if ($contact_data['o_address'] != "" || $contact_data['o_city'] != "" || $contact_data['o_state'] != "" || $contact_data['o_country'] != "" || $contact_data['o_zipcode'] != "") { $contact->addAddress($contact_data['o_address'], $contact_data['o_city'], $contact_data['o_state'], $contact_data['o_country'], $contact_data['o_zipcode'], 'other'); } } //Webpages $w_homepage = $contact->getWebpage('work'); if ($w_homepage) { $w_homepage->editWebpageURL($contact_data['w_web_page']); } else { if ($contact_data['w_web_page'] != "") { $contact->addWebpage($contact_data['w_web_page'], 'work'); } } $h_homepage = $contact->getWebpage('personal'); if ($h_homepage) { $h_homepage->editWebpageURL($contact_data['h_web_page']); } else { if ($contact_data['h_web_page'] != "") { $contact->addWebpage($contact_data['h_web_page'], 'personal'); } } $o_homepage = $contact->getWebpage('other'); if ($o_homepage) { $o_homepage->editWebpageURL($contact_data['o_web_page']); } else { if ($contact_data['o_web_page'] != "") { $contact->addWebpage($contact_data['o_web_page'], 'other'); } } $contact->setObjectName(); $contact->save(); $contact->clearImValues(); foreach ($im_types as $im_type) { $value = trim(array_var($contact_data, 'im_' . $im_type->getId())); if ($value != '') { $contact_im_value = new ContactImValue(); $contact_im_value->setContactId($contact->getId()); $contact_im_value->setImTypeId($im_type->getId()); $contact_im_value->setValue($value); $contact_im_value->setIsMain(array_var($contact_data, 'default_im') == $im_type->getId()); $contact_im_value->save(); } // if } // foreach $member_ids = json_decode(array_var($_POST, 'members')); $object_controller = new ObjectController(); if (count($member_ids)) { $object_controller->add_to_members($contact, $member_ids); } if ($newCompany) { $object_controller->add_to_members($company, $member_ids); } $object_controller->link_to_new_object($contact); $object_controller->add_subscribers($contact); $object_controller->add_custom_properties($contact); ApplicationLogs::createLog($contact, ApplicationLogs::ACTION_EDIT); // User settings $user = array_var(array_var($_POST, 'contact'), 'user'); if ($user) { $user['username'] = str_replace(" ", "", strtolower($name)); $this->createUserFromContactForm($user, $contact->getId(), $contact->getEmailAddress()); // Reload contact again due to 'createUserFromContactForm' changes Hook::fire("after_contact_quick_add", Contacts::instance()->findById($contact->getId()), $ret); } DB::commit(); flash_success(lang('success edit contact', $contact->getObjectName())); ajx_current("back"); } catch (Exception $e) { DB::rollback(); flash_error($e->getMessage()); ajx_current("empty"); } // try } // if }
function eventImportContactsFromCsv(EventControler $eventcontroler) { $iduser = $eventcontroler->iduser; $handle = fopen($eventcontroler->targetpath, "r"); $row = 1; while ($data = fgetcsv($handle)) { $contact_firstname = ""; $contact_lastname = ""; $contact_company = ""; $company = ""; $contact_position = ""; $contact_summary = ""; $contact_birthday = ""; $contact_city = ""; $contact_state = ""; $contact_street = ""; $contact_zipcode = ""; $contact_country = ""; $contact_address_hm = ""; $contact_address_hm_type = ""; $contact_address_wk = ""; $contact_address_wk_type = ""; $contact_address_ot = ""; $contact_address_ot_type = ""; $contact_email_hm = ""; $contact_email_hm_type = ""; $contact_email_wk = ""; $contact_email_wk_type = ""; $contact_email_ot = ""; $contact_email_ot_type = ""; $contact_phone_hm = ""; $contact_phone_hm_type = ""; $contact_phone_wk = ""; $contact_phone_wk_type = ""; $contact_phone_ot = ""; $contact_phone_ot_type = ""; $contact_phone_mb = ""; $contact_phone_mb_type = ""; $contact_phone_fx = ""; $contact_phone_fx_type = ""; $contact_website_comp = ""; $contact_website_comp_type = ""; $contact_website_blog = ""; $contact_website_blog_type = ""; $contact_website_ot = ""; $contact_website_ot_type = ""; $contact_website_personal = ""; $contact_website_personal_type = ""; $contact_website_twitter = ""; $contact_website_twitter_type = ""; $contact_im_aim_wk = ""; $contact_im_aim_wk_type = ""; $contact_im_aim_per = ""; $contact_im_aim_per_type = ""; $contact_im_aim_ot = ""; $contact_im_aim_ot_type = ""; $im_aim = ""; $contact_im_msn_wk = ""; $contact_im_msn_wk_type = ""; $contact_im_msn_per = ""; $contact_im_msn_per_type = ""; $contact_im_msn_ot = ""; $contact_im_msn_ot_type = ""; $im_msn = ""; $contact_im_icq_wk = ""; $contact_im_icq_wk_type = ""; $contact_im_icq_per = ""; $contact_im_icq_per_type = ""; $contact_im_icq_ot = ""; $contact_im_icq_ot_type = ""; $im_icq = ""; $contact_im_jabber_wk = ""; $contact_im_jabber_wk_type = ""; $contact_im_jabber_per = ""; $contact_im_jabber_per_type = ""; $contact_im_jabber_ot = ""; $contact_im_jabber_ot_type = ""; $im_jabber = ""; $contact_im_yahoo_wk = ""; $contact_im_yahoo_wk_type = ""; $contact_im_yahoo_per = ""; $contact_im_yahoo_per_type = ""; $contact_im_yahoo_ot = ""; $contact_im_yahoo_ot_type = ""; $im_yahoo = ""; $contact_im_skype_wk = ""; $contact_im_skype_wk_type = ""; $contact_im_skype_per = ""; $contact_im_skype_per_type = ""; $contact_im_skype_ot = ""; $contact_im_skype_ot_type = ""; $im_skype = ""; $contact_im_gt_wk = ""; $contact_im_gt_wk_type = ""; $contact_im_gt_per = ""; $contact_im_gt_per_type = ""; $contact_im_gt_ot = ""; $contact_im_gt_ot_type = ""; $im_gt = ""; $contact_note = ""; $do_contact = new Contact(); $do_company = new Company(); $do_contact_notes = new ContactNotes(); $num = count($data); if ($row > 1) { for ($c = 0; $c < $num; $c++) { switch ($eventcontroler->fields[$c]) { case "firstname": $contact_firstname = $data[$c]; break; case "lastname": $contact_lastname = $data[$c]; break; case "company": $company = $data[$c]; $contact_company = $data[$c]; break; case "position": $contact_position = $data[$c]; break; case "summary": $contact_summary = $data[$c]; break; case "birthday": $contact_birthday = $data[$c]; break; case "city": $contact_city = $data[$c]; break; case "state": $contact_state = $data[$c]; break; case "street": $contact_street = $data[$c]; break; case "zipcode": $contact_zipcode = $data[$c]; break; case "country": $contact_country = $data[$c]; break; case "address_hm": $contact_address_hm = $data[$c]; $contact_address_hm_type = "Home"; break; case "address_wk": $contact_address_wk = $data[$c]; $contact_address_wk_type = "Work"; break; case "address_ot": $contact_address_ot = $data[$c]; $contact_address_ot_type = "Other"; break; case "email_hm": $contact_email_hm = $data[$c]; $contact_email_hm_type = "Home"; break; case "email_wk": $contact_email_wk = $data[$c]; $contact_email_wk_type = "Work"; break; case "email_ot": $contact_email_ot = $data[$c]; $contact_email_ot_type = "Other"; break; case "phone_number_hm": $contact_phone_hm = $data[$c]; $contact_phone_hm_type = "Home"; break; case "phone_number_wk": $contact_phone_wk = $data[$c]; $contact_phone_wk_type = "Work"; break; case "phone_number_ot": $contact_phone_ot = $data[$c]; $contact_phone_ot_type = "Other"; break; case "phone_number_mb": $contact_phone_mb = $data[$c]; $contact_phone_mb_type = "Mobile"; break; case "phone_number_fx": $contact_phone_fx = $data[$c]; $contact_phone_fx_type = "Fax"; break; case "website_comp": $contact_website_comp = $data[$c]; $contact_website_comp_type = "Company"; break; case "website_blog": $contact_website_blog = $data[$c]; $contact_website_blog_type = "Blog"; break; case "website_ot": $contact_website_ot = $data[$c]; $contact_website_ot_type = "Other"; break; case "website_personal": $contact_website_personal = $data[$c]; $contact_website_personal_type = "Personal"; break; case "website_twitter": $contact_website_twitter = $data[$c]; $contact_website_twitter_type = "Twitter"; break; case "website_linkedin": $contact_website_linkedin = $data[$c]; $contact_website_linkedin_type = "LinkedIn"; break; case "website_fb": $contact_website_fb = $data[$c]; $contact_website_fb_type = "Facebook"; break; case "im_aim_wk": $contact_im_aim_wk = $data[$c]; $im_aim = "AIM"; $contact_im_aim_wk_type = "Work"; break; case "im_aim_per": $contact_im_aim_per = $data[$c]; $im_aim = "AIM"; $contact_im_aim_per_type = "Personal"; break; case "im_aim_ot": $contact_im_aim_ot = $data[$c]; $im_aim = "AIM"; $contact_im_aim_ot_type = "Other"; break; case "im_msn_wk": $contact_im_msn_wk = $data[$c]; $im_msn = "MSN"; $contact_im_msn_wk_type = "Work"; break; case "im_msn_per": $contact_im_msn_per = $data[$c]; $im_msn = "MSN"; $contact_im_msn_per_type = "Personal"; break; case "im_msn_ot": $contact_im_msn_ot = $data[$c]; $im_msn = "MSN"; $contact_im_msn_ot_type = "Other"; break; case "im_icq_wk": $contact_im_icq_wk = $data[$c]; $im_icq = "ICQ"; $contact_im_icq_wk_type = "Work"; break; case "im_icq_per": $contact_im_icq_per = $data[$c]; $im_icq = "ICQ"; $contact_im_icq_per_type = "Personal"; break; case "im_icq_ot": $contact_im_icq_ot = $data[$c]; $im_icq = "ICQ"; $contact_im_icq_ot_type = "Other"; break; case "im_jabber_wk": $contact_im_jabber_wk = $data[$c]; $im_jabber = "Jabber"; $contact_im_jabber_wk_type = "Work"; break; case "im_jabber_per": $contact_im_jabber_per = $data[$c]; $im_jabber = "Jabber"; $contact_im_jabber_per_type = "Personal"; break; case "im_jabber_ot": $contact_im_jabber_ot = $data[$c]; $im_jabber = "Jabber"; $contact_im_jabber_ot_type = "Other"; case "im_yahoo_wk": $contact_im_yahoo_wk = $data[$c]; $im_yahoo = "Yahoo"; $contact_im_yahoo_wk_type = "Work"; break; case "im_yahoo_per": $contact_im_yahoo_per = $data[$c]; $im_yahoo = "Yahoo"; $contact_im_yahoo_per_type = "Personal"; break; case "im_yahoo_ot": $contact_im_yahoo_ot = $data[$c]; $im_yahoo = "Yahoo"; $contact_im_yahoo_ot_type = "Other"; break; case "im_skype_wk": $contact_im_skype_wk = $data[$c]; $im_skype = "Skype"; $contact_im_skype_wk_type = "Work"; break; case "im_skype_per": $contact_im_skype_per = $data[$c]; $im_skype = "Skype"; $contact_im_skype_per_type = "Personal"; break; case "im_skype_ot": $contact_im_skype_ot = $data[$c]; $im_skype = "Skype"; $contact_im_skype_ot_type = "Other"; case "im_gt_wk": $contact_im_gt_wk = $data[$c]; $im_gt = "Google Talk"; $contact_im_gt_wk_type = "Work"; break; case "im_gt_per": $contact_im_gt_per = $data[$c]; $im_gt = "Google Talk"; $contact_im_gt_per_type = "Personal"; break; case "im_gt_ot": $contact_im_gt_ot = $data[$c]; $im_gt = "Google Talk"; $contact_im_gt_ot_type = "Other"; break; case "note": $contact_note .= "<p>" . $data[$c] . "</p>"; break; } } $do_company->name = $company; $do_company->iduser = $iduser; $do_company->add(); $idcompany = $do_company->getPrimaryKeyValue(); $do_contact->idcompany = $idcompany; $do_contact->iduser = $iduser; $do_contact->firstname = $contact_firstname; $do_contact->lastname = $contact_lastname; $do_contact->company = $contact_company; $do_contact->position = $contact_position; $do_contact->summary = $contact_summary; $do_contact->birthday = $contact_birthday; $do_contact->add(); $idcontact = $do_contact->getPrimaryKeyValue(); //In theory this below should not be needed $do_contact->idcontact = $idcontact; $do_tag = new Tag(); if (strpos($_SESSION['import_tag'], ",") === false) { $do_tag->addTagAssociation($idcontact, trim($_SESSION['import_tag']), "contact", $_SESSION['do_User']->iduser); } else { $tags = explode(",", $_SESSION['import_tag']); foreach ($tags as $tag) { $do_tag->addTagAssociation($idcontact, trim($tag), "contact", $_SESSION['do_User']->iduser); } } if ($contact_address_hm != "" || $contact_city != "" || $contact_state != "" || $contact_street != "" || $contact_zipcode != "" || $contact_country != "") { $do_contact->addAddress($contact_address_hm, $contact_address_hm_type, $contact_city, $contact_state, $contact_street, $contact_zipcode, $contact_country); } if ($contact_address_wk != "" || $contact_city != "" || $contact_state != "" || $contact_street != "" || $contact_zipcode != "" || $contact_country != "") { $do_contact->addAddress($contact_address_wk, $contact_address_wk_type, $contact_city, $contact_state, $contact_street, $contact_zipcode, $contact_country); } if ($contact_address_ot != "" || $contact_city != "" || $contact_state != "" || $contact_street != "" || $contact_zipcode != "" || $contact_country != "") { $do_contact->addAddress($contact_address_ot, $contact_address_ot_type, $contact_city, $contact_state, $contact_street, $contact_zipcode, $contact_country); } if ($contact_email_hm != "") { $do_contact->addEmail($contact_email_hm, $contact_email_hm_type); } if ($contact_email_wk != "") { $do_contact->addEmail($contact_email_wk, $contact_email_wk_type); } if ($contact_email_ot != "") { $do_contact->addEmail($contact_email_ot, $contact_email_ot_type); } if ($contact_phone_hm != "") { $do_contact->addPhone($contact_phone_hm, $contact_phone_hm_type); } if ($contact_phone_wk != "") { $do_contact->addPhone($contact_phone_wk, $contact_phone_wk_type); } if ($contact_phone_ot != "") { $do_contact->addPhone($contact_phone_ot, $contact_phone_ot_type); } if ($contact_phone_mb != "") { $do_contact->addPhone($contact_phone_mb, $contact_phone_mb_type); } if ($contact_phone_fx != "") { $do_contact->addPhone($contact_phone_fx, $contact_phone_fx_type); } if ($contact_website_comp != "") { $do_contact->addWebsite($contact_website_comp, $contact_website_comp_type); } if ($contact_website_blog != "") { $do_contact->addWebsite($contact_website_blog, $contact_website_blog_type); } if ($contact_website_ot != "") { $do_contact->addWebsite($contact_website_ot, $contact_website_ot_type); } if ($contact_website_personal != "") { $do_contact->addWebsite($contact_website_personal, $contact_website_personal_type); } if ($contact_website_twitter != "") { $do_contact->addWebsite($contact_website_twitter, $contact_website_twitter_type); } if ($contact_website_linkedin != "") { $do_contact->addWebsite($contact_website_linkedin, $contact_website_linkedin_type); } if ($contact_website_fb != "") { $do_contact->addWebsite($contact_website_fb, $contact_website_fb_type); } if ($contact_im_aim_wk != "") { $do_contact->addIM($im_aim, $contact_im_aim_wk_type, $contact_im_aim_wk); } if ($contact_im_aim_per != "") { $do_contact->addIM($im_aim, $contact_im_aim_per_type, $contact_im_aim_per); } if ($contact_im_aim_ot != "") { $do_contact->addIM($im_aim, $contact_im_aim_ot_type, $contact_im_aim_ot); } if ($contact_im_msn_wk != "") { $do_contact->addIM($im_msn, $contact_im_msn_wk_type, $contact_im_msn_wk); } if ($contact_im_msn_per != "") { $do_contact->addIM($im_msn, $contact_im_msn_per_type, $contact_im_msn_per); } if ($contact_im_msn_ot != "") { $do_contact->addIM($im_msn, $contact_im_msn_ot_type, $contact_im_msn_ot); } if ($contact_im_icq_wk != "") { $do_contact->addIM($im_icq, $contact_im_icq_wk_type, $contact_im_icq_wk); } if ($contact_im_icq_per != "") { $do_contact->addIM($im_icq, $contact_im_icq_per_type, $contact_im_icq_per); } if ($contact_im_icq_ot != "") { $do_contact->addIM($im_icq, $contact_im_icq_ot_type, $contact_im_icq_ot); } if ($contact_im_jabber_wk != "") { $do_contact->addIM($im_jabber, $contact_im_jabber_wk_type, $contact_im_jabber_wk); } if ($contact_im_jabber_per != "") { $do_contact->addIM($im_jabber, $contact_im_jabber_per_type, $contact_im_jabber_per); } if ($contact_im_jabber_ot != "") { $do_contact->addIM($im_jabber, $contact_im_jabber_ot_type, $contact_im_jabber_ot); } if ($contact_im_yahoo_wk != "") { $do_contact->addIM($im_yahoo, $contact_im_yahoo_wk_type, $contact_im_yahoo_wk); } if ($contact_im_yahoo_per != "") { $do_contact->addIM($im_yahoo, $contact_im_yahoo_per_type, $contact_im_yahoo_per); } if ($contact_im_yahoo_ot != "") { $do_contact->addIM($im_yahoo, $contact_im_yahoo_ot_type, $contact_im_yahoo_ot); } if ($contact_im_skype_wk != "") { $do_contact->addIM($im_skype, $contact_im_skype_wk_type, $contact_im_skype_wk); } if ($contact_im_skype_per != "") { $do_contact->addIM($im_skype, $contact_im_skype_per_type, $contact_im_skype_per); } if ($contact_im_skype_ot != "") { $do_contact->addIM($im_skype, $contact_im_skype_ot_type, $contact_im_skype_ot); } if ($contact_im_gt_wk != "") { $do_contact->addIM($im_gt, $contact_im_gt_wk_type, $contact_im_gt_wk); } if ($contact_im_gt_per != "") { $do_contact->addIM($im_gt, $contact_im_gt_per_type, $contact_im_gt_per); } if ($contact_im_gt_ot != "") { $do_contact->addIM($im_gt, $contact_im_gt_ot_type, $contact_im_gt_ot); } if ($contact_note != "") { $do_contact_notes->idcontact = $idcontact; $do_contact_notes->iduser = $iduser; $do_contact_notes->note = $contact_note; $do_contact_notes->date_added = date('Y-m-d'); $do_contact_notes->add(); } $do_cont_view = new ContactView(); $do_cont_view->addFromContact($do_contact); $do_cont_view->updateFromContact($do_contact); // Added the method call updateFromContact() so that the child data is updated just after insert $do_cont_view->addTag($_SESSION['import_tag'], $do_contact->idcontact); // Update the contact view for tags. $do_contact->free(); $do_company->free(); $do_contact_notes->free(); } $row++; } fclose($handle); $goto = $eventcontroler->getParam("goto"); $disp = new Display($goto); $disp->addParam("message", "Contacts have been imported successfully."); $eventcontroler->setDisplayNext($disp); }
function add_contact() { $do_api_contact = new Contact(); $do_Contact_View = new ContactView(); $do_api_contact->addNew(); $do_api_contact->firstname = $this->firstname; $do_api_contact->lastname = $this->lastname; $do_api_contact->position = $this->position; $do_api_contact->iduser = $this->iduser; if ($this->tags != '') { $tags = explode(",", $this->tags); } if ($this->firstname == "" && $this->lastname == "") { $this->setMessage("610", "First Name OR Last Name is Required"); return false; } elseif (!$this->iduser) { $this->setMessage("502", "The User Session is expired"); return false; } elseif ($idcontact = $do_api_contact->duplicateContact($this->iduser, $this->email_work, $this->email_home, $this->email_other)) { $this->setMessage("613", "The Contact is duplicated. Contact ID: " . $idcontact); return false; } else { if ($this->company != "") { $do_api_contact->company = $this->company; $do_api_company = new Company(); $idcompany = $do_api_company->isDuplicateCompany($this->company, $this->iduser); if (!$idcompany) { $do_api_company->addNew(); $do_api_company->iduser = $this->iduser; $do_api_company->name = trim($this->company); $do_api_company->add(); $this->idcompany = $do_api_company->getPrimaryKeyValue(); } else { $this->idcompany = $idcompany; } $do_api_contact->idcompany = $this->idcompany; } $do_api_contact->add(); $this->idcontact = $do_api_contact->getPrimaryKeyValue(); $do_api_contact->idcontact = $this->idcontact; //child data starts here // Phones if ($this->phone_work != "") { $do_api_contact->addPhone($this->phone_work, "Work"); } if ($this->phone_home != "") { $do_api_contact->addPhone($this->phone_home, "Home"); } if ($this->mobile_number != "") { $do_api_contact->addPhone($this->mobile_number, "Mobile"); } if ($this->fax_number != "") { $do_api_contact->addPhone($this->fax_number, "Fax"); } if ($this->phone_other != "") { $do_api_contact->addPhone($this->phone_other, "Other"); } //emails if ($this->email_work != "") { $do_api_contact->addEmail($this->email_work, "Work"); } if ($this->email_home != "") { $do_api_contact->addEmail($this->email_home, "Home"); } if ($this->email_other != "") { $do_api_contact->addEmail($this->email_other, "Other"); } //Website if ($this->company_website != "") { $do_api_contact->addWebsite($this->company_website, "Company"); } if ($this->personal_website != "") { $do_api_contact->addWebsite($this->personal_website, "Personal"); } if ($this->blog_url != "") { $do_api_contact->addWebsite($this->blog_url, "Blog"); } if ($this->twitter_profile_url != "") { $do_api_contact->addWebsite($this->twitter_profile_url, "Twitter"); } if ($this->linkedin_profile_url != "") { $do_api_contact->addWebsite($this->linkedin_profile_url, "LinkedIn"); } if ($this->facebook_profile_url != "") { $do_api_contact->addWebsite($this->facebook_profile_url, "Facebook"); } // API V.02 will have IM and Address //Add tags if any if (is_array($tags)) { $do_api_tags = new Tag(); foreach ($tags as $tag) { $do_api_tags->addNew(); $do_api_tags->addTagAssociation($this->idcontact, $tag, "contact", $this->iduser); } } // Ok here the last thing that needs to be done so that the contact should also on the table $do_Contact_View = new ContactView(); $do_Contact_View->setUser($this->iduser); $do_api_contact->getId($this->idcontact); $do_Contact_View->addFromContact($do_api_contact); $do_Contact_View->updateFromContact($do_api_contact); if ($this->tags != '') { $do_Contact_View->addTag($this->tags, $this->idcontact); } $this->setValues(array("msg" => "Contact Added", "stat" => "ok", "code" => "600", "idcontact" => $this->idcontact)); return true; } }
/** * inserting a contact entry into ofuz Database. * @param array : contact details * @return void * @see class : Contact, Company */ function insertContactEntry($entry) { $id_company = $this->checkCompanyExists($entry['org_name']); if ($id_company) { $new_contact = new Contact(); $new_contact->company = $entry['org_name']; $new_contact->firstname = $entry['title']; $new_contact->idcompany = $id_company; $new_contact->iduser = $this->id_user; $new_contact->position = $entry['org_title']; $new_contact->add(); $lastInsertedContId = $new_contact->getPrimaryKeyValue(); } else { $new_company = new Company(); $new_company->name = $entry['org_name']; $new_company->iduser = $this->id_user; $new_company->add(); $new_company_id = $new_company->getPrimaryKeyValue(); $new_contact = new Contact(); $new_contact->company = $entry['org_name']; $new_contact->firstname = $entry['title']; $new_contact->idcompany = $new_company_id; $new_contact->iduser = $this->id_user; $new_contact->position = $entry['org_title']; $new_contact->add(); $lastInsertedContId = $new_contact->getPrimaryKeyValue(); } if ($entry['ph_mobile']) { $new_contact->addPhone($entry['ph_mobile'], 'Mobile'); } if ($entry['ph_home']) { $new_contact->addPhone($entry['ph_home'], 'Home'); } if ($entry['ph_work']) { $new_contact->addPhone($entry['ph_work'], 'Work'); } if ($entry['address_home']) { $new_contact->addAddress($entry['address_home'], 'Home'); } if ($entry['address_other']) { $new_contact->addAddress($entry['address_other'], 'Other'); } if ($entry['address_work']) { $new_contact->addAddress($entry['address_work'], 'Work'); } if ($entry['em_other']) { $new_contact->addEmail($entry['em_other'], 'Other'); } if ($entry['em_home']) { $new_contact->addEmail($entry['em_home'], 'Home'); } if ($entry['em_work']) { $new_contact->addEmail($entry['em_work'], 'Work'); } $q_ins_contact = new sqlQuery($this->getDbCon()); $sql_ins = "INSERT INTO\n google_contact_info(idcontact,iduser,entry_id,entry_link_edit,entry_link_self)\n VALUES(" . $lastInsertedContId . "," . $this->id_user . ",'" . $entry['id'] . "','" . $entry['link_edit'] . "','" . $entry['link_self'] . "')\n "; $q_ins_contact->query($sql_ins); }
function insertContact() { if ($this->contact['ORG']) { $id_company = $this->checkCompanyExists($this->contact['ORG']); $id_company_flag = $id_company ? true : false; $flag = true; } else { $flag = true; $id_company = 0; $id_company_flag = true; } if ($flag) { if ($id_company_flag) { $new_contact = new Contact(); $new_contact->firstname = $this->contact['FULLNAME']; $new_contact->position = $this->contact['TITLE']; if ($this->contact['ORG']) { $company = $this->contact['ORG']; } else { $company = ""; } $new_contact->company = $company; $new_contact->idcompany = $id_company; $new_contact->iduser = $this->iduser; $new_contact->birthday = $this->contact['BDAY']; $new_contact->picture = $this->contact['PHOTO']; $new_contact->add(); $lastInsertedContId = $new_contact->getPrimaryKeyValue(); } else { $new_company = new Company(); $new_company->name = $this->contact['ORG']; $new_company->iduser = $this->iduser; $new_company->add(); $new_company_id = $new_company->getPrimaryKeyValue(); $new_contact = new Contact(); $new_contact->firstname = $this->contact['FULLNAME']; $new_contact->position = $this->contact['TITLE']; $new_contact->company = $this->contact['ORG']; $new_contact->idcompany = $new_company_id; $new_contact->iduser = $this->iduser; $new_contact->birthday = $this->contact['BDAY']; $new_contact->picture = $this->contact['PHOTO']; $new_contact->add(); $lastInsertedContId = $new_contact->getPrimaryKeyValue(); } if ($this->contact['TELL_WORK']) { $new_contact->addPhone($this->contact['TELL_WORK'], 'Work'); } if ($this->contact['TELL_HOME']) { $new_contact->addPhone($this->contact['TELL_HOME'], 'Home'); } if ($this->contact['TELL_FAX']) { $new_contact->addPhone($this->contact['TELL_FAX'], 'Fax'); } if ($this->contact['TELL_CELL']) { $new_contact->addPhone($this->contact['TELL_CELL'], 'Mobile'); } if ($this->contact['TELL_OTHER']) { $new_contact->addPhone($this->contact['TELL_OTHER'], 'Other'); } if ($this->contact['ADR_WORK']) { $new_contact->addAddress($this->contact['ADR_WORK'], 'Work'); } if ($this->contact['ADR_HOME']) { $new_contact->addAddress($this->contact['ADR_HOME'], 'Home'); } if ($this->contact['ADR_OTHER']) { $new_contact->addAddress($this->contact['ADR_OTHER'], 'Other'); } if ($this->contact['EMAIL_WORK']) { $new_contact->addEmail($this->contact['EMAIL_WORK'], 'Work'); } if ($this->contact['EMAIL_HOME']) { $new_contact->addEmail($this->contact['EMAIL_HOME'], 'Home'); } if ($this->contact['EMAIL_OTHER']) { $new_contact->addEmail($this->contact['EMAIL_OTHER'], 'Other'); } $do_tag = new Tag(); if ($this->contact['CATEGORIES']) { $contact_tag = explode(",", $this->contact['CATEGORIES']); $arr_import_tags = explode(",", $_SESSION['import_tag']); foreach ($arr_import_tags as $imp_tag) { array_push($contact_tag, $imp_tag); } foreach ($contact_tag as $tag) { $tag = trim($tag); $do_tag->addTagAssociation($lastInsertedContId, $tag, "contact", $this->iduser); } } else { $arr_import_tags = explode(",", $_SESSION['import_tag']); foreach ($arr_import_tags as $tag) { $tag = trim($tag); $do_tag->addTagAssociation($lastInsertedContId, $tag, "contact", $this->iduser); } } $do_cont_view = new ContactView(); $do_cont_view->addFromContact($new_contact); $do_cont_view->updateFromContact($new_contact); // Added the method call updateFromContact() so that the child data is updated just after insert $do_cont_view->addTag($_SESSION['import_tag'], $new_contact->idcontact); // Update the contact view for tags. $this->imported = true; } }