public static function addMemberProperties($arrDetails)
 {
     $arrRecipientFields = array();
     \Controller::loadDataContainer('orm_avisota_recipient');
     foreach ($GLOBALS['TL_DCA']['orm_avisota_recipient']['metapalettes']['default'] as $strPalette => $arrFields) {
         $arrRecipientFields = array_merge($arrRecipientFields, $arrFields);
     }
     $objMember = \MemberModel::findByEmail($arrDetails['email']);
     foreach ($arrRecipientFields as $strName) {
         // ignore member data if a csv column is already there
         if ($arrDetails[$strName]) {
             continue;
         }
         // ignore salutations inserted in the backend
         if ($strName == 'salutation') {
             continue;
         }
         if ($strName != 'email') {
             $arrDetails[$strName] = '';
         }
         // enhance with member data if existing
         if ($objMember !== null) {
             if ($objMember->{$strName}) {
                 $arrDetails[$strName] = $objMember->{$strName};
             } else {
                 // try synonyms
                 $synonymizer = $GLOBALS['container']['avisota.recipient.synonymizer'];
                 $arrSynonyms = $synonymizer->findSynonyms($strName);
                 if ($arrSynonyms) {
                     foreach ($arrSynonyms as $strSynonym) {
                         if ($objMember->{$strSynonym}) {
                             $arrDetails[$strName] = $objMember->{$strSynonym};
                         }
                     }
                 }
             }
         }
     }
     return $arrDetails;
 }
 public static function addMemberProperties($arrProperties)
 {
     $arrResult = array();
     foreach ($arrProperties as $strName => $strValue) {
         // ignore salutations inserted in the backend
         if ($strName == 'salutation') {
             continue;
         }
         $objMember = \MemberModel::findByEmail($arrProperties['email']);
         if (!$strValue) {
             // first store the existing name-value pair
             $arrResult[$strName] = $strValue;
             // enhance member data if existing
             if ($objMember !== null) {
                 if ($objMember->{$strName}) {
                     $arrResult[$strName] = $objMember->{$strName};
                 } else {
                     // try synonyms
                     $synonymizer = $GLOBALS['container']['avisota.recipient.synonymizer'];
                     $arrSynonyms = $synonymizer->findSynonyms($strName);
                     if ($arrSynonyms) {
                         foreach ($arrSynonyms as $strSynonym) {
                             if ($objMember->{$strSynonym}) {
                                 $arrResult[$strName] = $objMember->{$strSynonym};
                             }
                         }
                     }
                 }
             }
         } else {
             $arrResult[$strName] = $strValue;
         }
     }
     return $arrResult;
 }