Merge remote-tracking branch 'origin/5.15'
[civicrm-core.git] / CRM / Activity / Tokens.php
index 793057f5d03e544c64437df95ce9d4b0dcd141c7..3271b965922fbf39ef72776d50a514df648a4afb 100644 (file)
@@ -4,7 +4,7 @@
  +--------------------------------------------------------------------+
  | CiviCRM version 5                                                  |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2018                                |
+ | Copyright CiviCRM LLC (c) 2004-2019                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -28,7 +28,7 @@
 
 /**
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2018
+ * @copyright CiviCRM LLC (c) 2004-2019
  */
 
 /**
@@ -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');
+  }
+
 }