dev/core#4492 Ensure that when determining if tokens should be show check if the...
authorSeamus Lee <seamuslee001@gmail.com>
Thu, 10 Aug 2023 22:58:24 +0000 (08:58 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Thu, 10 Aug 2023 23:04:34 +0000 (09:04 +1000)
CRM/Contribute/Tokens.php
CRM/Core/EntityTokens.php
CRM/Member/Tokens.php

index 7436b0b2390f97d5707870cf790dbeee35235da3..39f87b123100060bf0efa8e31535b25f2e798a22 100644 (file)
@@ -55,6 +55,9 @@ class CRM_Contribute_Tokens extends CRM_Core_EntityTokens {
    */
   protected function getRelatedTokens(): array {
     $tokens = [];
+    if (!in_array('ContributionRecur', array_keys(\Civi::service('action_object_provider')->getEntities()))) {
+      return $tokens;
+    }
     $hiddenTokens = ['modified_date', 'create_date', 'trxn_id', 'invoice_id', 'is_test', 'payment_token_id', 'payment_processor_id', 'payment_instrument_id', 'cycle_day', 'installments', 'processor_id', 'next_sched_contribution_date', 'failure_count', 'failure_retry_date', 'auto_renew', 'is_email_receipt', 'contribution_status_id'];
     $contributionRecurFields = ContributionRecur::getFields(FALSE)->setLoadOptions(TRUE)->execute();
     foreach ($contributionRecurFields as $contributionRecurField) {
index aee65f713c9132fa1ca2a99e7844eeba80263b27..a5e80be2239411eaa7f5806b0a167891f5d26576 100644 (file)
@@ -348,10 +348,10 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
    * @return bool
    */
   public function checkActive(TokenProcessor $processor) {
-    return (!empty($processor->context['actionMapping'])
+    return ((!empty($processor->context['actionMapping'])
         // This makes the 'schema context compulsory - which feels accidental
         // since recent discu
-      && $processor->context['actionMapping']->getEntityTable()) || in_array($this->getEntityIDField(), $processor->context['schema']);
+      && $processor->context['actionMapping']->getEntityTable()) || in_array($this->getEntityIDField(), $processor->context['schema'])) && in_array($this->getApiEntityName(), array_keys(\Civi::service('action_object_provider')->getEntities()));
   }
 
   /**
index a7549ee796e3b74a2d536e1a9ebc7bc4f7be0394..6def09ac865068dee47a47221b54e1b68be03f00 100644 (file)
@@ -129,6 +129,9 @@ class CRM_Member_Tokens extends CRM_Core_EntityTokens {
    */
   protected function getRelatedTokens(): array {
     $tokens = [];
+    if (!in_array('ContributionRecur', array_keys(\Civi::service('action_object_provider')->getEntities()))) {
+      return $tokens;
+    }
     $hiddenTokens = ['modified_date', 'create_date', 'trxn_id', 'invoice_id', 'is_test', 'payment_token_id', 'payment_processor_id', 'payment_instrument_id', 'cycle_day', 'installments', 'processor_id', 'next_sched_contribution_date', 'failure_count', 'failure_retry_date', 'auto_renew', 'is_email_receipt', 'contribution_status_id'];
     $contributionRecurFields = ContributionRecur::getFields(FALSE)->setLoadOptions(TRUE)->execute();
     foreach ($contributionRecurFields as $contributionRecurField) {