本文整理汇总了PHP中CRM_Core_PseudoConstant::individualSuffix方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_PseudoConstant::individualSuffix方法的具体用法?PHP CRM_Core_PseudoConstant::individualSuffix怎么用?PHP CRM_Core_PseudoConstant::individualSuffix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Core_PseudoConstant
的用法示例。
在下文中一共展示了CRM_Core_PseudoConstant::individualSuffix方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildQuickForm
/**
* This function provides the HTML form elements that are specific to the Individual Contact Type
*
* @access public
* @return None
*/
function buildQuickForm(&$form)
{
$form->applyFilter('__ALL__', 'trim');
// prefix
$form->addElement('select', 'prefix_id', ts('Prefix'), array('' => ts('- prefix -')) + CRM_Core_PseudoConstant::individualPrefix());
$attributes = CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Individual');
// first_name
$form->addElement('text', 'first_name', ts('First Name'), $attributes['first_name']);
//middle_name
$form->addElement('text', 'middle_name', ts('Middle Name'), $attributes['middle_name']);
// last_name
$form->addElement('text', 'last_name', ts('Last Name'), $attributes['last_name']);
// suffix
$form->addElement('select', 'suffix_id', ts('Suffix'), array('' => ts('- suffix -')) + CRM_Core_PseudoConstant::individualSuffix());
// nick_name
$form->addElement('text', 'nick_name', ts('Nick Name'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'nick_name'));
// greeting type
$form->addElement('select', 'greeting_type', ts('Greeting'), CRM_Core_SelectValues::greeting());
// job title
$form->addElement('text', 'job_title', ts('Job title'), $attributes['job_title']);
// radio button for gender
$genderOptions = array();
$gender = CRM_Core_PseudoConstant::gender();
foreach ($gender as $key => $var) {
$genderOptions[$key] = HTML_QuickForm::createElement('radio', null, ts('Gender'), $var, $key);
}
$form->addGroup($genderOptions, 'gender_id', ts('Gender'));
$form->addElement('checkbox', 'is_deceased', null, ts('Contact is deceased'));
$form->addElement('date', 'birth_date', ts('Date of birth'), CRM_Core_SelectValues::date('birth'));
$form->addRule('birth_date', ts('Select a valid date.'), 'qfDate');
$form->addElement('text', 'home_URL', ts('Website'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'home_URL'));
$form->addRule('home_URL', ts('Enter a valid Website.'), 'url');
$config =& CRM_Core_Config::singleton();
CRM_Core_ShowHideBlocks::links($this, 'demographics', '', '');
}
示例2: buildQuickForm
/**
* This function provides the HTML form elements that are specific to the Individual Contact Type
*
* @access public
* @return None
*/
public function buildQuickForm(&$form, $action = null)
{
$form->applyFilter('__ALL__', 'trim');
//prefix
$prefix = CRM_Core_PseudoConstant::individualPrefix();
if (!empty($prefix)) {
$form->addElement('select', 'prefix_id', ts('Prefix'), array('' => '') + $prefix);
}
$attributes = CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact');
// first_name
$form->addElement('text', 'first_name', ts('First Name'), $attributes['first_name']);
//middle_name
$form->addElement('text', 'middle_name', ts('Middle Name'), $attributes['middle_name']);
// last_name
$form->addElement('text', 'last_name', ts('Last Name'), $attributes['last_name']);
// suffix
$suffix = CRM_Core_PseudoConstant::individualSuffix();
if ($suffix) {
$form->addElement('select', 'suffix_id', ts('Suffix'), array('' => '') + $suffix);
}
// nick_name
$form->addElement('text', 'nick_name', ts('Nick Name'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'nick_name'));
// job title
// override the size for UI to look better
$attributes['job_title']['size'] = 30;
$form->addElement('text', 'job_title', ts('Job title'), $attributes['job_title'], 'size="30"');
if ($action & CRM_Core_Action::UPDATE) {
$mailToHouseholdID = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $form->_contactId, 'mail_to_household_id', 'id');
$form->assign('mailToHouseholdID', $mailToHouseholdID);
}
//Shared Address Element
require_once 'CRM/Contact/BAO/ContactType.php';
if (CRM_Contact_BAO_ContactType::isActive('Household')) {
$label = CRM_Contact_BAO_ContactType::getLabel('Household');
$form->addElement('checkbox', 'use_household_address', null, ts('Use %1 Address', array(1 => $label)));
}
$housholdDataURL = CRM_Utils_System::url('civicrm/ajax/search', "hh=1", false, null, false);
$form->assign('housholdDataURL', $housholdDataURL);
$form->add('text', 'shared_household', ts('Select Household'));
$form->add('hidden', 'shared_household_id', '', array('id' => 'shared_household_id'));
//Home Url Element
$form->addElement('text', 'home_URL', ts('Website'), array_merge(CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'home_URL'), array('onfocus' => "if (!this.value) this.value='http://'; else return false", 'onblur' => "if ( this.value == 'http://') this.value=''; else return false")));
$form->addRule('home_URL', ts('Enter a valid web location beginning with \'http://\' or \'https://\'. EXAMPLE: http://www.mysite.org/'), 'url');
//Current Employer Element
$employerDataURL = CRM_Utils_System::url('civicrm/ajax/contactlist', 'org=1', false, null, false);
$form->assign('employerDataURL', $employerDataURL);
$form->addElement('text', 'current_employer', ts('Current Employer'), '');
$form->addElement('hidden', 'current_employer_id', '', array('id' => 'current_employer_id'));
$form->addElement('text', 'contact_source', ts('Source'));
//External Identifier Element
$form->add('text', 'external_identifier', ts('External Id'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'external_identifier'), false);
$form->addRule('external_identifier', ts('External ID already exists in Database.'), 'objectExists', array('CRM_Contact_DAO_Contact', $form->_contactId, 'external_identifier'));
$config =& CRM_Core_Config::singleton();
CRM_Core_ShowHideBlocks::links($form, 'demographics', '', '');
}
示例3: civicrm_api3_contact_create
/**
* Create or update a contact (note you should always call this via civicrm_api() & never directly)
*
* @param array $params input parameters
*
* Allowed @params array keys are:
* {@getfields contact_create}
*
*
* @example ContactCreate.php Example of Create Call
*
* @return array API Result Array
*
* @static void
* @access public
*/
function civicrm_api3_contact_create($params)
{
$contactID = CRM_Utils_Array::value('contact_id', $params, CRM_Utils_Array::value('id', $params));
$dupeCheck = CRM_Utils_Array::value('dupe_check', $params, FALSE);
$values = _civicrm_api3_contact_check_params($params, $dupeCheck);
if ($values) {
return $values;
}
if (empty($contactID)) {
// If we get here, we're ready to create a new contact
if (($email = CRM_Utils_Array::value('email', $params)) && !is_array($params['email'])) {
require_once 'CRM/Core/BAO/LocationType.php';
$defLocType = CRM_Core_BAO_LocationType::getDefault();
$params['email'] = array(1 => array('email' => $email, 'is_primary' => 1, 'location_type_id' => $defLocType->id ? $defLocType->id : 1));
}
}
if (CRM_Utils_Array::value('home_url', $params)) {
require_once 'CRM/Core/PseudoConstant.php';
$websiteTypes = CRM_Core_PseudoConstant::websiteType();
$params['website'] = array(1 => array('website_type_id' => key($websiteTypes), 'url' => $params['home_url']));
}
if (isset($params['suffix_id']) && !is_numeric($params['suffix_id'])) {
$params['suffix_id'] = array_search($params['suffix_id'], CRM_Core_PseudoConstant::individualSuffix());
}
if (isset($params['prefix_id']) && !is_numeric($params['prefix_id'])) {
$params['prefix_id'] = array_search($params['prefix_id'], CRM_Core_PseudoConstant::individualPrefix());
}
if (isset($params['gender_id']) && !is_numeric($params['gender_id'])) {
$params['gender_id'] = array_search($params['gender_id'], CRM_Core_PseudoConstant::gender());
}
$error = _civicrm_api3_greeting_format_params($params);
if (civicrm_error($error)) {
return $error;
}
$values = array();
$entityId = $contactID;
if (!CRM_Utils_Array::value('contact_type', $params) && $entityId) {
$params['contact_type'] = CRM_Contact_BAO_Contact::getContactType($entityId);
}
if (!isset($params['contact_sub_type']) && $entityId) {
require_once 'CRM/Contact/BAO/Contact.php';
$params['contact_sub_type'] = CRM_Contact_BAO_Contact::getContactSubType($entityId);
}
_civicrm_api3_custom_format_params($params, $values, $params['contact_type'], $entityId);
$params = array_merge($params, $values);
$contact = _civicrm_api3_contact_update($params, $contactID);
if (is_a($contact, 'CRM_Core_Error')) {
return civicrm_api3_create_error($contact->_errors[0]['message']);
} else {
$values = array();
_civicrm_api3_object_to_array_unique_fields($contact, $values[$contact->id]);
}
return civicrm_api3_create_success($values, $params, 'Contact', 'create');
}
示例4: buildQuickForm
/**
* This function provides the HTML form elements that are specific to the Individual Contact Type
*
* @access public
*
* @return None
*/
public function buildQuickForm(&$form, $action = NULL)
{
$form->applyFilter('__ALL__', 'trim');
//prefix
$prefix = CRM_Core_PseudoConstant::individualPrefix();
if (!empty($prefix)) {
$form->addElement('select', 'prefix_id', ts('Prefix'), array('' => '') + $prefix);
}
$attributes = CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact');
// first_name
$form->addElement('text', 'first_name', ts('First Name'), $attributes['first_name']);
//middle_name
$form->addElement('text', 'middle_name', ts('Middle Name'), $attributes['middle_name']);
// last_name
$form->addElement('text', 'last_name', ts('Last Name'), $attributes['last_name']);
// suffix
$suffix = CRM_Core_PseudoConstant::individualSuffix();
if ($suffix) {
$form->addElement('select', 'suffix_id', ts('Suffix'), array('' => '') + $suffix);
}
// nick_name
$form->addElement('text', 'nick_name', ts('Nick Name'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'nick_name'));
// job title
// override the size for UI to look better
$attributes['job_title']['size'] = 30;
$form->addElement('text', 'job_title', ts('Job title'), $attributes['job_title'], 'size="30"');
//Current Employer Element
$employerDataURL = CRM_Utils_System::url('civicrm/ajax/rest', 'className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&context=contact&org=1&employee_id=' . $this->_contactId, FALSE, NULL, FALSE);
$form->assign('employerDataURL', $employerDataURL);
$form->addElement('text', 'current_employer', ts('Current Employer'), '');
$form->addElement('hidden', 'current_employer_id', '', array('id' => 'current_employer_id'));
$form->addElement('text', 'contact_source', ts('Source'));
$checkSimilar = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'contact_ajax_check_similar', NULL, TRUE);
if ($checkSimilar == null) {
$checkSimilar = 0;
}
$form->assign('checkSimilar', $checkSimilar);
//External Identifier Element
$form->add('text', 'external_identifier', ts('External Id'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'external_identifier'), FALSE);
$form->addRule('external_identifier', ts('External ID already exists in Database.'), 'objectExists', array('CRM_Contact_DAO_Contact', $form->_contactId, 'external_identifier'));
$config = CRM_Core_Config::singleton();
CRM_Core_ShowHideBlocks::links($form, 'demographics', '', '');
}
示例5: diffsInTable
private function diffsInTable($table)
{
// caches for pretty field titles and value mappings
static $titles = null;
static $values = null;
$params = array(1 => array($this->log_conn_id, 'Integer'), 2 => array($this->log_date, 'String'));
// we look for the last change in the given connection that happended less than 10 seconds later than log_date to catch multi-query changes
$changedSQL = "SELECT * FROM `{$this->loggingDB}`.`{$table}` WHERE log_conn_id = %1 AND log_date < DATE_ADD(%2, INTERVAL 10 SECOND) ORDER BY log_date DESC LIMIT 1";
$changed = $this->sqlToArray($changedSQL, $params);
// return early if nothing found
if (empty($changed)) {
return array();
}
// seed caches with civicrm_contact titles/values
if (!isset($titles['log_civicrm_contact']) or !isset($values['log_civicrm_contact'])) {
$titles['log_civicrm_contact'] = array('gender_id' => ts('Gender'), 'preferred_communication_method' => ts('Preferred Communication Method'), 'preferred_language' => ts('Preferred Language'), 'prefix_id' => ts('Prefix'), 'suffix_id' => ts('Suffix'));
$values['log_civicrm_contact'] = array('gender_id' => CRM_Core_PseudoConstant::gender(), 'preferred_communication_method' => CRM_Core_PseudoConstant::pcm(), 'preferred_language' => CRM_Core_PseudoConstant::languages(), 'prefix_id' => CRM_Core_PseudoConstant::individualPrefix(), 'suffix_id' => CRM_Core_PseudoConstant::individualSuffix());
require_once 'CRM/Contact/DAO/Contact.php';
$dao = new CRM_Contact_DAO_Contact();
foreach ($dao->fields() as $field) {
if (!isset($titles['log_civicrm_contact'][$field['name']])) {
$titles['log_civicrm_contact'][$field['name']] = $field['title'];
}
if ($field['type'] == CRM_Utils_Type::T_BOOLEAN) {
$values['log_civicrm_contact'][$field['name']] = array('0' => ts('false'), '1' => ts('true'));
}
}
}
// add custom data titles/values for the given table
if (!isset($titles[$table]) or !isset($values[$table])) {
$titles[$table] = array();
$values[$table] = array();
$params[3] = array(substr($table, 4), 'String');
$sql = "SELECT id, title FROM `{$this->loggingDB}`.log_civicrm_custom_group WHERE log_date <= %2 AND table_name = %3 ORDER BY log_date DESC LIMIT 1";
$cgDao =& CRM_Core_DAO::executeQuery($sql, $params);
$cgDao->fetch();
$params[3] = array($cgDao->id, 'Integer');
$sql = "SELECT column_name, data_type, label, name FROM `{$this->loggingDB}`.log_civicrm_custom_field WHERE log_date <= %2 AND custom_group_id = %3 ORDER BY log_date";
$cfDao =& CRM_Core_DAO::executeQuery($sql, $params);
while ($cfDao->fetch()) {
$titles[$table][$cfDao->column_name] = "{$cgDao->title}: {$cfDao->label}";
switch ($cfDao->data_type) {
case 'Boolean':
$values[$table][$cfDao->column_name] = array('0' => ts('false'), '1' => ts('true'));
break;
case 'String':
$values[$table][$cfDao->column_name] = array();
$params[3] = array("custom_{$cfDao->name}", 'String');
$sql = "SELECT id FROM `{$this->loggingDB}`.log_civicrm_option_group WHERE log_date <= %2 AND name = %3 ORDER BY log_date DESC LIMIT 1";
$ogId = CRM_Core_DAO::singleValueQuery($sql, $params);
$params[3] = array($ogId, 'Integer');
$sql = "SELECT label, value FROM `{$this->loggingDB}`.log_civicrm_option_value WHERE log_date <= %2 AND option_group_id = %3 ORDER BY log_date";
$ovDao =& CRM_Core_DAO::executeQuery($sql, $params);
while ($ovDao->fetch()) {
$values[$table][$cfDao->column_name][$ovDao->value] = $ovDao->label;
}
break;
}
}
}
// we look for the previous state (different log_conn_id) of the found id
$params[3] = array($changed['id'], 'Integer');
$originalSQL = "SELECT * FROM `{$this->loggingDB}`.`{$table}` WHERE log_conn_id != %1 AND log_date < %2 AND id = %3 ORDER BY log_date DESC LIMIT 1";
$original = $this->sqlToArray($originalSQL, $params);
$rows = array();
// populate $rows with only the differences between $changed and $original (skipping certain columns and NULL ↔ empty changes)
$skipped = array('entity_id', 'id', 'log_action', 'log_conn_id', 'log_date', 'log_user_id');
foreach (array_keys(array_diff_assoc($changed, $original)) as $diff) {
if (in_array($diff, $skipped)) {
continue;
}
if ($original[$diff] == $changed[$diff]) {
continue;
}
$rows[] = array('field' => isset($titles[$table][$diff]) ? $titles[$table][$diff] : substr($table, 4) . ".{$diff}", 'from' => isset($values[$table][$diff][$original[$diff]]) ? $values[$table][$diff][$original[$diff]] : $original[$diff], 'to' => isset($values[$table][$diff][$changed[$diff]]) ? $values[$table][$diff][$changed[$diff]] : $changed[$diff]);
}
return $rows;
}
示例6: buildQuickForm
/**
* Function to actually build the form
*
* @return void
* @access public
*/
function buildQuickForm()
{
// add the form elements
require_once "CRM/Contribute/PseudoConstant.php";
foreach ($this->_fields as $name => $field) {
$required = $field['is_required'];
if (substr($field['name'], 0, 14) === 'state_province') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvince(), $required);
} else {
if (substr($field['name'], 0, 7) === 'country') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::country(), $required);
} else {
if ($field['name'] === 'birth_date') {
$this->add('date', $field['name'], $field['title'], CRM_Core_SelectValues::date('birth'), $required);
} else {
if ($field['name'] === 'gender') {
$genderOptions = array();
$gender = CRM_Core_PseudoConstant::gender();
foreach ($gender as $key => $var) {
$genderOptions[$key] = HTML_QuickForm::createElement('radio', null, ts('Gender'), $var, $key);
}
$this->addGroup($genderOptions, $field['name'], $field['title']);
if ($required) {
$this->addRule($field['name'], ts('%1 is a required field.', array(1 => $field['title'])), 'required');
}
} else {
if ($field['name'] === 'individual_prefix') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::individualPrefix(), $required);
} else {
if ($field['name'] === 'individual_suffix') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::individualSuffix(), $required);
} else {
if ($field['name'] === 'preferred_communication_method') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_SelectValues::pcm());
} else {
if ($field['name'] === 'preferred_mail_format') {
$this->add('select', $name, $field['title'], array(CRM_Core_SelectValues::pcm()));
} else {
if (substr($field['name'], 0, 7) === 'do_not_') {
$this->add('checkbox', $name, $field['title'], $field['attributes'], $required);
} else {
if ($field['name'] === 'group') {
require_once 'CRM/Contact/Form/GroupTag.php';
CRM_Contact_Form_GroupTag::buildGroupTagBlock($this, $this->_id, CRM_CONTACT_FORM_GROUPTAG_GROUP, false, $required, $field['title'], null);
} else {
if ($field['name'] === 'tag') {
require_once 'CRM/Contact/Form/GroupTag.php';
CRM_Contact_Form_GroupTag::buildGroupTagBlock($this, $this->_id, CRM_CONTACT_FORM_GROUPTAG_TAG, false, $required, null, $field['title']);
} else {
if ($customFieldID = CRM_Core_BAO_CustomField::getKeyID($field['name'])) {
CRM_Core_BAO_CustomField::addQuickFormElement($this, $name, $customFieldID, $inactiveNeeded, $required, false, $field['title']);
} else {
if (in_array($field['name'], array('receive_date', 'receipt_date', 'thankyou_date', 'cancel_date'))) {
$this->add('date', $field['name'], $field['title'], CRM_Core_SelectValues::date('manual', 3, 1), $required);
} else {
if ($field['name'] == 'payment_instrument') {
$this->add('select', 'payment_instrument', ts('Paid By'), array('' => ts('-select-')) + CRM_Contribute_PseudoConstant::paymentInstrument(), $required);
} else {
if ($field['name'] == 'contribution_type') {
$this->add('select', 'contribution_type', ts('Contribution Type'), array('' => ts('-select-')) + CRM_Contribute_PseudoConstant::contributionType(), $required);
} else {
$this->add('text', $name, $field['title'], $field['attributes'], $required);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
$this->addButtons(array(array('type' => 'cancel', 'name' => ts('Done with Preview'), 'isDefault' => true)));
}
示例7: titlesAndValuesForTable
function titlesAndValuesForTable($table)
{
// static caches for subsequent calls with the same $table
static $titles = array();
static $values = array();
// FIXME: split off the table → DAO mapping to a GenCode-generated class
static $daos = array('civicrm_address' => 'CRM_Core_DAO_Address', 'civicrm_contact' => 'CRM_Contact_DAO_Contact', 'civicrm_email' => 'CRM_Core_DAO_Email', 'civicrm_im' => 'CRM_Core_DAO_IM', 'civicrm_openid' => 'CRM_Core_DAO_OpenID', 'civicrm_phone' => 'CRM_Core_DAO_Phone', 'civicrm_website' => 'CRM_Core_DAO_Website', 'civicrm_contribution' => 'CRM_Contribute_DAO_Contribution', 'civicrm_note' => 'CRM_Core_DAO_Note', 'civicrm_relationship' => 'CRM_Contact_DAO_Relationship');
if (!isset($titles[$table]) or !isset($values[$table])) {
if (in_array($table, array_keys($daos))) {
// FIXME: these should be populated with pseudo constants as they
// were at the time of logging rather than their current values
$values[$table] = array('contribution_page_id' => CRM_Contribute_PseudoConstant::contributionPage(), 'contribution_status_id' => CRM_Contribute_PseudoConstant::contributionStatus(), 'contribution_type_id' => CRM_Contribute_PseudoConstant::contributionType(), 'country_id' => CRM_Core_PseudoConstant::country(), 'gender_id' => CRM_Core_PseudoConstant::gender(), 'location_type_id' => CRM_Core_PseudoConstant::locationType(), 'payment_instrument_id' => CRM_Contribute_PseudoConstant::paymentInstrument(), 'phone_type_id' => CRM_Core_PseudoConstant::phoneType(), 'preferred_communication_method' => CRM_Core_PseudoConstant::pcm(), 'preferred_language' => CRM_Core_PseudoConstant::languages(), 'prefix_id' => CRM_Core_PseudoConstant::individualPrefix(), 'provider_id' => CRM_Core_PseudoConstant::IMProvider(), 'state_province_id' => CRM_Core_PseudoConstant::stateProvince(), 'suffix_id' => CRM_Core_PseudoConstant::individualSuffix(), 'website_type_id' => CRM_Core_PseudoConstant::websiteType());
require_once str_replace('_', DIRECTORY_SEPARATOR, $daos[$table]) . '.php';
eval("\$dao = new {$daos[$table]};");
foreach ($dao->fields() as $field) {
$titles[$table][$field['name']] = CRM_Utils_Array::value('title', $field);
if ($field['type'] == CRM_Utils_Type::T_BOOLEAN) {
$values[$table][$field['name']] = array('0' => ts('false'), '1' => ts('true'));
}
}
} elseif (substr($table, 0, 14) == 'civicrm_value_') {
list($titles[$table], $values[$table]) = $this->titlesAndValuesForCustomDataTable($table);
}
}
return array($titles[$table], $values[$table]);
}
示例8: displayProfile
/**
* Function to build the array for display the profile fields
*
* @param array $params key value.
* @param int $gid profile Id
* @param array $groupTitle Profile Group Title.
* @param array $values formatted array of key value
*
* @return None
* @access public
*/
function displayProfile(&$params, $gid, &$groupTitle, &$values)
{
if ($gid) {
require_once 'CRM/Core/BAO/UFGroup.php';
require_once 'CRM/Profile/Form.php';
require_once 'CRM/Event/PseudoConstant.php';
$session = CRM_Core_Session::singleton();
$contactID = $session->get('userID');
if ($contactID) {
if (CRM_Core_BAO_UFGroup::filterUFGroups($gid, $contactID)) {
$fields = CRM_Core_BAO_UFGroup::getFields($gid, false, CRM_Core_Action::VIEW);
}
} else {
$fields = CRM_Core_BAO_UFGroup::getFields($gid, false, CRM_Core_Action::ADD);
}
if (is_array($fields)) {
// unset any email-* fields since we already collect it, CRM-2888
foreach (array_keys($fields) as $fieldName) {
if (substr($fieldName, 0, 6) == 'email-') {
unset($fields[$fieldName]);
}
}
}
foreach ($fields as $v) {
if (CRM_Utils_Array::value('groupTitle', $v)) {
$groupTitle['groupTitle'] = $v["groupTitle"];
break;
}
}
$config = CRM_Core_Config::singleton();
require_once 'CRM/Core/PseudoConstant.php';
$locationTypes = $imProviders = array();
$locationTypes = CRM_Core_PseudoConstant::locationType();
$imProviders = CRM_Core_PseudoConstant::IMProvider();
//start of code to set the default values
foreach ($fields as $name => $field) {
$index = $field['title'];
$customFieldName = null;
if ($name === 'organization_name') {
$values[$index] = $params[$name];
}
if ('state_province' == substr($name, 0, 14)) {
if ($params[$name]) {
$values[$index] = CRM_Core_PseudoConstant::stateProvince($params[$name]);
} else {
$values[$index] = '';
}
} else {
if ('country' == substr($name, 0, 7)) {
if ($params[$name]) {
$values[$index] = CRM_Core_PseudoConstant::country($params[$name]);
} else {
$values[$index] = '';
}
} else {
if ('county' == substr($name, 0, 6)) {
if ($params[$name]) {
$values[$index] = CRM_Core_PseudoConstant::county($params[$name]);
} else {
$values[$index] = '';
}
} else {
if ('gender' == substr($name, 0, 6)) {
$gender = CRM_Core_PseudoConstant::gender();
$values[$index] = $gender[$params[$name]];
} else {
if ('individual_prefix' == substr($name, 0, 17)) {
$prefix = CRM_Core_PseudoConstant::individualPrefix();
$values[$index] = $prefix[$params[$name]];
} else {
if ('individual_suffix' == substr($name, 0, 17)) {
$suffix = CRM_Core_PseudoConstant::individualSuffix();
$values[$index] = $suffix[$params[$name]];
} else {
if (in_array($name, array('addressee', 'email_greeting', 'postal_greeting'))) {
$filterCondition = array('greeting_type' => $name);
$greeting =& CRM_Core_PseudoConstant::greeting($filterCondition);
$values[$index] = $greeting[$params[$name]];
} else {
if ($name === 'preferred_communication_method') {
$communicationFields = CRM_Core_PseudoConstant::pcm();
$pref = array();
$compref = array();
$pref = $params[$name];
if (is_array($pref)) {
foreach ($pref as $k => $v) {
if ($v) {
$compref[] = $communicationFields[$k];
}
//.........这里部分代码省略.........
示例9: displayName
/**
* creates display name
*
* @return string the constructed display name
*/
function displayName()
{
$prefix =& CRM_Core_PseudoConstant::individualPrefix();
$suffix =& CRM_Core_PseudoConstant::individualSuffix();
return str_replace(' ', ' ', trim($prefix[$this->prefix_id] . ' ' . $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name . ' ' . $suffix[$this->suffix_id]));
}
示例10: civicrm_contact_update
/**
* @todo Write sth
* @todo Serious FIXMES in the code! File issues.
*/
function civicrm_contact_update(&$params, $create_new = FALSE)
{
_civicrm_initialize();
try {
civicrm_api_check_permission(__FUNCTION__, $params, TRUE);
} catch (Exception $e) {
return civicrm_create_error($e->getMessage());
}
require_once 'CRM/Utils/Array.php';
$entityId = CRM_Utils_Array::value('contact_id', $params, NULL);
if (!CRM_Utils_Array::value('contact_type', $params) && $entityId) {
$params['contact_type'] = CRM_Contact_BAO_Contact::getContactType($entityId);
}
$dupeCheck = CRM_Utils_Array::value('dupe_check', $params, FALSE);
$values = civicrm_contact_check_params($params, $dupeCheck);
if ($values) {
return $values;
}
if ($create_new) {
// Make sure nothing is screwed up before we create a new contact
if (!empty($entityId)) {
return civicrm_create_error('Cannot create new contact when contact_id is present');
}
if (empty($params['contact_type'])) {
return civicrm_create_error('Contact Type not specified');
}
// If we get here, we're ready to create a new contact
if (($email = CRM_Utils_Array::value('email', $params)) && !is_array($params['email'])) {
require_once 'CRM/Core/BAO/LocationType.php';
$defLocType = CRM_Core_BAO_LocationType::getDefault();
$params['email'] = array(1 => array('email' => $email, 'is_primary' => 1, 'location_type_id' => $defLocType->id ? $defLocType->id : 1));
}
}
if ($homeUrl = CRM_Utils_Array::value('home_url', $params)) {
require_once 'CRM/Core/PseudoConstant.php';
$websiteTypes = CRM_Core_PseudoConstant::websiteType();
$params['website'] = array(1 => array('website_type_id' => key($websiteTypes), 'url' => $homeUrl));
}
// FIXME: Some legacy support cruft, should get rid of this in 3.1
$change = array('individual_prefix' => 'prefix', 'prefix' => 'prefix_id', 'individual_suffix' => 'suffix', 'suffix' => 'suffix_id', 'gender' => 'gender_id');
foreach ($change as $field => $changeAs) {
if (array_key_exists($field, $params)) {
$params[$changeAs] = $params[$field];
unset($params[$field]);
}
}
// End legacy support cruft
if (isset($params['suffix_id']) && !is_numeric($params['suffix_id'])) {
$params['suffix_id'] = array_search($params['suffix_id'], CRM_Core_PseudoConstant::individualSuffix());
}
if (isset($params['prefix_id']) && !is_numeric($params['prefix_id'])) {
$params['prefix_id'] = array_search($params['prefix_id'], CRM_Core_PseudoConstant::individualPrefix());
}
if (isset($params['gender_id']) && !is_numeric($params['gender_id'])) {
$params['gender_id'] = array_search($params['gender_id'], CRM_Core_PseudoConstant::gender());
}
$error = _civicrm_greeting_format_params($params);
if (civicrm_error($error)) {
return $error;
}
$values = array();
if (!($csType = CRM_Utils_Array::value('contact_sub_type', $params)) && $entityId) {
require_once 'CRM/Contact/BAO/Contact.php';
$csType = CRM_Contact_BAO_Contact::getContactSubType($entityId);
}
$customValue = civicrm_contact_check_custom_params($params, $csType);
if ($customValue) {
return $customValue;
}
_civicrm_custom_format_params($params, $values, $params['contact_type'], $entityId);
$params = array_merge($params, $values);
$contact =& _civicrm_contact_update($params, $entityId);
if (is_a($contact, 'CRM_Core_Error')) {
return civicrm_create_error($contact->_errors[0]['message']);
} else {
$values = array();
$values['contact_id'] = $contact->id;
$values['is_error'] = 0;
}
return $values;
}
示例11: buildOnBehalfForm
/**
* Function to build form for related contacts / on behalf of organization.
*
* @param $form object invoking Object
* @param $contactType string contact type
* @param $title string fieldset title
* @param $maxLocationBlocks int number of location blocks
*
* @static
*
*/
static function buildOnBehalfForm(&$form, $contactType = 'Individual', $countryID = null, $stateID = null, $title = 'Contact Information', $contactEditMode = false, $maxLocationBlocks = 1)
{
if ($title == 'Contact Information') {
$title = ts('Contact Information');
}
require_once 'CRM/Contact/Form/Location.php';
$config = CRM_Core_Config::singleton();
$form->assign('contact_type', $contactType);
$form->assign('fieldSetTitle', $title);
$form->assign('contactEditMode', $contactEditMode);
$attributes = CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact');
switch ($contactType) {
case 'Organization':
$session = CRM_Core_Session::singleton();
$contactID = $session->get('userID');
if ($contactID) {
require_once 'CRM/Contact/BAO/Relationship.php';
$employers = CRM_Contact_BAO_Relationship::getPermissionedEmployer($contactID);
}
if (!$contactEditMode && $contactID && count($employers) >= 1) {
$locDataURL = CRM_Utils_System::url('civicrm/ajax/permlocation', "cid=", false, null, false);
$form->assign('locDataURL', $locDataURL);
$dataURL = CRM_Utils_System::url('civicrm/ajax/employer', "cid=" . $contactID, false, null, false);
$form->assign('employerDataURL', $dataURL);
$form->add('text', 'organization_id', ts('Select an existing related Organization OR Enter a new one'));
$form->add('hidden', 'onbehalfof_id', '', array('id' => 'onbehalfof_id'));
$orgOptions = array('0' => ts('Create new organization'), '1' => ts('Select existing organization'));
$orgOptionExtra = array('onclick' => "showHideByValue('org_option','true','select_org','table-row','radio',true);showHideByValue('org_option','true','create_org','table-row','radio',false);");
$form->addRadio('org_option', ts('options'), $orgOptions, $orgOptionExtra);
$form->assign('relatedOrganizationFound', true);
}
$isRequired = false;
if (CRM_Utils_Array::value('is_for_organization', $form->_values) == 2) {
$isRequired = true;
}
$form->add('text', 'organization_name', ts('Organization Name'), $attributes['organization_name'], $isRequired);
break;
case 'Household':
$form->add('text', 'household_name', ts('Household Name'), $attributes['household_name']);
break;
default:
// individual
$form->addElement('select', 'prefix_id', ts('Prefix'), array('' => ts('- prefix -')) + CRM_Core_PseudoConstant::individualPrefix());
$form->addElement('text', 'first_name', ts('First Name'), $attributes['first_name']);
$form->addElement('text', 'middle_name', ts('Middle Name'), $attributes['middle_name']);
$form->addElement('text', 'last_name', ts('Last Name'), $attributes['last_name']);
$form->addElement('select', 'suffix_id', ts('Suffix'), array('' => ts('- suffix -')) + CRM_Core_PseudoConstant::individualSuffix());
}
$addressSequence = $config->addressSequence();
$form->assign('addressSequence', array_fill_keys($addressSequence, 1));
//Primary Phone
$form->addElement('text', "phone[1][phone]", ts('Primary Phone'), CRM_Core_DAO::getAttribute('CRM_Core_DAO_Phone', 'phone'));
//Primary Email
$form->addElement('text', "email[1][email]", ts('Primary Email'), CRM_Core_DAO::getAttribute('CRM_Core_DAO_Email', 'email'));
//build the address block
require_once 'CRM/Contact/Form/Edit/Address.php';
CRM_Contact_Form_Edit_Address::buildQuickForm($form);
// also fix the state country selector
CRM_Contact_Form_Edit_Address::fixStateSelect($form, "address[1][country_id]", "address[1][state_province_id]", $countryID);
}
示例12:
/**
* Get all Individual Suffix.
*
* The static array individualSuffix is returned
*
* @access public
* @static
*
* @param boolean $all - get All Individual Suffix - default is to get only active ones.
*
* @return array - array reference of all individual suffix.
*
*/
public static function &individualSuffix()
{
if (!self::$individualSuffix) {
self::$individualSuffix = CRM_Core_OptionGroup::values('individual_suffix');
}
return self::$individualSuffix;
}
示例13: resolveDefaults
/**
*
* Get the values for pseudoconstants for name->value and reverse.
*
* @param array $defaults (reference) the default values, some of which need to be resolved.
* @param boolean $reverse true if we want to resolve the values in the reverse direction (value -> name)
*
* @return none
* @access public
* @static
*/
static function resolveDefaults(&$defaults, $reverse = FALSE)
{
// hack for birth_date
if (CRM_Utils_Array::value('birth_date', $defaults)) {
if (is_array($defaults['birth_date'])) {
$defaults['birth_date'] = CRM_Utils_Date::format($defaults['birth_date'], '-');
}
}
CRM_Utils_Array::lookupValue($defaults, 'prefix', CRM_Core_PseudoConstant::individualPrefix(), $reverse);
CRM_Utils_Array::lookupValue($defaults, 'suffix', CRM_Core_PseudoConstant::individualSuffix(), $reverse);
CRM_Utils_Array::lookupValue($defaults, 'gender', CRM_Core_PseudoConstant::gender(), $reverse);
//lookup value of email/postal greeting, addressee, CRM-4575
foreach (self::$_greetingTypes as $greeting) {
$filterCondition = array('contact_type' => CRM_Utils_Array::value('contact_type', $defaults), 'greeting_type' => $greeting);
CRM_Utils_Array::lookupValue($defaults, $greeting, CRM_Core_PseudoConstant::greeting($filterCondition), $reverse);
}
$blocks = array('address', 'im', 'phone');
foreach ($blocks as $name) {
if (!array_key_exists($name, $defaults) || !is_array($defaults[$name])) {
continue;
}
foreach ($defaults[$name] as $count => &$values) {
//get location type id.
CRM_Utils_Array::lookupValue($values, 'location_type', CRM_Core_PseudoConstant::locationType(), $reverse);
if ($name == 'address') {
// FIXME: lookupValue doesn't work for vcard_name
if (CRM_Utils_Array::value('location_type_id', $values)) {
$vcardNames = CRM_Core_PseudoConstant::locationVcardName();
$values['vcard_name'] = $vcardNames[$values['location_type_id']];
}
if (!CRM_Utils_Array::lookupValue($values, 'country', CRM_Core_PseudoConstant::country(), $reverse) && $reverse) {
CRM_Utils_Array::lookupValue($values, 'country', CRM_Core_PseudoConstant::countryIsoCode(), $reverse);
}
// CRM-7597
// if we find a country id above, we need to restrict it to that country
// rather than the list of all countries
if (!empty($values['country_id'])) {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvinceForCountry($values['country_id']);
} else {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvince();
}
if (!CRM_Utils_Array::lookupValue($values, 'state_province', $stateProvinceList, $reverse) && $reverse) {
if (!empty($values['country_id'])) {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvinceForCountry($values['country_id'], 'abbreviation');
} else {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvinceAbbreviation();
}
CRM_Utils_Array::lookupValue($values, 'state_province', $stateProvinceList, $reverse);
}
if (!empty($values['state_province_id'])) {
$countyList = CRM_Core_PseudoConstant::countyForState($values['state_province_id']);
} else {
$countyList = CRM_Core_PseudoConstant::county();
}
CRM_Utils_Array::lookupValue($values, 'county', $countyList, $reverse);
}
if ($name == 'im') {
CRM_Utils_Array::lookupValue($values, 'provider', CRM_Core_PseudoConstant::IMProvider(), $reverse);
}
if ($name == 'phone') {
CRM_Utils_Array::lookupValue($values, 'phone_type', CRM_Core_PseudoConstant::phoneType(), $reverse);
}
//kill the reference.
unset($values);
}
}
}
示例14: buildQuickForm
/**
* Function to actually build the form
*
* @return void
* @access public
*/
function buildQuickForm()
{
if ($this->_mode != CRM_PROFILE_FORM_MODE_REGISTER) {
//check for mix profile (eg: individual + other contact type)
require_once "CRM/Core/BAO/UFField.php";
if (CRM_Core_BAO_UFField::checkProfileType($this->_gid)) {
CRM_Utils_System::setUFMessage(ts("This Profile includes fields for contact types other than 'Individuals' and can not be used to create/update contacts."));
$config =& CRM_Core_Config::singleton();
CRM_Utils_System::redirect($config->userFrameworkBaseURL);
}
}
$this->assign('mode', $this->_mode);
$this->assign('action', $this->_action);
$this->assign('fields', $this->_fields);
$this->assign('fieldset', $this->_fieldset);
/* if ($this->_mode & self::MODE_EDIT) {
$group =& new CRM_Core_DAO_UFGroup();
$group->id = $this->_gid;
if ($group->find(true)) {
$this->assign('help_pre', $group->help_pre);
$this->assign('help_post', $group->help_post);
}
}*/
// do we need inactive options ?
if ($this->_action & CRM_CORE_ACTION_VIEW) {
$inactiveNeeded = true;
} else {
$inactiveNeeded = false;
}
// should we restrict what we display
$admin = true;
if ($this->_mode == CRM_PROFILE_FORM_MODE_EDIT) {
$admin = false;
$session =& CRM_Core_Session::singleton();
// show all fields that are visibile: if we are a admin or the same user or in registration mode
if (CRM_Utils_System::checkPermission('administer users') || $this->_id == $session->get('userID')) {
$admin = true;
}
}
require_once "CRM/Contribute/PseudoConstant.php";
// add the form elements
foreach ($this->_fields as $name => $field) {
// make sure that there is enough permission to expose this field
if (!$admin && $field['visibility'] == 'User and User Admin Only') {
unset($this->_fields[$name]);
continue;
}
// since the CMS manages the email field, suppress the email display if in
// register mode which occur within the CMS form
if ($this->_mode == CRM_PROFILE_FORM_MODE_REGISTER && substr($name, 0, 5) == 'email') {
unset($this->_fields[$name]);
continue;
}
$required = $this->_mode == CRM_PROFILE_FORM_MODE_SEARCH ? false : $field['is_required'];
//if ( $field['name'] === 'state_province' ) {
if (substr($field['name'], 0, 14) === 'state_province') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvince(), $required);
} else {
if (substr($field['name'], 0, 7) === 'country') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::country(), $required);
} else {
if ($field['name'] === 'birth_date') {
$this->add('date', $field['name'], $field['title'], CRM_Core_SelectValues::date('birth'), $required);
} else {
if ($field['name'] === 'gender') {
$genderOptions = array();
$gender = CRM_Core_PseudoConstant::gender();
foreach ($gender as $key => $var) {
$genderOptions[$key] = HTML_QuickForm::createElement('radio', null, ts('Gender'), $var, $key);
}
$this->addGroup($genderOptions, $field['name'], $field['title']);
if ($required) {
$this->addRule($field['name'], ts('%1 is a required field.', array(1 => $field['title'])), 'required');
}
} else {
if ($field['name'] === 'individual_prefix') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::individualPrefix(), $required);
} else {
if ($field['name'] === 'individual_suffix') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_PseudoConstant::individualSuffix(), $required);
} else {
if ($field['name'] === 'preferred_communication_method') {
$this->add('select', $name, $field['title'], array('' => ts('- select -')) + CRM_Core_SelectValues::pcm());
} else {
if ($field['name'] === 'preferred_mail_format') {
$this->add('select', $name, $field['title'], CRM_Core_SelectValues::pmf());
} else {
if (substr($field['name'], 0, 3) === 'is_' or substr($field['name'], 0, 7) === 'do_not_') {
$this->add('checkbox', $name, $field['title'], $field['attributes'], $required);
} else {
if ($field['name'] === 'group') {
require_once 'CRM/Contact/Form/GroupTag.php';
CRM_Contact_Form_GroupTag::buildGroupTagBlock($this, $this->_id, CRM_CONTACT_FORM_GROUPTAG_GROUP, true, $required, $field['title'], null);
} else {
//.........这里部分代码省略.........
示例15: civicrm_contact_update
/**
* @todo Write sth
* @todo Serious FIXMES in the code! File issues.
*/
function civicrm_contact_update(&$params, $create_new = false)
{
_civicrm_initialize();
require_once 'CRM/Utils/Array.php';
$contactID = CRM_Utils_Array::value('contact_id', $params);
if ($create_new) {
// Make sure nothing is screwed up before we create a new contact
if (!empty($contactID)) {
return civicrm_create_error('Cannot create new contact when contact_id is present');
}
if (empty($params['contact_type'])) {
return civicrm_create_error('Contact Type not specified');
}
$dupeCheck = CRM_Utils_Array::value('dupe_check', $params, false);
$values = civicrm_contact_check_params($params, $dupeCheck);
if ($values) {
return $values;
}
// If we get here, we're ready to create a new contact
if (($email = CRM_Utils_Array::value('email', $params)) && !is_array($params['email'])) {
require_once 'CRM/Core/BAO/LocationType.php';
$defLocType = CRM_Core_BAO_LocationType::getDefault();
$params['email'] = array(1 => array('email' => $email, 'is_primary' => 1, 'location_type_id' => $defLocType->id ? $defLocType->id : 1));
}
}
// FIXME: Some legacy support cruft, should get rid of this in 3.1
$change = array('individual_prefix' => 'prefix', 'prefix' => 'prefix_id', 'individual_suffix' => 'suffix', 'suffix' => 'suffix_id', 'gender' => 'gender_id');
foreach ($change as $field => $changeAs) {
if (array_key_exists($field, $params)) {
$params[$changeAs] = $params[$field];
unset($params[$field]);
}
}
// End legacy support cruft
if (isset($params['suffix_id']) && !is_numeric($params['suffix_id'])) {
$params['suffix_id'] = array_search($params['suffix_id'], CRM_Core_PseudoConstant::individualSuffix());
}
if (isset($params['prefix_id']) && !is_numeric($params['prefix_id'])) {
$params['prefix_id'] = array_search($params['prefix_id'], CRM_Core_PseudoConstant::individualPrefix());
}
if (isset($params['gender_id']) && !is_numeric($params['gender_id'])) {
$params['gender_id'] = array_search($params['gender_id'], CRM_Core_PseudoConstant::gender());
}
$values = array();
$entityId = CRM_Utils_Array::value('contact_id', $params, null);
_civicrm_custom_format_params($params, $values, $params['contact_type'], $entityId);
$params = array_merge($params, $values);
$contact =& _civicrm_contact_update($params, $contactID);
if (is_a($contact, 'CRM_Core_Error')) {
return civicrm_create_error($contact->_errors[0]['message']);
} else {
$values = array();
$values['contact_id'] = $contact->id;
$values['is_error'] = 0;
}
return $values;
}