From d8844db54236bbbe7407613fff2668bf7ebb3a65 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Thu, 26 May 2022 19:33:18 +1200 Subject: [PATCH] [Import] [Ref] Minor extraction on membership metadata --- CRM/Member/Import/Parser/Membership.php | 29 +++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/CRM/Member/Import/Parser/Membership.php b/CRM/Member/Import/Parser/Membership.php index 7fb151b5a9..923771f8e2 100644 --- a/CRM/Member/Import/Parser/Membership.php +++ b/CRM/Member/Import/Parser/Membership.php @@ -424,15 +424,7 @@ class CRM_Member_Import_Parser_Membership extends CRM_Import_Parser { * @return void */ public function init() { - $this->fieldMetadata = CRM_Member_BAO_Membership::importableFields($this->_contactType, FALSE); - - foreach ($this->fieldMetadata as $name => $field) { - // @todo - we don't really need to do all this.... fieldMetadata is just fine to use as is. - $field['type'] = CRM_Utils_Array::value('type', $field, CRM_Utils_Type::T_INT); - $field['dataPattern'] = CRM_Utils_Array::value('dataPattern', $field, '//'); - $field['headerPattern'] = CRM_Utils_Array::value('headerPattern', $field, '//'); - $this->addField($name, $field['title'], $field['type'], $field['headerPattern'], $field['dataPattern']); - } + $this->setFieldMetadata(); $this->_newMemberships = []; @@ -1045,4 +1037,23 @@ class CRM_Member_Import_Parser_Membership extends CRM_Import_Parser { return in_array('membership_contact_id', $this->_mapperKeys, TRUE); } + /** + * Set field metadata. + */ + protected function setFieldMetadata(): void { + if (empty($this->importableFieldsMetadata)) { + $metadata = CRM_Member_BAO_Membership::importableFields($this->_contactType, FALSE); + + foreach ($this->fieldMetadata as $name => $field) { + // @todo - we don't really need to do all this.... fieldMetadata is just fine to use as is. + $field['type'] = CRM_Utils_Array::value('type', $field, CRM_Utils_Type::T_INT); + $field['dataPattern'] = CRM_Utils_Array::value('dataPattern', $field, '//'); + $field['headerPattern'] = CRM_Utils_Array::value('headerPattern', $field, '//'); + $this->addField($name, $field['title'], $field['type'], $field['headerPattern'], $field['dataPattern']); + } + // We are consolidating on `importableFieldsMetadata` - but both still used. + $this->importableFieldsMetadata = $this->fieldMetadata = $metadata; + } + } + } -- 2.25.1