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);
                        }
                    }
                        
	}
예제 #2
0
 /**
  * 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
 }
예제 #3
0
 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);
 }
예제 #4
0
 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);
 }
예제 #6
0
 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;
     }
 }