X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=Civi%2FToken%2FTokenCompatSubscriber.php;h=d00acd75092236e8466f963130f1b1304ee6ff02;hb=2db35bf6ee39bf6d611681a9163515fa89115765;hp=e6c2f72e65f2a1d17c819a9d7f261d72a6b5c5e0;hpb=fbc6bb909b6f77d62a5021d30bc9bc496aef33b3;p=civicrm-core.git diff --git a/Civi/Token/TokenCompatSubscriber.php b/Civi/Token/TokenCompatSubscriber.php index e6c2f72e65..d00acd7509 100644 --- a/Civi/Token/TokenCompatSubscriber.php +++ b/Civi/Token/TokenCompatSubscriber.php @@ -61,6 +61,18 @@ class TokenCompatSubscriber implements EventSubscriberInterface { // FIXME: Need to differentiate errors which kill the batch vs the individual row. throw new TokenException("Failed to generate token data. Invalid contact ID: " . $row->context['contactId']); } + + //update value of custom field token + if (!empty($messageTokens['contact'])) { + foreach ($messageTokens['contact'] as $token) { + if (\CRM_Core_BAO_CustomField::getKeyID($token)) { + $contact[$token] = civicrm_api3('Contact', 'getvalue', array( + 'return' => $token, + 'id' => $contactId, + )); + } + } + } } else { $contact = $row->context['contact']; @@ -76,7 +88,6 @@ class TokenCompatSubscriber implements EventSubscriberInterface { // Note: This is a small contract change from the past; data should be missing // less randomly. - //\CRM_Utils_Hook::tokenValues($contact, $row->context['contactId']); \CRM_Utils_Hook::tokenValues($contactArray, (array) $contactId, empty($row->context['mailingJob']) ? NULL : $row->context['mailingJob']->id, @@ -101,15 +112,16 @@ class TokenCompatSubscriber implements EventSubscriberInterface { $isHtml = ($e->message['format'] == 'text/html'); $useSmarty = !empty($e->context['smarty']); - $e->string = \CRM_Utils_Token::replaceDomainTokens($e->string, \CRM_Core_BAO_Domain::getDomain(), $isHtml, $e->message['tokens'], $useSmarty); + $domain = \CRM_Core_BAO_Domain::getDomain(); + $e->string = \CRM_Utils_Token::replaceDomainTokens($e->string, $domain, $isHtml, $e->message['tokens'], $useSmarty); if (!empty($e->context['contact'])) { - $e->string = \CRM_Utils_Token::replaceContactTokens($e->string, $e->context['contact'], $isHtml, $e->message['tokens'], FALSE, $useSmarty); + $e->string = \CRM_Utils_Token::replaceContactTokens($e->string, $e->context['contact'], $isHtml, $e->message['tokens'], TRUE, $useSmarty); // FIXME: This may depend on $contact being merged with hook values. $e->string = \CRM_Utils_Token::replaceHookTokens($e->string, $e->context['contact'], $e->context['hookTokenCategories'], $isHtml, $useSmarty); - \CRM_Utils_Token::replaceGreetingTokens($e->string, NULL, $e->context['contact']['contact_id'], NULL, $useSmarty); + \CRM_Utils_Token::replaceGreetingTokens($e->string, $e->context['contact'], $e->context['contact']['contact_id'], NULL, $useSmarty); } if ($useSmarty) {