From: Seamus Lee Date: Thu, 10 Aug 2023 22:58:24 +0000 (+1000) Subject: dev/core#4492 Ensure that when determining if tokens should be show check if the... X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=e714cfff6ee934158cd06c90da723762ef36c67c;p=civicrm-core.git dev/core#4492 Ensure that when determining if tokens should be show check if the Entity is in list of Avaliable Entities --- diff --git a/CRM/Contribute/Tokens.php b/CRM/Contribute/Tokens.php index 7436b0b239..39f87b1231 100644 --- a/CRM/Contribute/Tokens.php +++ b/CRM/Contribute/Tokens.php @@ -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) { diff --git a/CRM/Core/EntityTokens.php b/CRM/Core/EntityTokens.php index aee65f713c..a5e80be223 100644 --- a/CRM/Core/EntityTokens.php +++ b/CRM/Core/EntityTokens.php @@ -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())); } /** diff --git a/CRM/Member/Tokens.php b/CRM/Member/Tokens.php index a7549ee796..6def09ac86 100644 --- a/CRM/Member/Tokens.php +++ b/CRM/Member/Tokens.php @@ -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) {