X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FActivity%2FTokens.php;h=3271b965922fbf39ef72776d50a514df648a4afb;hb=521470d0c5b9b847453b62d3913b3bcfc17d9fe4;hp=8730ada82b3d3a9120a15af367e6cd8a83475c01;hpb=4e2d3adb5cbcb9f48e4638e4e755f95faffc3d99;p=civicrm-core.git diff --git a/CRM/Activity/Tokens.php b/CRM/Activity/Tokens.php index 8730ada82b..3271b96592 100644 --- a/CRM/Activity/Tokens.php +++ b/CRM/Activity/Tokens.php @@ -50,14 +50,8 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber { */ public function __construct() { parent::__construct('activity', array_merge( - array( - 'activity_id' => ts('Activity ID'), - 'activity_type' => ts('Activity Type'), - 'subject' => ts('Activity Subject'), - 'details' => ts('Activity Details'), - 'activity_date_time' => ts('Activity Date-Time'), - ), - CRM_Utils_Token::getCustomFieldTokens('Activity') + $this->getBasicTokens(), + $this->getCustomFieldTokens() )); } @@ -66,8 +60,7 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber { */ public function checkActive(\Civi\Token\TokenProcessor $processor) { // Extracted from scheduled-reminders code. See the class description. - return - !empty($processor->context['actionMapping']) + return !empty($processor->context['actionMapping']) && $processor->context['actionMapping']->getEntity() === 'civicrm_activity'; } @@ -84,7 +77,8 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber { // Q: Could we simplify & move the extra AND clauses into `where(...)`? $e->query->param('casEntityJoinExpr', 'e.id = reminder.entity_id AND e.is_current_revision = 1 AND e.is_deleted = 0'); - $e->query->select('e.*'); // FIXME: seems too broad. + // FIXME: seems too broad. + $e->query->select('e.*'); $e->query->select('ov.label as activity_type, e.id as activity_id'); $e->query->join("og", "!casMailingJoinType civicrm_option_group og ON og.name = 'activity_type'"); @@ -118,4 +112,27 @@ class CRM_Activity_Tokens extends \Civi\Token\AbstractTokenSubscriber { } } + /** + * Get the basic tokens provided. + * + * @return array token name => token label + */ + protected function getBasicTokens() { + return [ + 'activity_id' => ts('Activity ID'), + 'activity_type' => ts('Activity Type'), + 'subject' => ts('Activity Subject'), + 'details' => ts('Activity Details'), + 'activity_date_time' => ts('Activity Date-Time'), + ]; + } + + /** + * Get the tokens for custom fields + * @return array token name => token label + */ + protected function getCustomFieldTokens() { + return CRM_Utils_Token::getCustomFieldTokens('Activity'); + } + }