Beispiel #1
0
 /**
  * Combine all the importable fields from the lower levels object.
  *
  * @param string $contactType
  *   Contact type.
  * @param bool $status
  *
  * @return array
  *   array of importable Fields
  */
 public static function &importableFields($contactType = 'Individual', $status = TRUE)
 {
     if (!self::$_importableFields) {
         if (!self::$_importableFields) {
             self::$_importableFields = array();
         }
         if (!$status) {
             $fields = array('' => array('title' => '- ' . ts('do not import') . ' -'));
         } else {
             $fields = array('' => array('title' => '- ' . ts('Membership Fields') . ' -'));
         }
         $tmpFields = CRM_Member_DAO_Membership::import();
         $contactFields = CRM_Contact_BAO_Contact::importableFields($contactType, NULL);
         // Using new Dedupe rule.
         $ruleParams = array('contact_type' => $contactType, 'used' => 'Unsupervised');
         $fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
         $tmpContactField = array();
         if (is_array($fieldsArray)) {
             foreach ($fieldsArray as $value) {
                 $customFieldId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', $value, 'id', 'column_name');
                 $value = $customFieldId ? 'custom_' . $customFieldId : $value;
                 $tmpContactField[trim($value)] = CRM_Utils_Array::value(trim($value), $contactFields);
                 if (!$status) {
                     $title = $tmpContactField[trim($value)]['title'] . " " . ts('(match to contact)');
                 } else {
                     $title = $tmpContactField[trim($value)]['title'];
                 }
                 $tmpContactField[trim($value)]['title'] = $title;
             }
         }
         $tmpContactField['external_identifier'] = $contactFields['external_identifier'];
         $tmpContactField['external_identifier']['title'] = $contactFields['external_identifier']['title'] . " " . ts('(match to contact)');
         $tmpFields['membership_contact_id']['title'] = $tmpFields['membership_contact_id']['title'] . " " . ts('(match to contact)');
         $fields = array_merge($fields, $tmpContactField);
         $fields = array_merge($fields, $tmpFields);
         $fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Membership'));
         self::$_importableFields = $fields;
     }
     return self::$_importableFields;
 }
 /**
  * Combine all the importable fields from the lower levels object
  *
  * @param string  $contactType contact type
  * @param boolean $status      
  *
  * @return array array of importable Fields
  * @access public
  */
 function &importableFields($contactType = 'Individual', $status = true)
 {
     if (!self::$_importableFields) {
         if (!self::$_importableFields) {
             self::$_importableFields = array();
         }
         if (!$status) {
             $fields = array('' => array('title' => '- ' . ts('do not import') . ' -'));
         } else {
             $fields = array('' => array('title' => '- ' . ts('Membership Fields') . ' -'));
         }
         $tmpFields = CRM_Member_DAO_Membership::import();
         require_once 'CRM/Contact/BAO/Contact.php';
         $contactFields = CRM_Contact_BAO_Contact::importableFields($contactType, null);
         // Using new Dedupe rule.
         $ruleParams = array('contact_type' => $contactType, 'level' => 'Strict');
         require_once 'CRM/Dedupe/BAO/Rule.php';
         $fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
         $tmpContactField = array();
         if (is_array($fieldsArray)) {
             foreach ($fieldsArray as $value) {
                 $tmpContactField[trim($value)] = CRM_Utils_Array::value(trim($value), $contactFields);
                 if (!$status) {
                     $title = $tmpContactField[trim($value)]['title'] . " " . ts("(match to contact)");
                 } else {
                     $title = $tmpContactField[trim($value)]['title'];
                 }
                 $tmpContactField[trim($value)]['title'] = $title;
             }
         }
         $tmpContactField['external_identifier'] = $contactFields['external_identifier'];
         $tmpContactField['external_identifier']['title'] = $contactFields['external_identifier']['title'] . " " . ts("(match to contact)");
         $tmpFields['membership_contact_id']['title'] = $tmpFields['membership_contact_id']['title'] . " " . ts("(match to contact)");
         $fields = array_merge($fields, $tmpContactField);
         $fields = array_merge($fields, $tmpFields);
         $fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Membership'));
         self::$_importableFields = $fields;
     }
     return self::$_importableFields;
 }