Remove calls to replaceContributionTokens
authorEileen McNaughton <emcnaughton@wikimedia.org>
Sat, 18 Sep 2021 01:00:22 +0000 (13:00 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Wed, 29 Sep 2021 01:54:09 +0000 (14:54 +1300)
CRM/Contribute/Form/Task/PDFLetter.php
Civi/Token/TokenRow.php
tests/phpunit/CRM/Contribute/Form/Task/PDFLetterCommonTest.php

index 828227dc665b10920f9b0c03fadacb74ca42652d..1d2f9b845db2313928a7bb0c790c79852fd9981a 100644 (file)
@@ -546,19 +546,19 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
    * @return string
    */
   protected function resolveTokens(string $html_message, $contact, $contribution, $messageToken, $grouped, $separator, $contributions): string {
-    if ($grouped) {
-      $tokenHtml = CRM_Utils_Token::replaceMultipleContributionTokens($separator, $html_message, $contributions, $messageToken);
-    }
-    else {
-      // no change to normal behaviour to avoid risk of breakage
-      $tokenHtml = CRM_Utils_Token::replaceContributionTokens($html_message, $contribution, TRUE, $messageToken);
-    }
     $tokenContext = [
       'smarty' => (defined('CIVICRM_MAIL_SMARTY') && CIVICRM_MAIL_SMARTY),
       'contactId' => $contact['contact_id'],
     ];
+    if ($grouped) {
+      $html_message = CRM_Utils_Token::replaceMultipleContributionTokens($separator, $html_message, $contributions, $messageToken);
+    }
+    else {
+      $tokenContext['schema'] = ['contributionId'];
+      $tokenContext['contributionId'] = $contribution['id'];
+    }
     $smarty = ['contact' => $contact];
-    return CRM_Core_TokenSmarty::render(['html' => $tokenHtml], $tokenContext, $smarty)['html'];
+    return CRM_Core_TokenSmarty::render(['html' => $html_message], $tokenContext, $smarty)['html'];
   }
 
 }
index 41b6462749868b1ffe8d78d1d21e9837966520c4..96ea17816656c6725f4f6b00d362111790057220 100644 (file)
@@ -186,7 +186,7 @@ class TokenRow {
       $fieldValue = \CRM_Core_BAO_CustomField::displayValue($fieldValue, $customFieldID);
     }
 
-    return $this->tokens($entity, $customFieldName, $fieldValue);
+    return $this->format('text/html')->tokens($entity, $customFieldName, $fieldValue);
   }
 
   /**
index 859462228e1de0447d02c2f2967acdbd5b8840e6..6cbc71de8ee1aef22629782a73bfcae4f96226ee 100644 (file)
@@ -297,19 +297,19 @@ class CRM_Contribute_Form_Task_PDFLetterCommonTest extends CiviUnitTestCase {
   <body>
     <div id="crm-container">
 id : 1
-total_amount :  9,999.99
-fee_amount :  1,111.11
-net_amount :  7,777.78
-non_deductible_amount :  2,222.22
+total_amount : &euro; 9,999.99
+fee_amount : &euro; 1,111.11
+net_amount : &euro; 7,777.78
+non_deductible_amount : &euro; 2,222.22
 receive_date : July 20th, 2018 12:00 AM
 payment_instrument_id:label : Check
 trxn_id : 1234
 invoice_id : 568
 currency : EUR
-cancel_date : 2019-12-30 00:00:00
+cancel_date : December 30th, 2019 12:00 AM
 cancel_reason : Contribution Cancel Reason
 receipt_date : October 30th, 2019 12:00 AM
-thankyou_date : 2019-11-30 00:00:00
+thankyou_date : November 30th, 2019 12:00 AM
 source : Contribution Source
 amount_level : Amount Level
 contribution_status_id : 2