本文整理汇总了PHP中CRM_Core_PseudoConstant::pcm方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_PseudoConstant::pcm方法的具体用法?PHP CRM_Core_PseudoConstant::pcm怎么用?PHP CRM_Core_PseudoConstant::pcm使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Core_PseudoConstant
的用法示例。
在下文中一共展示了CRM_Core_PseudoConstant::pcm方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildQuickForm
/**
* build the form elements for Communication Preferences object
*
* @param CRM_Core_Form $form reference to the form object
*
* @return void
* @access public
* @static
*/
static function buildQuickForm(&$form)
{
// since the pcm - preferred comminication method is logically
// grouped hence we'll use groups of HTML_QuickForm
// checkboxes for DO NOT phone, email, mail
// we take labels from SelectValues
$privacy = $commPreff = $commPreference = array();
$privacyOptions = CRM_Core_SelectValues::privacy();
// we add is_opt_out as a separate checkbox below for display and help purposes so remove it here
unset($privacyOptions['is_opt_out']);
foreach ($privacyOptions as $name => $label) {
$privacy[] = $form->createElement('advcheckbox', $name, NULL, $label);
}
$form->addGroup($privacy, 'privacy', ts('Privacy'), ' ');
// preferred communication method
$comm = CRM_Core_PseudoConstant::pcm(TRUE);
foreach ($comm as $value => $title) {
$commPreff[] = $form->createElement('advcheckbox', $value, NULL, $title);
}
$form->addGroup($commPreff, 'preferred_communication_method', ts('Preferred Method(s)'));
$form->add('select', 'preferred_language', ts('Preferred Language'), array('' => ts('- select -')) + CRM_Core_PseudoConstant::languages());
if (!empty($privacyOptions)) {
$commPreference['privacy'] = $privacyOptions;
}
if (!empty($comm)) {
$commPreference['preferred_communication_method'] = $comm;
}
//using for display purpose.
$form->assign('commPreference', $commPreference);
$form->add('select', 'preferred_mail_format', ts('Email Format'), CRM_Core_SelectValues::pmf());
$form->add('checkbox', 'is_opt_out', ts('NO BULK EMAILS (User Opt Out)'));
//check contact type and build filter clause accordingly for greeting types, CRM-4575
$greetings = self::getGreetingFields($form->_contactType);
foreach ($greetings as $greeting => $fields) {
$filter = array('contact_type' => $form->_contactType, 'greeting_type' => $greeting);
//add addressee in Contact form
$greetingTokens = CRM_Core_PseudoConstant::greeting($filter);
if (!empty($greetingTokens)) {
$form->addElement('select', $fields['field'], $fields['label'], array('' => ts('- select -')) + $greetingTokens);
//custom addressee
$form->addElement('text', $fields['customField'], $fields['customLabel'], CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', $fields['customField']), $fields['js']);
}
}
}
示例2: isErrorInCoreData
/**
* function to check if an error in Core( non-custom fields ) field
*
* @param String $errorMessage A string containing all the error-fields.
*
* @access public
*/
function isErrorInCoreData($params, &$errorMessage)
{
require_once 'CRM/Core/OptionGroup.php';
foreach ($params as $key => $value) {
if ($value) {
$session =& CRM_Core_Session::singleton();
$dateType = $session->get("dateTypes");
switch ($key) {
case 'birth_date':
if (CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key)) {
if (!CRM_Utils_Rule::date($params[$key])) {
self::addToErrorMsg(ts('Birth Date'), $errorMessage);
}
} else {
self::addToErrorMsg(ts('Birth-Date'), $errorMessage);
}
break;
case 'deceased_date':
if (CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key)) {
if (!CRM_Utils_Rule::date($params[$key])) {
self::addToErrorMsg(ts('Deceased Date'), $errorMessage);
}
} else {
self::addToErrorMsg(ts('Deceased Date'), $errorMessage);
}
break;
case 'is_deceased':
if (CRM_Utils_String::strtoboolstr($value) === false) {
self::addToErrorMsg(ts('Is Deceased'), $errorMessage);
}
break;
case 'gender':
if (!self::checkGender($value)) {
self::addToErrorMsg(ts('Gender'), $errorMessage);
}
break;
case 'preferred_communication_method':
$preffComm = array();
$preffComm = explode(',', $value);
foreach ($preffComm as $v) {
if (!self::in_value(trim($v), CRM_Core_PseudoConstant::pcm())) {
self::addToErrorMsg(ts('Preferred Communication Method'), $errorMessage);
}
}
break;
case 'preferred_mail_format':
if (!array_key_exists(strtolower($value), array_change_key_case(CRM_Core_SelectValues::pmf(), CASE_LOWER))) {
self::addToErrorMsg(ts('Preferred Mail Format'), $errorMessage);
}
break;
case 'individual_prefix':
if (!self::in_value($value, CRM_Core_PseudoConstant::individualPrefix())) {
self::addToErrorMsg(ts('Individual Prefix'), $errorMessage);
}
break;
case 'individual_suffix':
if (!self::in_value($value, CRM_Core_PseudoConstant::individualSuffix())) {
self::addToErrorMsg(ts('Individual Suffix'), $errorMessage);
}
break;
case 'state_province':
if (!empty($value)) {
foreach ($value as $stateValue) {
if ($stateValue['state_province']) {
if (self::in_value($stateValue['state_province'], CRM_Core_PseudoConstant::stateProvinceAbbreviation()) || self::in_value($stateValue['state_province'], CRM_Core_PseudoConstant::stateProvince())) {
continue;
} else {
self::addToErrorMsg(ts('State / Province'), $errorMessage);
}
}
}
}
break;
case 'country':
if (!empty($value)) {
foreach ($value as $stateValue) {
if ($stateValue['country']) {
CRM_Core_PseudoConstant::populate($countryNames, 'CRM_Core_DAO_Country', true, 'name', 'is_active');
CRM_Core_PseudoConstant::populate($countryIsoCodes, 'CRM_Core_DAO_Country', true, 'iso_code');
$config =& CRM_Core_Config::singleton();
$limitCodes = $config->countryLimit();
//If no country is selected in
//localization then take all countries
if (empty($limitCodes)) {
$limitCodes = $countryIsoCodes;
}
if (self::in_value($stateValue['country'], $limitCodes) || self::in_value($stateValue['country'], CRM_Core_PseudoConstant::country())) {
continue;
} else {
if (self::in_value($stateValue['country'], $countryIsoCodes) || self::in_value($stateValue['country'], $countryNames)) {
self::addToErrorMsg(ts('Country input value is in table but not "available": "This Country is valid but is NOT in the list of Available Countries currently configured for your site. This can be viewed and modifed from Global Settings >> Localization." '), $errorMessage);
} else {
self::addToErrorMsg(ts('Country input value not in country table: "The Country value appears to be invalid. It does not match any value in CiviCRM table of countries."'), $errorMessage);
//.........这里部分代码省略.........
示例3: 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];
}
//.........这里部分代码省略.........
示例4: preferredCommunication
function preferredCommunication(&$values)
{
list($name, $op, $value, $grouping, $wildcard) = $values;
$pref = array();
if (!is_array($value)) {
$v = array();
if (strpos($value, CRM_Core_DAO::VALUE_SEPARATOR) !== FALSE) {
$v = explode(CRM_Core_DAO::VALUE_SEPARATOR, $value);
} else {
$v = explode(",", $value);
}
foreach ($v as $item) {
if ($item) {
$pref[] = $item;
}
}
} else {
foreach ($value as $key => $checked) {
if ($checked) {
$pref[] = $key;
}
}
}
$commPref = array();
$commPref = CRM_Core_PseudoConstant::pcm();
$sqlValue = array();
$sql = "contact_a.preferred_communication_method";
foreach ($pref as $val) {
$sqlValue[] = "( {$sql} like '%" . CRM_Core_DAO::VALUE_SEPARATOR . $val . CRM_Core_DAO::VALUE_SEPARATOR . "%' ) ";
$showValue[] = $commPref[$val];
}
$this->_where[$grouping][] = "( " . implode(' OR ', $sqlValue) . " )";
$this->_qill[$grouping][] = ts('Preferred Communication Method') . " {$op} " . implode(' ' . ts('or') . ' ', $showValue);
}
示例5: buildProfile
//.........这里部分代码省略.........
} else {
if (in_array($fieldName, array('email_greeting', 'postal_greeting', 'addressee'))) {
//add email greeting, postal greeting, addressee, CRM-4575
$gId = $form->get('gid') ? $form->get('gid') : CRM_Utils_Array::value('group_id', $field);
$profileType = CRM_Core_BAO_UFField::getProfileType($gId, true, false, true);
if (empty($profileType) || in_array($profileType, array('Contact', 'Contribution', 'Participant', 'Membership'))) {
$profileType = 'Individual';
}
if (CRM_Contact_BAO_ContactType::isaSubType($profileType)) {
$profileType = CRM_Contact_BAO_ContactType::getBasicType($profileType);
}
if ($fieldName == 'email_greeting') {
$emailGreeting = array('contact_type' => $profileType, 'greeting_type' => 'email_greeting');
$form->add('select', $name, $title, array('' => ts('- select -')) + CRM_Core_PseudoConstant::greeting($emailGreeting), $required);
// adding custom email greeting element alongwith email greeting
$form->add('text', 'email_greeting_custom', ts('Custom Email Greeting'), null, false);
} else {
if ($fieldName === 'postal_greeting') {
$postalGreeting = array('contact_type' => $profileType, 'greeting_type' => 'postal_greeting');
$form->add('select', $name, $title, array('' => ts('- select -')) + CRM_Core_PseudoConstant::greeting($postalGreeting), $required);
// adding custom postal greeting element alongwith postal greeting
$form->add('text', 'postal_greeting_custom', ts('Custom Postal Greeting'), null, false);
} else {
if ($fieldName === 'addressee') {
$addressee = array('contact_type' => $profileType, 'greeting_type' => 'addressee');
$form->add('select', $name, $title, array('' => ts('- select -')) + CRM_Core_PseudoConstant::greeting($addressee), $required);
// adding custom addressee element alongwith addressee type
$form->add('text', 'addressee_custom', ts('Custom Addressee'), null, false);
}
}
}
} else {
if ($fieldName === 'preferred_communication_method') {
$communicationFields = CRM_Core_PseudoConstant::pcm();
foreach ($communicationFields as $key => $var) {
if ($key == '') {
continue;
}
$communicationOptions[] =& HTML_QuickForm::createElement('checkbox', $key, null, $var);
}
$form->addGroup($communicationOptions, $name, $title, '<br/>');
} else {
if ($fieldName === 'preferred_mail_format') {
$form->add('select', $name, $title, CRM_Core_SelectValues::pmf());
} else {
if ($fieldName == 'external_identifier') {
$form->add('text', $name, $title, $attributes, $required);
$contID = $contactId;
if (!$contID) {
$contID = $form->get('id');
}
$form->addRule($name, ts('External ID already exists in Database.'), 'objectExists', array('CRM_Contact_DAO_Contact', $contID, 'external_identifier'));
} else {
if ($fieldName === 'group') {
require_once 'CRM/Contact/Form/Edit/TagsAndGroups.php';
CRM_Contact_Form_Edit_TagsAndGroups::buildQuickForm($form, $contactId, CRM_Contact_Form_Edit_TagsAndGroups::GROUP, true, $required, $title, null, $name);
} else {
if ($fieldName === 'tag') {
require_once 'CRM/Contact/Form/Edit/TagsAndGroups.php';
CRM_Contact_Form_Edit_TagsAndGroups::buildQuickForm($form, $contactId, CRM_Contact_Form_Edit_TagsAndGroups::TAG, false, $required, null, $title, $name);
} else {
if ($fieldName === 'home_URL') {
$form->addElement('text', $name, $title, 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($name, ts('Enter a valid Website.'), 'url');
} else {
if (substr($fieldName, 0, 6) === 'custom') {
示例6:
/**
* Get all the Preferred Communication Methods from database.
*
* @access public
* @static
*
* @return array self::pcm - array reference of all preferred communication methods.
*
*/
public static function &pcm()
{
if (!self::$pcm) {
require_once 'CRM/Core/OptionGroup.php';
self::$pcm = CRM_Core_OptionGroup::values('preferred_communication_method');
}
return self::$pcm;
}
示例7: basic
static function basic(&$form)
{
$form->addElement('hidden', 'hidden_basic', 1);
if ($form->_searchOptions['contactType']) {
// add checkboxes for contact type
$contact_type = array();
require_once 'CRM/Contact/BAO/ContactType.php';
$contactTypes = CRM_Contact_BAO_ContactType::getSelectElements();
foreach ($contactTypes as $k => $v) {
if (!empty($k)) {
$contact_type[] = HTML_QuickForm::createElement('checkbox', $k, null, $v);
}
}
$form->addGroup($contact_type, 'contact_type', ts('Contact Type(s)'), '<br />');
}
if ($form->_searchOptions['groups']) {
// checkboxes for groups
foreach ($form->_group as $groupID => $group) {
$form->_groupElement =& $form->addElement('checkbox', "group[{$groupID}]", null, $group);
}
}
if ($form->_searchOptions['tags']) {
// checkboxes for categories
require_once 'CRM/Core/BAO/Tag.php';
$tags = new CRM_Core_BAO_Tag();
$tree = $tags->getTree();
$form->assign('tree', $tags->getTree());
foreach ($form->_tag as $tagID => $tagName) {
$form->_tagElement =& $form->addElement('checkbox', "tag[{$tagID}]", null, $tagName);
}
}
// add text box for last name, first name, street name, city
$form->addElement('text', 'sort_name', ts('Find...'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
// add text box for last name, first name, street name, city
$form->add('text', 'email', ts('Contact Email'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
//added contact source
$form->add('text', 'contact_source', ts('Contact Source'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'source'));
// add checkbox for cms users only
if (CIVICRM_UF != 'Standalone') {
$form->addYesNo('uf_user', ts('CMS User?'));
}
// add search profiles
require_once 'CRM/Core/BAO/UFGroup.php';
// FIXME: This is probably a part of profiles - need to be
// FIXME: eradicated from here when profiles are reworked.
$types = array('Participant', 'Contribution', 'Membership');
// get component profiles
$componentProfiles = array();
$componentProfiles = CRM_Core_BAO_UFGroup::getProfiles($types);
$ufGroups =& CRM_Core_BAO_UFGroup::getModuleUFGroup('Search Profile', 1);
$accessibleUfGroups = CRM_Core_Permission::ufGroup(CRM_Core_Permission::VIEW);
$searchProfiles = array();
foreach ($ufGroups as $key => $var) {
if (!array_key_exists($key, $componentProfiles) && in_array($key, $accessibleUfGroups)) {
$searchProfiles[$key] = $var['title'];
}
}
$form->addElement('select', 'uf_group_id', ts('Search Views'), array('0' => ts('- default view -')) + $searchProfiles);
// checkboxes for DO NOT phone, email, mail
// we take labels from SelectValues
$t = CRM_Core_SelectValues::privacy();
$t['do_not_toggle'] = ts('Include contacts who have these privacy option(s).');
$privacy[] = HTML_QuickForm::createElement('advcheckbox', 'do_not_phone', null, $t['do_not_phone']);
$privacy[] = HTML_QuickForm::createElement('advcheckbox', 'do_not_email', null, $t['do_not_email']);
$privacy[] = HTML_QuickForm::createElement('advcheckbox', 'do_not_mail', null, $t['do_not_mail']);
$privacy[] = HTML_QuickForm::createElement('advcheckbox', 'do_not_sms', null, $t['do_not_sms']);
$privacy[] = HTML_QuickForm::createElement('advcheckbox', 'do_not_trade', null, $t['do_not_trade']);
$privacy[] = HTML_QuickForm::createElement('advcheckbox', 'do_not_toggle', null, $t['do_not_toggle']);
$form->addGroup($privacy, 'privacy', ts('Privacy'), array(' ', ' ', ' ', '<br/>'));
// preferred communication method
require_once 'CRM/Core/PseudoConstant.php';
$comm = CRM_Core_PseudoConstant::pcm();
$commPreff = array();
foreach ($comm as $k => $v) {
$commPreff[] = HTML_QuickForm::createElement('advcheckbox', $k, null, $v);
}
$form->addGroup($commPreff, 'preferred_communication_method', ts('Preferred Communication Method'));
}
示例8: postProcess
//.........这里部分代码省略.........
unset($contact['contact_id']);
if ($locName && CRM_Utils_Array::value($locName, $contact)) {
// If location type is not primary, $contact contains
// one more array as "$contact[$locName] = array( values... )"
$found = false;
// we should replace all the tokens that are set in mailing label format
foreach ($mailingFormatProperties as $key => $dontCare) {
if (CRM_Utils_Array::value($key, $contact)) {
$found = true;
break;
}
}
if (!$found) {
continue;
}
unset($contact[$locName]);
if (CRM_Utils_Array::value('county_id', $contact)) {
unset($contact['county_id']);
}
foreach ($contact as $field => $fieldValue) {
$rows[$value][$field] = $fieldValue;
}
$valuesothers = array();
$paramsothers = array('contact_id' => $value);
require_once 'CRM/Core/BAO/Location.php';
$valuesothers = CRM_Core_BAO_Location::getValues($paramsothers, $valuesothers);
if (CRM_Utils_Array::value('location_type_id', $fv)) {
foreach ($valuesothers as $vals) {
if ($vals['location_type_id'] == CRM_Utils_Array::value('location_type_id', $fv)) {
foreach ($vals as $k => $v) {
if (in_array($k, array('email', 'phone', 'im', 'openid'))) {
if ($k == 'im') {
$rows[$value][$k] = $v['1']['name'];
} else {
$rows[$value][$k] = $v['1'][$k];
}
$rows[$value][$k . '_id'] = $v['1']['id'];
}
}
}
}
}
} else {
$found = false;
// we should replace all the tokens that are set in mailing label format
foreach ($mailingFormatProperties as $key => $dontCare) {
if (CRM_Utils_Array::value($key, $contact)) {
$found = true;
break;
}
}
if (!$found) {
continue;
}
if (CRM_Utils_Array::value('addressee', $contact)) {
$contact['addressee'] = $contact['addressee_display'];
}
// now create the rows for generating mailing labels
foreach ($contact as $field => $fieldValue) {
$rows[$value][$field] = $fieldValue;
}
}
}
$individualFormat = false;
if (isset($fv['merge_same_address'])) {
$this->mergeSameAddress($rows);
$individualFormat = true;
}
// format the addresses according to CIVICRM_ADDRESS_FORMAT (CRM-1327)
require_once 'CRM/Utils/Address.php';
foreach ($rows as $id => $row) {
if ($commMethods = CRM_Utils_Array::value('preferred_communication_method', $row)) {
require_once 'CRM/Core/PseudoConstant.php';
$val = array_filter(explode(CRM_Core_DAO::VALUE_SEPARATOR, $commMethods));
$comm = CRM_Core_PseudoConstant::pcm();
$temp = array();
foreach ($val as $vals) {
$temp[] = $comm[$vals];
}
$row['preferred_communication_method'] = implode(', ', $temp);
}
$row['id'] = $id;
$formatted = CRM_Utils_Address::format($row, 'mailing_format', false, true, $individualFormat, $tokenFields);
// CRM-2211: UFPDF doesn't have bidi support; use the PECL fribidi package to fix it.
// On Ubuntu (possibly Debian?) be aware of http://pecl.php.net/bugs/bug.php?id=12366
// Due to FriBidi peculiarities, this can't be called on
// a multi-line string, hence the explode+implode approach.
if (function_exists('fribidi_log2vis')) {
$lines = explode("\n", $formatted);
foreach ($lines as $i => $line) {
$lines[$i] = fribidi_log2vis($line, FRIBIDI_AUTO, FRIBIDI_CHARSET_UTF8);
}
$formatted = implode("\n", $lines);
}
$rows[$id] = array($formatted);
}
//call function to create labels
self::createLabel($rows, $fv['label_id']);
exit(1);
}
示例9: 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;
}
示例10: buildProfile
//.........这里部分代码省略.........
$profileType = 'Organization';
} else {
$profileType = $gId ? CRM_Core_BAO_UFField::getProfileType($gId) : NULL;
}
$setSubtype = FALSE;
if (CRM_Contact_BAO_ContactType::isaSubType($profileType)) {
$setSubtype = $profileType;
$profileType = CRM_Contact_BAO_ContactType::getBasicType($profileType);
}
$subtypes = $profileType ? CRM_Contact_BAO_ContactType::subTypePairs($profileType) : array();
if ($setSubtype) {
$subtypeList = array();
$subtypeList[$setSubtype] = $subtypes[$setSubtype];
} else {
$subtypeList = $subtypes;
}
$sel = $form->add('select', $name, $title, $subtypeList, $required);
$sel->setMultiple(TRUE);
} elseif (in_array($fieldName, CRM_Contact_BAO_Contact::$_greetingTypes)) {
//add email greeting, postal greeting, addressee, CRM-4575
$gId = $form->get('gid') ? $form->get('gid') : CRM_Utils_Array::value('group_id', $field);
$profileType = CRM_Core_BAO_UFField::getProfileType($gId, TRUE, FALSE, TRUE);
if (empty($profileType) || in_array($profileType, array('Contact', 'Contribution', 'Participant', 'Membership'))) {
$profileType = 'Individual';
}
if (CRM_Contact_BAO_ContactType::isaSubType($profileType)) {
$profileType = CRM_Contact_BAO_ContactType::getBasicType($profileType);
}
$greeting = array('contact_type' => $profileType, 'greeting_type' => $fieldName);
$form->add('select', $name, $title, array('' => ts('- select -')) + CRM_Core_PseudoConstant::greeting($greeting), $required);
// add custom greeting element
$form->add('text', $fieldName . '_custom', ts('Custom %1', array(1 => ucwords(str_replace('_', ' ', $fieldName)))), NULL, FALSE);
} elseif ($fieldName === 'preferred_communication_method') {
$communicationFields = CRM_Core_PseudoConstant::pcm();
foreach ($communicationFields as $key => $var) {
if ($key == '') {
continue;
}
$communicationOptions[] = $form->createElement('checkbox', $key, NULL, $var);
}
$form->addGroup($communicationOptions, $name, $title, '<br/>');
} elseif ($fieldName === 'preferred_mail_format') {
$form->add('select', $name, $title, CRM_Core_SelectValues::pmf());
} elseif ($fieldName === 'preferred_language') {
$form->add('select', $name, $title, array('' => ts('- select -')) + CRM_Core_PseudoConstant::languages());
} elseif ($fieldName == 'external_identifier') {
$form->add('text', $name, $title, $attributes, $required);
$contID = $contactId;
if (!$contID) {
$contID = $form->get('id');
}
$form->addRule($name, ts('External ID already exists in Database.'), 'objectExists', array('CRM_Contact_DAO_Contact', $contID, 'external_identifier'));
} elseif ($fieldName === 'group') {
CRM_Contact_Form_Edit_TagsAndGroups::buildQuickForm($form, $contactId, CRM_Contact_Form_Edit_TagsAndGroups::GROUP, TRUE, $required, $title, NULL, $name);
} elseif ($fieldName === 'tag') {
CRM_Contact_Form_Edit_TagsAndGroups::buildQuickForm($form, $contactId, CRM_Contact_Form_Edit_TagsAndGroups::TAG, FALSE, $required, NULL, $title, $name);
} elseif (substr($fieldName, 0, 4) === 'url-') {
$form->addElement('text', $name, $title, array_merge(CRM_Core_DAO::getAttribute('CRM_Core_DAO_Website', 'url'), array('onfocus' => "if (!this.value) { this.value='http://';} else return false", 'onblur' => "if ( this.value == 'http://') { this.value='';} else return false")));
$form->addRule($name, ts('Enter a valid Website.'), 'url');
//Website type select
if ($onBehalf) {
if (substr($name, -1) == ']') {
$websiteTypeName = substr($name, 0, -1) . '-website_type_id]';
}
$form->addElement('select', $websiteTypeName, NULL, CRM_Core_PseudoConstant::websiteType());
} else {
示例11: _civicrm_add_formatted_param
//.........这里部分代码省略.........
return true;
}
//CRM-4575
if (isset($values['email_greeting'])) {
if ($params['email_greeting_id']) {
$emailGreetings = array();
$emailGreetingFilter = array('contact_type' => CRM_Utils_Array::value('contact_type', $params), 'greeting_type' => 'email_greeting');
$emailGreetings = CRM_Core_PseudoConstant::greeting($emailGreetingFilter);
$params['email_greeting'] = $emailGreetings[$params['email_greeting_id']];
} else {
$params['email_greeting'] = $values['email_greeting'];
}
return true;
}
if (isset($values['postal_greeting'])) {
if ($params['postal_greeting_id']) {
$postalGreetings = array();
$postalGreetingFilter = array('contact_type' => CRM_Utils_Array::value('contact_type', $params), 'greeting_type' => 'postal_greeting');
$postalGreetings = CRM_Core_PseudoConstant::greeting($postalGreetingFilter);
$params['postal_greeting'] = $postalGreetings[$params['postal_greeting_id']];
} else {
$params['postal_greeting'] = $values['postal_greeting'];
}
return true;
}
if (isset($values['addressee'])) {
if ($params['addressee_id']) {
$addressee = array();
$addresseeFilter = array('contact_type' => CRM_Utils_Array::value('contact_type', $params), 'greeting_type' => 'addressee');
$addressee = CRM_Core_PseudoConstant::addressee($addresseeFilter);
$params['addressee'] = $addressee[$params['addressee_id']];
} else {
$params['addressee'] = $values['addressee'];
}
return true;
}
if (isset($values['gender'])) {
if ($params['gender_id']) {
$genders = array();
$genders = CRM_Core_PseudoConstant::gender();
$params['gender'] = $genders[$params['gender_id']];
} else {
$params['gender'] = $values['gender'];
}
return true;
}
if (isset($values['preferred_communication_method'])) {
$comm = array();
$preffComm = array();
$pcm = array();
$pcm = array_change_key_case(array_flip(CRM_Core_PseudoConstant::pcm()), CASE_LOWER);
$preffComm = explode(',', $values['preferred_communication_method']);
foreach ($preffComm as $v) {
$v = strtolower(trim($v));
if (array_key_exists($v, $pcm)) {
$comm[$pcm[$v]] = 1;
}
}
$params['preferred_communication_method'] = $comm;
return true;
}
// get the formatted location blocks into params - w/ 3.0 format, CRM-4605
if (CRM_Utils_Array::value('location_type_id', $values)) {
_civicrm_add_formatted_location_blocks($values, $params);
return true;
}
if (isset($values['note'])) {
/* add a note field */
if (!isset($params['note'])) {
$params['note'] = array();
}
$noteBlock = count($params['note']) + 1;
$params['note'][$noteBlock] = array();
if (!isset($fields['Note'])) {
$fields['Note'] = CRM_Core_DAO_Note::fields();
}
// get the current logged in civicrm user
$session =& CRM_Core_Session::singleton();
$userID = $session->get('userID');
if ($userID) {
$values['contact_id'] = $userID;
}
_civicrm_store_values($fields['Note'], $values, $params['note'][$noteBlock]);
return true;
}
/* Check for custom field values */
if ($fields['custom'] == null) {
$fields['custom'] =& CRM_Core_BAO_CustomField::getFields($values['contact_type']);
}
foreach ($values as $key => $value) {
if ($customFieldID = CRM_Core_BAO_CustomField::getKeyID($key)) {
/* check if it's a valid custom field id */
if (!array_key_exists($customFieldID, $fields['custom'])) {
return civicrm_create_error('Invalid custom field ID');
} else {
$params[$key] = $value;
}
}
}
}
示例12: basic
//.........这里部分代码省略.........
// multiselect for categories
$contactTags = CRM_Core_BAO_Tag::getTags();
if ($contactTags) {
$form->add('select', 'contact_tags', ts('Tags'), $contactTags, FALSE, array('id' => 'contact_tags', 'multiple' => 'multiple', 'title' => ts('- select -')));
}
$parentNames = CRM_Core_BAO_Tag::getTagSet('civicrm_contact');
CRM_Core_Form_Tag::buildQuickForm($form, $parentNames, 'civicrm_contact', NULL, TRUE, FALSE, TRUE);
}
// add text box for last name, first name, street name, city
$form->addElement('text', 'sort_name', ts('Find...'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
// add text box for last name, first name, street name, city
$form->add('text', 'email', ts('Contact Email'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name'));
//added contact source
$form->add('text', 'contact_source', ts('Contact Source'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'source'));
//added job title
$attributes['job_title']['size'] = 30;
$form->addElement('text', 'job_title', ts('Job Title'), $attributes['job_title'], 'size="30"');
//added internal ID
$attributes['id']['size'] = 30;
$form->addElement('text', 'id', ts('Contact ID'), $attributes['id'], 'size="30"');
//added external ID
$attributes['external_identifier']['size'] = 30;
$form->addElement('text', 'external_identifier', ts('External ID'), $attributes['external_identifier'], 'size="30"');
$config = CRM_Core_Config::singleton();
if (CRM_Core_Permission::check('access deleted contacts') and $config->contactUndelete) {
$form->add('checkbox', 'deleted_contacts', ts('Search in Trash') . '<br />' . ts('(deleted contacts)'));
}
// add checkbox for cms users only
$form->addYesNo('uf_user', ts('CMS User?'));
// tag all search
$form->add('text', 'tag_search', ts('All Tags'));
// add search profiles
// FIXME: This is probably a part of profiles - need to be
// FIXME: eradicated from here when profiles are reworked.
$types = array('Participant', 'Contribution', 'Membership');
// get component profiles
$componentProfiles = array();
$componentProfiles = CRM_Core_BAO_UFGroup::getProfiles($types);
$ufGroups = CRM_Core_BAO_UFGroup::getModuleUFGroup('Search Profile', 1);
$accessibleUfGroups = CRM_Core_Permission::ufGroup(CRM_Core_Permission::VIEW);
$searchProfiles = array();
foreach ($ufGroups as $key => $var) {
if (!array_key_exists($key, $componentProfiles) && in_array($key, $accessibleUfGroups)) {
$searchProfiles[$key] = $var['title'];
}
}
$form->addElement('select', 'uf_group_id', ts('Search Views'), array('0' => ts('- default view -')) + $searchProfiles);
$componentModes = CRM_Contact_Form_Search::getModeSelect();
// unset contributions or participants if user does not have
// permission on them
if (!CRM_Core_Permission::access('CiviContribute')) {
unset($componentModes['2']);
}
if (!CRM_Core_Permission::access('CiviEvent')) {
unset($componentModes['3']);
}
if (!CRM_Core_Permission::access('CiviMember')) {
unset($componentModes['5']);
}
if (!CRM_Core_Permission::check('view all activities')) {
unset($componentModes['4']);
}
if (count($componentModes) > 1) {
$form->addElement('select', 'component_mode', ts('Display Results As'), $componentModes);
}
$form->addElement('select', 'operator', ts('Search Operator'), array('AND' => ts('AND'), 'OR' => ts('OR')));
// add the option to display relationships
$rTypes = CRM_Core_PseudoConstant::relationshipType();
$rSelect = array('' => ts('- Select Relationship Type-'));
foreach ($rTypes as $rid => $rValue) {
if ($rValue['label_a_b'] == $rValue['label_b_a']) {
$rSelect[$rid] = $rValue['label_a_b'];
} else {
$rSelect["{$rid}_a_b"] = $rValue['label_a_b'];
$rSelect["{$rid}_b_a"] = $rValue['label_b_a'];
}
}
$form->addElement('select', 'display_relationship_type', ts('Display Results as Relationship'), $rSelect);
// checkboxes for DO NOT phone, email, mail
// we take labels from SelectValues
$t = CRM_Core_SelectValues::privacy();
$form->add('select', 'privacy_options', ts('Privacy'), $t, FALSE, array('id' => 'privacy_options', 'multiple' => 'multiple', 'title' => ts('- select -')));
$form->addElement('select', 'privacy_operator', ts('Operator'), array('OR' => ts('OR'), 'AND' => ts('AND')));
$toggleChoice = array();
$toggleChoice[] = $form->createElement('radio', NULL, '', ' ' . ts('Exclude'), '1');
$toggleChoice[] = $form->createElement('radio', NULL, '', ' ' . ts('Include by Privacy Option(s)'), '2');
$form->addGroup($toggleChoice, 'privacy_toggle', 'Privacy Options');
// preferred communication method
$comm = CRM_Core_PseudoConstant::pcm();
$commPreff = array();
foreach ($comm as $k => $v) {
$commPreff[] = $form->createElement('advcheckbox', $k, NULL, $v);
}
$onHold[] = $form->createElement('advcheckbox', 'on_hold', NULL, ts(''));
$form->addGroup($onHold, 'email_on_hold', ts('Email On Hold'));
$form->addGroup($commPreff, 'preferred_communication_method', ts('Preferred Communication Method'));
//CRM-6138 Preferred Language
$langPreff = CRM_Core_PseudoConstant::languages();
$form->add('select', 'preferred_language', ts('Preferred Language'), array('' => ts('- select language -')) + $langPreff);
}
示例13: getDetails
/**
* gives required details of contacts
*
* @param array $contactIds of conatcts
* @param array $returnProperties of required properties
* @param boolean $skipOnHold don't return on_hold contact info also.
* @param boolean $skipDeceased don't return deceased contact info.
* @param array $extraParams extra params
*
* @return array
* @access public
*/
function getDetails($contactIDs, $returnProperties = null, $skipOnHold = true, $skipDeceased = true, $extraParams = null)
{
$params = array();
foreach ($contactIDs as $key => $contactID) {
$params[] = array(CRM_Core_Form::CB_PREFIX . $contactID, '=', 1, 0, 0);
}
// fix for CRM-2613
if ($skipDeceased) {
$params[] = array('is_deceased', '=', 0, 0, 0);
}
//fix for CRM-3798
if ($skipOnHold) {
$params[] = array('on_hold', '=', 0, 0, 0);
}
if ($extraParams) {
$params = array_merge($params, $extraParams);
}
// if return properties are not passed then get all return properties
if (empty($returnProperties)) {
require_once 'CRM/Contact/BAO/Contact.php';
$fields = array_merge(array_keys(CRM_Contact_BAO_Contact::exportableFields()), array('display_name', 'checksum', 'contact_id'));
foreach ($fields as $key => $val) {
$returnProperties[$val] = 1;
}
}
$custom = array();
foreach ($returnProperties as $name => $dontCare) {
$cfID = CRM_Core_BAO_CustomField::getKeyID($name);
if ($cfID) {
$custom[] = $cfID;
}
}
//get the total number of contacts to fetch from database.
$numberofContacts = count($contactIDs);
require_once 'CRM/Contact/BAO/Query.php';
$query = new CRM_Contact_BAO_Query($params, $returnProperties);
$details = $query->apiQuery($params, $returnProperties, NULL, NULL, 0, $numberofContacts);
$contactDetails =& $details[0];
foreach ($contactIDs as $key => $contactID) {
if (array_key_exists($contactID, $contactDetails)) {
if (CRM_Utils_Array::value('preferred_communication_method', $returnProperties) == 1 && array_key_exists('preferred_communication_method', $contactDetails[$contactID])) {
require_once 'CRM/Core/PseudoConstant.php';
$pcm = CRM_Core_PseudoConstant::pcm();
// communication Prefferance
require_once 'CRM/Core/BAO/CustomOption.php';
$contactPcm = explode(CRM_Core_BAO_CustomOption::VALUE_SEPERATOR, $contactDetails[$contactID]['preferred_communication_method']);
$result = array();
foreach ($contactPcm as $key => $val) {
if ($val) {
$result[$val] = $pcm[$val];
}
}
$contactDetails[$contactID]['preferred_communication_method'] = implode(', ', $result);
}
foreach ($custom as $cfID) {
if (isset($contactDetails[$contactID]["custom_{$cfID}"])) {
$contactDetails[$contactID]["custom_{$cfID}"] = CRM_Core_BAO_CustomField::getDisplayValue($contactDetails[$contactID]["custom_{$cfID}"], $cfID, $details[1]);
}
}
//special case for greeting replacement
foreach (array('email_greeting', 'postal_greeting', 'addressee') as $val) {
if (CRM_Utils_Array::value($val, $contactDetails[$contactID])) {
$contactDetails[$contactID][$val] = $contactDetails[$contactID]["{$val}_display"];
}
}
}
}
// also call a hook and get token details
require_once 'CRM/Utils/Hook.php';
CRM_Utils_Hook::tokenValues($details[0], $contactIDs);
return $details;
}
示例14:
/**
* Get all the Preferred Communication Methods from database.
*
* @access public
* @static
*
* @return array self::pcm - array reference of all preferred communication methods.
*
*/
public static function &pcm($localize = FALSE)
{
if (!self::$pcm) {
self::$pcm = CRM_Core_OptionGroup::values('preferred_communication_method', FALSE, FALSE, $localize);
}
return self::$pcm;
}
示例15: 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]);
}