static function getAllEmailTypesInfo() { $types = EmailTypes::findAll(); $result = array(); foreach ($types as $type) { $result[] = array('id' => $type->getId(), 'code' => $type->getName(), 'name' => lang($type->getName())); } return $result; }
function render_company_data_tab($genid, $company, $renderContext, $company_data) { $object = $company; if ($company instanceof Contact && !$company->isNew()) { $address = $company->getAddress('work'); $street = ""; $city = ""; $state = ""; $zipcode = ""; if ($address) { $street = $address->getStreet(); $city = $address->getCity(); $state = $address->getState(); $zipcode = $address->getZipCode(); $country = $address->getCountry(); } $company_data = array('first_name' => $company->getFirstName(), 'timezone' => $company->getTimezone(), 'email' => $company->getEmailAddress(), 'comments' => $company->getCommentsField()); // array // telephone types $all_telephone_types = TelephoneTypes::getAllTelephoneTypesInfo(); tpl_assign('all_telephone_types', $all_telephone_types); // address types $all_address_types = AddressTypes::getAllAddressTypesInfo(); tpl_assign('all_address_types', $all_address_types); // webpage types $all_webpage_types = WebpageTypes::getAllWebpageTypesInfo(); tpl_assign('all_webpage_types', $all_webpage_types); // email types $all_email_types = EmailTypes::getAllEmailTypesInfo(); tpl_assign('all_email_types', $all_email_types); $all_phones = ContactTelephones::findAll(array('conditions' => 'contact_id = ' . $company->getId())); $company_data['all_phones'] = $all_phones; $all_addresses = ContactAddresses::findAll(array('conditions' => 'contact_id = ' . $company->getId())); $company_data['all_addresses'] = $all_addresses; $all_webpages = ContactWebpages::findAll(array('conditions' => 'contact_id = ' . $company->getId())); $company_data['all_webpages'] = $all_webpages; $all_emails = $company->getNonMainEmails(); $company_data['all_emails'] = $all_emails; } // telephone types $all_telephone_types = TelephoneTypes::getAllTelephoneTypesInfo(); // address types $all_address_types = AddressTypes::getAllAddressTypesInfo(); // webpage types $all_webpage_types = WebpageTypes::getAllWebpageTypesInfo(); // email types $all_email_types = EmailTypes::getAllEmailTypesInfo(); include get_template_path("tabs/company_data", "contact"); }
/** * 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'), 'comments' => $contact->getCommentsField(), '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'))) { 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 $personal_email_type_id = EmailTypes::getEmailTypeId('personal'); $main_emails = ContactEmails::getContactMainEmails($contact, $personal_email_type_id); $more_main_emails = array(); $mail = null; foreach ($main_emails as $me) { if ($mail == null) $mail = $me; else $more_main_emails[] = $me; } if($mail){ $mail->editEmailAddress($contact_data['email']); }else{ if($contact_data['email'] != "") $contact->addEmail($contact_data['email'], 'personal' , true); } foreach ($more_main_emails as $mme) { $mme->setIsMain(false); $mme->save(); } $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 } // edit
function hasEmail($value, $email_type, $isMain = false) { $type_id = EmailTypes::getEmailTypeId($email_type); $obj = ContactEmails::instance()->findOne(array('conditions' => array('contact_id=? AND email_type_id=? AND email_address=?', $this->getId(), $type_id, $value))); return $obj instanceof ContactEmail; }
/** * Return manager instance * * @access protected * @param void * @return EmailTypes */ function manager() { if (!$this->manager instanceof EmailTypes) { $this->manager = EmailTypes::instance(); } return $this->manager; }
<?php // telephone types $all_telephone_types = TelephoneTypes::getAllTelephoneTypesInfo(); // address types $all_address_types = AddressTypes::getAllAddressTypesInfo(); // webpage types $all_webpage_types = WebpageTypes::getAllWebpageTypesInfo(); // email types $all_email_types = EmailTypes::getAllEmailTypesInfo(); // instant messenger types $im_types = ImTypes::findAll(array('order' => '`id`')); if (!isset($id_prefix)) { $id_prefix = ''; } ?> <div id="<?php echo $genid; ?> _additional_data" class="additional-data"> <div class="information-block no-border-bottom"> <div class="input-container"> <?php echo label_tag(lang('birthday'), $genid . 'profileFormBirthday'); ?> <span style="float:left;"><?php echo pick_date_widget2('contact[birthday]', array_var($contact_data, 'birthday'), $genid, 265); ?> </span> </div>
/** * Return manager instance * * @access protected * @param void * @return EmailTypes */ function manager() { if(!($this->manager instanceof EmailTypes)) $this->manager = EmailTypes::instance(); return $this->manager; } // manager
/** * Add company * * @param void * @return null */ function add_company() { if (logged_user()->isGuest()) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $notAllowedMember = ''; if (!Contact::canAdd(logged_user(), active_context(), $notAllowedMember)) { if (str_starts_with($notAllowedMember, '-- req dim --')) { flash_error(lang('must choose at least one member of', str_replace_first('-- req dim --', '', $notAllowedMember, $in))); } else { trim($notAllowedMember) == "" ? flash_error(lang('you must select where to keep', lang('the contact'))) : flash_error(lang('no context permissions to add', lang("contacts"), $notAllowedMember)); } ajx_current("empty"); return; } // if $company = new Contact(); $company->setIsCompany(1); $company_data = array_var($_POST, 'company'); if (!is_array($company_data)) { // set layout for modal form if (array_var($_REQUEST, 'modal')) { $this->setLayout("json"); tpl_assign('modal', true); } $company_data = array('timezone' => logged_user()->getTimezone()); // array } // if tpl_assign('company', $company); tpl_assign('company_data', $company_data); // telephone types $all_telephone_types = TelephoneTypes::getAllTelephoneTypesInfo(); tpl_assign('all_telephone_types', $all_telephone_types); // address types $all_address_types = AddressTypes::getAllAddressTypesInfo(); tpl_assign('all_address_types', $all_address_types); // webpage types $all_webpage_types = WebpageTypes::getAllWebpageTypesInfo(); tpl_assign('all_webpage_types', $all_webpage_types); // email types $all_email_types = EmailTypes::getAllEmailTypesInfo(); tpl_assign('all_email_types', $all_email_types); $company_data['all_phones'] = array(); $company_data['all_addresses'] = array(); $company_data['all_webpages'] = array(); if (is_array(array_var($_POST, 'company'))) { foreach ($company_data as $k => &$v) { $v = remove_scripts($v); } $company->setFromAttributes($company_data); $company->setObjectName(); try { $company_data['contact_type'] = 'company'; Contacts::validate($company_data); DB::beginWork(); if (isset($_SESSION['new_contact_picture']) && $_SESSION['new_contact_picture']) { $company->setPictureFile($_SESSION['new_contact_picture']); $_SESSION['new_contact_picture'] = null; } $company->save(); // save phones, addresses and webpages $this->save_phones_addresses_webpages($company_data, $company); if ($company_data['email'] != "") { $company->addEmail($company_data['email'], 'work', true); } // save additional emails $this->save_non_main_emails($company_data, $company); $object_controller = new ObjectController(); $object_controller->add_subscribers($company); $member_ids = json_decode(array_var($_POST, 'members')); if (!is_null($member_ids)) { $object_controller->add_to_members($company, $member_ids); } $object_controller->link_to_new_object($company); $object_controller->add_custom_properties($company); DB::commit(); ApplicationLogs::createLog($company, ApplicationLogs::ACTION_ADD); flash_success(lang('success add client', $company->getObjectName())); evt_add("company added", array("id" => $company->getObjectId(), "name" => $company->getObjectName())); ajx_current("back"); if (array_var($_REQUEST, 'modal')) { evt_add("reload current panel"); } } catch (Exception $e) { DB::rollback(); ajx_current("empty"); if (array_var($_REQUEST, 'modal')) { ajx_extra_data(array('error' => $e->getMessage())); } else { flash_error($e->getMessage()); } } // try } // if }
/** * Return Email type * * @access public * @param void * @return EmailType */ function getEmailType() { return EmailTypes::findById($this->getEmailTypeId()); } // getEmailType
static function getTypeId($type){ $email_type = EmailTypes::findOne(array('conditions' => array("`name` = ?",$type))); if (!is_null($email_type)) return $email_type->getId(); else return null; }
/** * This function will return paginated result. Result is an array where first element is * array of returned object and second populated pagination object that can be used for * obtaining and rendering pagination data using various helpers. * * Items and pagination array vars are indexed with 0 for items and 1 for pagination * because you can't use associative indexing with list() construct * * @access public * @param array $arguments Query argumens (@see find()) Limit and offset are ignored! * @param integer $items_per_page Number of items per page * @param integer $current_page Current page number * @return array */ function paginate($arguments = null, $items_per_page = 10, $current_page = 1) { if (isset($this) && instance_of($this, 'EmailTypes')) { return parent::paginate($arguments, $items_per_page, $current_page); } else { return EmailTypes::instance()->paginate($arguments, $items_per_page, $current_page); } // if }
/** * * Add email address to the contact * @param string $value * @param boolean $isMain * @author pepe */ function addEmail($value, $email_type, $isMain = false) { $value = trim($value); $email = new ContactEmail(); $email->setEmailTypeId(EmailTypes::getEmailTypeId($email_type)); $email->setEmailAddress($value); $email->setContactId($this->getId()); $email->setIsMain($isMain); $email->save(); }